{"id":20686658,"url":"https://github.com/ericcornelissen/tool-versions-update-action","last_synced_at":"2025-12-24T21:36:01.539Z","repository":{"id":175659907,"uuid":"654284628","full_name":"ericcornelissen/tool-versions-update-action","owner":"ericcornelissen","description":"A GitHub Action to automatically update the tools in your .tool-versions file","archived":false,"fork":false,"pushed_at":"2025-04-30T12:31:54.000Z","size":351,"stargazers_count":6,"open_issues_count":7,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-30T13:58:56.487Z","etag":null,"topics":["actions","asdf","ci","rtx","tool-versions"],"latest_commit_sha":null,"homepage":"https://github.com/marketplace/actions/tool-versions-update-action","language":"Shell","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/ericcornelissen.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-06-15T19:37:43.000Z","updated_at":"2025-04-30T12:31:56.000Z","dependencies_parsed_at":"2024-05-21T15:45:23.575Z","dependency_job_id":"83174697-2721-4633-b551-de543e6f86f2","html_url":"https://github.com/ericcornelissen/tool-versions-update-action","commit_stats":null,"previous_names":["ericcornelissen/tool-versions-update-action"],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericcornelissen%2Ftool-versions-update-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericcornelissen%2Ftool-versions-update-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericcornelissen%2Ftool-versions-update-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericcornelissen%2Ftool-versions-update-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ericcornelissen","download_url":"https://codeload.github.com/ericcornelissen/tool-versions-update-action/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253453154,"owners_count":21911049,"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":["actions","asdf","ci","rtx","tool-versions"],"created_at":"2024-11-16T22:36:19.113Z","updated_at":"2025-12-24T21:36:01.532Z","avatar_url":"https://github.com/ericcornelissen.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- SPDX-License-Identifier: CC-BY-4.0 --\u003e\n\n# Tool Versions Update Action\n\nA collection of [GitHub Actions] to automatically update the tools in your\n`.tool-versions` file.\n\nThe actions use [asdf] and various other GitHub Actions to try and update any\ntools defined in your project's `.tool-versions` and apply those updates to the\nproject.\n\n## Usage\n\n```yml\n- uses: ericcornelissen/tool-versions-update-action@v2\n  with:\n    # The maximum number of tools to update. 0 indicates no maximum.\n    #\n    # Default: 0\n    max: 2\n\n    # A comma-separated list of tools that should NOT be updated.\n    #\n    # Default: \"\"\n    not: actionlint,shfmt\n\n    # A comma-separated list of tools that should be updated, ignoring others.\n    #\n    # Default: \"\"\n    only: shellcheck\n\n    # A newline-separated list of \"tool version\" pairs that should NOT be\n    # updated to.\n    #\n    # Default: \"\"\n    skip: |\n      shfmt 3.6.0\n      yamllint 1.31.0\n```\n\n### Batteries Included\n\nWhile the base action allows for more freedom, you can use one of this project's\nsub-actions to get up-and-running quickly with one-step automated tooling jobs.\n\n- [`tool-versions-update-action/commit`](./commit/README.md)\n- [`tool-versions-update-action/pr`](./pr/README.md)\n\n### Outputs\n\nThe following outputs are made available:\n\n| Name                   | Description                                                             |\n| ---------------------- | ----------------------------------------------------------------------- |\n| `did-update`           | `true` if at least one tool was updated, `false` otherwise              |\n| `updated-count`        | The number of tools that were updated                                   |\n| `updated-new-versions` | A comma separated list of the new versions of updated tools             |\n| `updated-old-versions` | A comma separated list of the old versions of updated tools             |\n| `updated-tools`        | A comma separated list of the names of the updated tools                |\n| `updated-tools-table`  | A markdown table showing the tool names with their old and new versions |\n\nFor information on how to use outputs see the [GitHub Actions output docs].\n\n#### Example\n\nConsider a scenario where\n\n```ini\n# file: .tool-versions\n\nshellcheck 0.10.0          # latest=0.11.0\nshellspec 0.28.0           # latest=0.28.1\nshfmt 3.12.0               # latest=3.12.0\n```\n\nthen the output values would look something like (depending on the configuration\nused):\n\n- `did-update`: `true`\n- `updated-count`: `2`\n- `updated-new-versions`: `0.11.0,0.28.1`\n- `updated-old-versions`: `0.10.0,0.28.0`\n- `updated-tools`: `shellcheck,shellspec`\n- `updated-tools-table`:\n\n  ```markdown\n  |Tool|Old Version|New Version|\n  |---|---|---|\n  |shellcheck|0.10.0|0.11.0|\n  |shellspec|0.28.0|0.28.1|\n  ```\n\n### Full Example\n\nThis example is for a workflow that can be triggered manually to log available\nupdates for at most 2 tools defined in `.tool-versions` at the time.\n\n```yml\nname: Tooling\non:\n  workflow_dispatch: ~\n\npermissions: read-all\n\njobs:\n  tooling:\n    name: Update tooling\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v4\n      - name: Install asdf\n        uses: asdf-vm/actions/install@v2\n      # Optionally configure asdf plugins depending on your needs.\n      # - name: Configure asdf plugins\n      #   run: |\n      #     asdf plugin add example https://github.com/ericcornelissen/asdf-example\n      - name: Update tooling\n        uses: ericcornelissen/tool-versions-update-action/commit@v2\n        id: tooling\n        with:\n          max: 2\n      - name: Log tooling changes\n        if: steps.tooling.outputs.did-update == 'true'\n        run: git diff .tool-versions\n```\n\n### Runners\n\nThis action is tested on the official [`ubuntu-22.04`] and [`ubuntu-24.04`]\nrunner images. It is recommended to use one of these images when using this\naction.\n\n### Security\n\n#### Permissions\n\nThis action requires no permissions.\n\n#### Network\n\nThis action requires network access to all endpoints your [asdf] plugins use.\n\n## License\n\nAll source code is licensed under the [MIT license], see [LICENSE] for the full\nlicense text. The contents of documentation is licensed under [CC BY 4.0], code\nsnippets under the [MIT-0 license].\n\n[asdf]: https://asdf-vm.com/\n[cc by 4.0]: https://creativecommons.org/licenses/by/4.0/\n[github actions]: https://github.com/features/actions\n[github actions output docs]: https://help.github.com/en/actions/reference/contexts-and-expression-syntax-for-github-actions#steps-context\n[license]: ./LICENSE\n[mit license]: https://opensource.org/license/mit/\n[mit-0 license]: https://opensource.org/license/mit-0/\n[`ubuntu-22.04`]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md\n[`ubuntu-24.04`]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericcornelissen%2Ftool-versions-update-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fericcornelissen%2Ftool-versions-update-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericcornelissen%2Ftool-versions-update-action/lists"}