{"id":29622351,"url":"https://github.com/stevencyb/autosemver","last_synced_at":"2025-08-16T10:34:16.835Z","repository":{"id":293487658,"uuid":"984100532","full_name":"StevenCyb/autosemver","owner":"StevenCyb","description":"A simple tool to automat version generation (SemVer) based on Conventional Commits.","archived":false,"fork":false,"pushed_at":"2025-05-15T15:44:28.000Z","size":1,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-15T16:20:32.141Z","etag":null,"topics":["automation","conventional-commits","semver","version-control","versioning"],"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/StevenCyb.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,"zenodo":null}},"created_at":"2025-05-15T11:54:28.000Z","updated_at":"2025-05-15T15:44:06.000Z","dependencies_parsed_at":"2025-05-15T16:33:01.560Z","dependency_job_id":null,"html_url":"https://github.com/StevenCyb/autosemver","commit_stats":null,"previous_names":["stevencyb/autosemver"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/StevenCyb/autosemver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StevenCyb%2Fautosemver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StevenCyb%2Fautosemver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StevenCyb%2Fautosemver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StevenCyb%2Fautosemver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StevenCyb","download_url":"https://codeload.github.com/StevenCyb/autosemver/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StevenCyb%2Fautosemver/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266236688,"owners_count":23897229,"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":["automation","conventional-commits","semver","version-control","versioning"],"created_at":"2025-07-21T04:05:03.357Z","updated_at":"2025-07-21T04:06:33.020Z","avatar_url":"https://github.com/StevenCyb.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AutoSemver\n\nUsing [Conventional Commits](https://www.conventionalcommits.org/) is a clean and uniform way to write commit messages that convey the purpose of the changes made in your codebase. This also enables you to automatically generate a changelog based on the commit messages.\nThis project provides a simple tool to automate [Semantic Versioning](https://semver.org/) based on the commit messages in your Git repository.\n\n## Installation\n\n```bash\ngo install github.com/StevenCyb/autosemver\n```\n\n## Usage\n\n```\nUsage: autosemver {version|help|[repository_path]} [options]\n\nCommands:\n        [repository_path]: path to the git repository (default: current directory)\n        version: show the version of autosemver\n        help: show this help message\n\nOptions:\n        --help, -h: show this help message\n        --verbose, -v: enable verbose output\n        --release-candidate, -r: mark the version as a release candidate (append '-rc.N' to the version)\n        --ignore-invalid-tag, -i: ignore invalid tags (not a valid semantic version)\n        --disable-exit-1: do not exit with a non-zero code on error\n        --mapping=feat:minor, -m=fix:patch: add mapping for commit types (prefix) to version increments {major, minor, patch}\n\nDefault Mapping (ignores not matching commits):\n        \"breaking change\": major\n        \"fix!\": major\n        \"feat!\": major\n        \"feat\": minor\n        \"pref\": patch\n        \"fix\": patch\n```\n\n## Explanation\n\n### New Version\n```mermaid\ngitGraph\n   commit id: \"feat: x\"\n   commit id: \"feat: y\"\n   branch develop\n   checkout develop\n   commit id: \"feat: z\"\n   checkout main\n   merge develop tag: \"2.8.23\"\n   commit id: \"fix: fix a bug\"\n```\n* Command: `autosemver .`\n* Resulting Version: `2.8.24`\n* Explanation: The last commit on the main branch is a `fix`, which increments the patch.\n\n\n### New RC\n```mermaid\ngitGraph\n   commit id: \"feat: x\"\n   commit id: \"feat: y\"\n   branch develop\n   checkout develop\n   commit id: \"feat: z\"\n   checkout main\n   merge develop tag: \"2.8.23-rc.1\"\n   commit id: \"fix: fix a bug\"\n```\n* Command: `autosemver . --release-candidate`\n* Resulting Version: `2.8.23-rc.2`\n* Explanation: The last commit on the main branch is a `fix`, which normally increments the path. Since we want a RC, the last RC is incremented by 1.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstevencyb%2Fautosemver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstevencyb%2Fautosemver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstevencyb%2Fautosemver/lists"}