Automate your GitHub repository tagging process with a single command!
add-github-topics is a powerful and lightweight Python CLI tool designed to help developers and maintainers programmatically manage their GitHub repository topics. Whether you are managing a single project or automating a large-scale migration, this tool simplifies the process of adding descriptive tags to your repositories.
Topics are essential for SEO on GitHub, making your projects more discoverable to the community! π
- β Smart Appending: Fetches existing topics first to avoid accidental overwrites.
- β Zero Config Defaults: Automatically detects username and repository name from your local git environment.
- β
Secure Token Handling: Supports
.envfiles for managing your GitHub Personal Access Token (PAT). - β Global CLI: Once installed, use it from any directory in your terminal.
- β Cross-Platform: Works seamlessly on Windows, macOS, and Linux.
Install the tool directly from PyPI:
pip install add-github-topicsSet your GitHub token in any of the following ways (in order of priority):
-
CLI Argument:
add-github-topic python --token ghp_your_token_here
-
Environment Variable:
- Bash / Zsh:
export GITHUB_TOKEN=ghp_your_token_here - PowerShell:
$env:GITHUB_TOKEN = "ghp_your_token_here"
- Bash / Zsh:
-
.envFile: Create a.envfile in your repository or home directory:GITHUB_TOKEN=ghp_your_token_here
(Also supports
GH_TOKENand legacyADMIN_TOKEN) -
GitHub CLI (
gh): If you already have GitHub CLI installed and logged in (gh auth login), the CLI will automatically fallback togh auth tokenwith zero manual configuration!
Run the command from within any git repository:
add-github-topic pythonInstall the latest release directly from PyPI:
pip install add-github-topicsSet your GitHub token using any of the following methods (listed in order of evaluation priority):
- CLI Flag:
add-github-topic python --token ghp_your_token_here
- Environment Variable:
- Linux / macOS (Bash/Zsh):
export GITHUB_TOKEN=ghp_your_token_here - Windows (PowerShell):
$env:GITHUB_TOKEN = "ghp_your_token_here"
- Linux / macOS (Bash/Zsh):
- Local
.envFile: Create a.envfile in your repository or home directory:(SupportsGITHUB_TOKEN=ghp_your_token_here
GITHUB_TOKEN,GH_TOKEN, andADMIN_TOKEN) - GitHub CLI Integration:
If logged into the GitHub CLI (
gh),add-github-topicautomatically obtains credentials viagh auth token.
# Add single or multiple topics
add-github-topic python machine-learning devops
# List current repository topics
add-github-topic --list
# Remove existing topics
add-github-topic --remove legacy-tag
# Target a specific remote repository
add-github-topic python --owner ishandutta2007 --repo awesome-projectWe welcome contributions to add-github-topics!
-
Clone the Repository:
git clone https://github.com/ishandutta2007/add-github-topics.git cd add-github-topics -
Set Up Virtual Environment:
python -m venv venv # On Linux/macOS: source venv/bin/activate # On Windows: .\venv\Scripts\activate
-
Install Editable Package:
pip install -e .
- Main entrypoint CLI:
src/add_github_topics/cli.py - Follow PEP 8 style guidelines.
- Test your changes locally before submitting a PR.
The project uses GitHub Actions with PyPI Trusted Publishing (OIDC) for automated releases.
-
Version Bump Workflow (Automated on Push):
- Whenever you increment the version in
pyproject.toml(e.g.version = "0.2.2") and push your commit tomainormaster:[project] version = "0.2.2"
- The
.github/workflows/publish.ymlworkflow triggers automatically. - It builds the package source & wheel and attempts to publish to PyPI.
- Idempotency (
skip-existing: true): If the version has already been published to PyPI, the publish action skips safely without failing.
- Whenever you increment the version in
-
Git Tag Workflow:
- Tagged releases (e.g.
v0.2.2) pushed to GitHub will also trigger auto-publishing:git tag v0.2.2 git push origin v0.2.2
- Tagged releases (e.g.
-
Manual Trigger (
workflow_dispatch):- You can also trigger a release manually via the Actions tab in GitHub.
- Configure PyPI Trusted Publisher for repository
ishandutta2007/add-github-topics. - Create environment
pypiunder GitHub Repository Settings -> Environments.
Made with β€οΈ by Ishan Dutta