{"id":22379129,"url":"https://github.com/sky-uk/vergo","last_synced_at":"2025-10-25T17:13:05.987Z","repository":{"id":48277075,"uuid":"479411761","full_name":"sky-uk/vergo","owner":"sky-uk","description":null,"archived":false,"fork":false,"pushed_at":"2024-07-12T10:02:47.000Z","size":7283,"stargazers_count":13,"open_issues_count":5,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-07-12T11:33:01.160Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sky-uk.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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-04-08T13:58:23.000Z","updated_at":"2024-07-11T08:48:57.000Z","dependencies_parsed_at":"2024-04-09T12:25:52.097Z","dependency_job_id":"18117d66-a3a5-46be-bdf5-47a309a20e2d","html_url":"https://github.com/sky-uk/vergo","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sky-uk%2Fvergo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sky-uk%2Fvergo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sky-uk%2Fvergo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sky-uk%2Fvergo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sky-uk","download_url":"https://codeload.github.com/sky-uk/vergo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228204606,"owners_count":17884711,"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":[],"created_at":"2024-12-04T23:09:03.662Z","updated_at":"2025-10-25T17:13:00.955Z","avatar_url":"https://github.com/sky-uk.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vergo\n\n## Description\n\nVergo is a tool which allows you to easily attach semantic version tags to projects in Git multi-project repositories.\nIt's an alternative to Axion release Gradle plugin (https://github.com/allegro/axion-release-plugin.git) for non-Gradle projects.\n\n## Comparison of axion-release-plugin and vergo\n\n### axion-release-plugin\n\n```\n\u003e git tag\nproject-0.1.0\n\n\u003e ./gradlew currentVersion\n0.1.0\n\n\u003e git commit -m \"Some commit.\"\n\n\u003e ./gradlew currentVersion\n0.1.1-SNAPSHOT\n\n\u003e ./gradlew release\n\n\u003e git tag\nproject-0.1.0 project-0.1.1\n\n\u003e ./gradlew currentVersion\n0.1.1\n\n\u003e ./gradlew publish\npublished project-0.1.1 release version\n\n\u003e ./gradlew markNextVersion -Prelease.version=1.0.0\n\n\u003e ./gradlew currentVersion\n1.0.0-SNAPSHOT\n\n```\n\n### vergo\n\n```\n\u003e git tag\nproject-0.1.0\n\n\u003e vergo get current-version -t project\n0.1.0\n\n\u003e vergo get current-version -t project -p\nproject-0.1.0\n\n\u003e git commit -m \"Some commit.\"\n\n\u003e vergo get current-version -t project\n0.2.0-SNAPSHOT\n\n\u003e vergo bump patch -t project --log-level=error\n0.1.1\n\n\u003e git tag\nproject-0.1.0\nproject-0.1.1\n\n\u003e vergo get current-version -t project\n0.1.1\n\n\u003e vergo push -t project\n\n\u003evergo bump patch -t project --push-tag\nINFO[0000] Set tag project-0.1.2\n0.1.2\n\n```\n\n## Installation\n\nPrebuilt binaries for each release are available for the following platforms:\n\n- Linux AMD64 and ARM64\n- MacOS AMD64 and ARM64\n\nYou can find the binaries for the latest release at [https://github.com/sky-uk/vergo/releases/latest](https://github.com/sky-uk/vergo/releases/latest).\n\nFor other platforms, you can install the latest release of Go via `go install`:\n\n```shell\ngo install github.com/sky-uk/vergo@latest\n```\n\n## Simple usages\n\n* returns the latest tag/release prefixed with banana\n\n  `vergo get latest-release --tag-prefix=banana`\n\n* returns the previous tag/release prefixed with banana\n\n  `vergo get previous-release --tag-prefix=banana`\n\n* returns the current tag/release prefixed with banana, maybe a SNAPSHOT\n\n  `vergo get current-version --tag-prefix=banana`\n\n* returns the current tag/release prefixed with banana, maybe a SNAPSHOT, using the first tag matched in the commit history \n\n  `vergo get current-version --tag-prefix=banana --nearest-release`\n\n* increments patch part of the version prefixed with banana, using the first tag matched in the commit history\n\n  `vergo bump patch --tag-prefix=banana --nearest-release`\n\n* increments patch part of the version prefixed with banana\n\n  `vergo bump patch --tag-prefix=banana`\n\n* increments minor part of the version prefixed with banana\n\n  `vergo bump minor --tag-prefix=banana`\n\n* increments minor part of the version prefixed with banana and pushes it to origin remote\n\n  `vergo bump major --tag-prefix=apple --push-tag`\n\n* pushes the tag to the remote as separate command\n\n  `vergo push --tag-prefix=banana`\n\n* supports the creation of tags with / seperated postfix will bump tags with the structure `orange/\u003cmajor\u003e.\u003cminor\u003e.\u003cpatch\u003e`\n\n  `vergo bump major --tag-prefix=orange/`\n\n* checks if a release can be skipped by inspecting the latest commit message. If the commit message includes the hint `vergo:banana:skip-release` then the command fails saying release not required. \n\n  ```\n  # expected usage \n  if vergo check release --tag-prefix=banana; then\n    vergo bump major --tag-prefix=banana\n  fi\n  ```\n* automatic increment by reading the last commit message. if the latest commit message includes `[vergo:app:major-release]` string then auto will be translated to `major`\n  ```\n    vergo bump auto -t app #will look for patch/minor/major in commit message\n  ```\n\n## Strict Host Checking\n\nYou can address the error `ssh: handshake failed: knownhosts: key is unknown ` when pushing tags with vergo in two ways:\n- Calling `ssh-keyscan -H github.com \u003e\u003e ~/.ssh/known_hosts` prior to pushing your vergo tag to introduce github to your known hosts.\n- Calling `vergo` with the `--disable-strict-host-check` flag. This should only be used on CI where known hosts are not cached.\n\n## Authentication\n\nVergo supports 2 method of Git authentication:\n- SSH\n- Access token\n\n### SSH\n\nSSH authentication is enabled when the `SSH_AUTH_SOCK` environment variable is present. To use SSH `SSH_AUTH_SOCK` will need to contain the path of the unix file socket that the SSH client uses to connect to the SSH agent.\n\n### Access token\n\nAccess token authentication is enabled when an environment variable with the same key as what is configured by the `--token-env-var-key` CLI arg exists. This takes precedence over `SSH_AUTH_SOCK`, so if both are set then access token auth will be used. The configurability of `--token-env-var-key` allows the following:\n- `GITHUB_TOKEN` is set but SHOULD NOT be used by `vergo`\n- `GH_TOKEN` is set and SHOULD be used by `vergo`\n\nThe above can be achieved with `vergo --token-env-var-key GH_TOKEN`.\n\n## Using token authentication inside GitHub Actions\n\nInside GitHub Actions please ensure that the value of the `GH_TOKEN` environment variable is set to `${{ secrets.GITHUB_TOKEN }}` in order to push to the current repository. As above, `GH_TOKEN` can be changed to something else by setting `--token-env-var-key`.\n\nExample workflow job step using the provided GITHUB_TOKEN with `vergo`:\n```yaml\n      - name: Tag release\n        run: |\n          vergo check release -t my-app\n          vergo bump minor -t my-app --push-tag\n        env:\n          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n```\n\nPlease see  [token authentication](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#using-the-github_token-in-a-workflow) for further details.\n\nThe GITHUB_TOKEN will require the following permissions to be able to push:\n```yaml\n    permissions:\n      contents: write\n```\n\n## Running Locally - SSH Key Failures\nYou can address the error `FATA[0000] failed to get signers, make sure to add private key identities to the authentication agent  error=\"\u003cnil\u003e\"` when pushing tags with vergo by:\n- Calling `ssh-add ~/.ssh/\u003cgithub_key\u003e` to add your github ssh key to the ssh agent\n\n## Contributions\n\nWe welcome contributions to Vergo. Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for details on how to contribute.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsky-uk%2Fvergo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsky-uk%2Fvergo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsky-uk%2Fvergo/lists"}