{"id":22533449,"url":"https://github.com/nicjohnson145/tagbot","last_synced_at":"2026-02-10T06:31:12.743Z","repository":{"id":64921222,"uuid":"532026989","full_name":"nicjohnson145/tagbot","owner":"nicjohnson145","description":"Automatically created tags based on conventional commits","archived":false,"fork":false,"pushed_at":"2024-12-19T18:13:55.000Z","size":98,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-20T00:03:31.790Z","etag":null,"topics":["cicd","continuous-integration","github-actions","go","golang","semantic-version"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nicjohnson145.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-02T17:51:52.000Z","updated_at":"2024-12-19T18:13:48.000Z","dependencies_parsed_at":"2024-06-21T07:29:33.576Z","dependency_job_id":null,"html_url":"https://github.com/nicjohnson145/tagbot","commit_stats":{"total_commits":82,"total_committers":2,"mean_commits":41.0,"dds":"0.012195121951219523","last_synced_commit":"a5cb66a065f4117918c99d962464589c2c5114e0"},"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicjohnson145%2Ftagbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicjohnson145%2Ftagbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicjohnson145%2Ftagbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicjohnson145%2Ftagbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nicjohnson145","download_url":"https://codeload.github.com/nicjohnson145/tagbot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236761510,"owners_count":19200659,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cicd","continuous-integration","github-actions","go","golang","semantic-version"],"created_at":"2024-12-07T09:08:20.095Z","updated_at":"2025-10-17T01:31:23.608Z","avatar_url":"https://github.com/nicjohnson145.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tagbot\nAutomatically created tags based on conventional commits\n\n# Using manually\n\nDownload the relevant binary from [here](https://github.com/nicjohnson145/tagbot/releases/latest)\nand place it in your `$PATH`. If you've cloned the repo via ssh, then just run `tagbot` from within\nthe repo you wish to create tags for. If you've cloned the repo via https then you'll need to export\n`AUTH_TOKEN` as an access token with the ability to create tags.\n\n# Using as a Github Action\n\nTagBot can be ran locally, or through Github Actions. Below is an example setup to only create tags\nwhen pushing to the default branch\n\n```yaml\non:\n  push:\n    branches:\n    - main\n    tags-ignore:\n    - '**'\n\njobs:\n  build-tag:\n    runs-on: ubuntu-latest\n    steps:\n    - name: Checkout\n      uses: actions/checkout@v3\n      with:\n        fetch-depth: 0\n    - name: TagBot\n      uses: nicjohnson145/tagbot@latest\n      id: tagbot\n      env:\n        AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n```\n### Note about triggering other workflows\n\nThe default `${{ secrets.GITHUB_TOKEN }}` [can't create additional workflows](https://github.com/orgs/community/discussions/27028#discussioncomment-3254360).\nIf you want to use tagbot to create new tags when code is pushed to main, and goreleaser to create\nreleases when a new tag is created (the whole reason I wrote tagbot :)) then you'll need to replace\nthe token with a users access token.\n\n# Using commit-msg git hooks\n\nTagbot has commit-msg git hook functionality as well. To use this functionality place the following\nscript in your `.git/hooks` directory named `commit-msg` after downloading tagbot and adding it to\nyour `$PATH`\n\n```sh\n#! /usr/bin/env bash\n\ntagbot commit-msg $1\n```\n\n### Global git hooks \u0026 disabling\n\nSetting `core.hooksPath` in your global gitconfig can allow you to run tagbot for every repo you\nclone. This greatly cuts down on repeated setup, as well as lowers the chance that the hook will be\nforgotten on a new clone. However, not *every* repo needs to conform to tagbot. Tagbot can be\ndisabled for an individual repo by running\n\n```sh\ngit config --add tagbot.disable true\n```\n\nin any repo that you wish tagbots `commit-msg` hook not to run\n\n# Running on pull requests\n\nTagbot can retroactively validate commit messages on pull requests (if not everyone uses the\ncommit-msg hook). This can be accomplished with the following github action\n```yaml\non:\n  pull_request\n\njobs:\n  check-commits:\n    runs-on: ubuntu-latest\n    steps:\n    - name: Checkout\n      uses: actions/checkout@v3\n      with:\n        fetch-depth: 0\n    - name: TagBot\n      uses: nicjohnson145/tagbot@latest\n      args:\n      - pull-request\n\n```\n# Options\n\nTagbot supports a number of options, either on the command line or through environment variables\n\n| Command Line | Environment | Use |\n| ------------ | ----------- | --- |\n| `--debug` | `DEBUG` | Enable debug logging |\n| `--latest` | `LATEST` | Maintain a `latest` tag in addition to the SemVer tags |\n| `--always-patch` | `ALWAYS_PATCH` | If the run were to result in no tag being created, instead create a tag with a patch version bump|\n| `--remote-name` | `REMOTE_NAME` | Name of the remote to push tags to, defaults to `origin` |\n| `--auth-method` | `AUTH_METHOD` | What method to use to auth, defaults to clone method of remote |\n| `--auth-token` | `AUTH_TOKEN` | Token to use during HTTPS authentication |\n| `--auth-token-username` | `AUTH_TOKEN_USERNAME` | Username to use during HTTPS authentication |\n| `--auth-key-path` | `AUTH_KEY_PATH` | Path to key to use during SSH authentication |\n| `--base-branch` | `BASE_BRANCH` | Base branch for merge request, will attempt to infer from well known CI systems variables |\n| `--latest-name` | `LATEST_NAME` | Override the tag name when maintaining a latest tag |\n| `--no-prefix` | `NO_PREFIX` | Do not add the `v` prefix on created tags, i.e `1.3.2` instead of `v1.3.2` |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicjohnson145%2Ftagbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnicjohnson145%2Ftagbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicjohnson145%2Ftagbot/lists"}