Skip to content

porter-io/tagg-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tagg-Python Utility/Library

Tagg is a library and command line utility built to help you manipulate the data of Tag-Github

Installation

> pip install tagg

Usage

tagg and autotagg should run in the root of the data dir. If you wish to run them outside the data dir, use -d datadir to specify the data dir or --force to operate in a new data dir.

Tagg Utility

Tagg cli tool provides basic functionalities to add, remove, update and validate tag and repo data.

General

# Export data to json
tagg export > data.json

# Enter REPL with history, autocomplete and basic syntax highlighting support
tagg shell

Tags

# List all tags
tagg tags [list]

# Add a tag named c++ in language domain
tagg tags add language/c++

# Remove a tag and all its links in repos
tagg tags remove language/c++

# Show tag information
tagg tags show language/c++

# Rename a tag and all its links in repos  
tagg tags rename language/c++ language/cplusplus

# Edit tag meta in VIM
tagg tags edit language/c++

# Validate tag data
tagg tags validate

Repos

# List all repos
tagg repos [list]

# Find all repos with one or more tags
tagg repos links python,framework

# Find all repos with one or more keywords in their names or descriptions
tagg repos find django

# Add a repo and fetch its meta from Github
tagg repos add django/django

# Remove a repo
tagg repos remove django/django

# Show repo information
tagg repos show django/django

# Edit repo meta in VIM
tagg repos edit django/django

# Rename a repo
tagg repos rename django/django django/django2

# Tag a repo with one or more tags
tagg repos tag django/django language/c++

# Untag a repo
tagg repos untag django/django [language/]c++

# Get stats info of tagged repos
tagg repos link_stats

# Validate repo data
tagg repos validate

Autotagg Utility

Automatically tag repos according to their meta data. By default, it prints a list of suggested commands instead of actually modifying the data.

# Run on a repo
autotagg owner/name

# Run on all existing repos
autotagg -a|--all

# Get my repos from Github and run on them
autotagg -g GITHUB_ACCOUNT

# Get my repos and also my starred repos from Github and run on them
autotagg -g GITHUB_ACCOUNT --starred

# Get top1k repos from Github and run on them
autotagg --top1k

Then to apply commands printed by autotagg, just pipe it to tagg

autotag -a > pending_review.txt
cat pending_review.txt | tagg

For more details option list please see --help of autotagg

Autotagg Definition File

A json file that defines autotag criterias. Let's explain it with an example:

{
    "default_type": "general",
    "brands": {
        "twitter": [
            "twbs", 
            "twitter"
        ]
    },
    "keywords":{
        "framework": [
            "/^django$/"
        ],
        "python": [
            "python",
            "/^py/"
        ]
    }
}

This defines three tags:

  • "brands/twitter" tag to be placed when the repo owner is "twbs" or "twitter"
  • "general/framework" tag to be placed when the repo name is exactly "django"
  • "general/python" tag to be placed when the repo name starts with "py" or the keyword "python" shows up anywhere in the repo name or the repo description

License

MIT

About

CLI tool for tag-github project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages