{"id":16500618,"url":"https://github.com/jaxxstorm/action-install-gh-release","last_synced_at":"2025-04-13T05:08:08.997Z","repository":{"id":39978447,"uuid":"265029375","full_name":"jaxxstorm/action-install-gh-release","owner":"jaxxstorm","description":"GitHub Action to install the Github Release binaries","archived":false,"fork":false,"pushed_at":"2025-04-10T18:41:25.000Z","size":20852,"stargazers_count":82,"open_issues_count":14,"forks_count":35,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-13T05:07:54.564Z","etag":null,"topics":["github-actions","installer","release"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaxxstorm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE-OF-CONDUCT.md","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":"2020-05-18T18:40:48.000Z","updated_at":"2025-03-26T11:05:46.000Z","dependencies_parsed_at":"2023-10-20T09:08:07.490Z","dependency_job_id":"9f7e600f-812c-4dc6-9337-d0b3cabb09c6","html_url":"https://github.com/jaxxstorm/action-install-gh-release","commit_stats":{"total_commits":90,"total_committers":22,"mean_commits":4.090909090909091,"dds":0.5666666666666667,"last_synced_commit":"6491559aee84bf812d6fa007266308ebfc4cff1b"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaxxstorm%2Faction-install-gh-release","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaxxstorm%2Faction-install-gh-release/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaxxstorm%2Faction-install-gh-release/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaxxstorm%2Faction-install-gh-release/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaxxstorm","download_url":"https://codeload.github.com/jaxxstorm/action-install-gh-release/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248665747,"owners_count":21142123,"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":["github-actions","installer","release"],"created_at":"2024-10-11T14:58:34.269Z","updated_at":"2025-04-13T05:08:08.977Z","avatar_url":"https://github.com/jaxxstorm.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `install-gh-release` GitHub Action\n\nThis repository contains an action for use with GitHub Actions, which will install any GitHub release into your action environment:\n\nThis is especially useful when installing arbitrary Go binaries. It can lookup the latest version, or download a specific tag.\n\n## Usage\n\n### Grab the Latest Version\n\n```yaml\n# ...\nsteps:\n  - name: Install go-task\n    uses: jaxxstorm/action-install-gh-release@v1.10.0\n    with: # Grab the latest version\n      repo: go-task/task\n```\n\n### Grab the Latest PreRelease Version\n\n```yaml\n# ...\nsteps:\n  - name: Install go-task\n    uses: jaxxstorm/action-install-gh-release@v1.10.0\n    with: # Grab the latest version\n      repo: go-task/task\n      prerelease: true\n```\n\n### Grab Specific Tags\n\n```yaml\n# ...\nsteps:\n  - name: Install tf2pulumi\n    uses: jaxxstorm/action-install-gh-release@v1.10.0\n    with: # Grab a specific tag\n      repo: pulumi/tf2pulumi\n      tag: v0.7.0\n```\n\n### Grab a Specific Platform And/Or Architecture\n\n```yaml\nsteps:\n  - name: Install tfsec\n    uses: jaxxstorm/action-install-gh-release@v1.10.0\n    with: # Grab a specific platform and/or architecture\n      repo: aquasecurity/tfsec\n      platform: linux\n      arch: amd64\n```\n\n### Grab from a private repository\n\nUse a `repo` scoped [Personal Access Token (PAT)](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token) that has been created on a user with access to the private repository.\n\n```yaml\nsteps:\n  - name: Install private tool\n    uses: jaxxstorm/action-install-gh-release@v1.10.0\n    with: # Grab from a private repository\n      token: ${{ secrets.MY_PAT }}\n      repo: my-org/my-private-repo\n```\n\n### Caching\n\nThis action can use [actions/cache](https://github.com/actions/cache) under the hood. Caching needs to be enabled explicitly and only works for specific tags.\n\n```yaml\n# ...\nsteps:\n  - name: Install tf2pulumi\n    uses: jaxxstorm/action-install-gh-release@v1.10.0\n    with: # Grab a specific tag with caching\n      repo: pulumi/tf2pulumi\n      tag: v0.7.0\n      cache: enable\n```\n\nCaching helps avoid\n[Rate limiting](https://docs.github.com/en/rest/overview/resources-in-the-rest-api#requests-from-github-actions), since this action does not need to scan tags and releases on a cache hit. Caching currently is not expected to speed up installation.\n\n### Changing Release File Extensions\n\nAs described below this action defaults to assuming that a release is either a `.tar.gz` or a `.zip` archive but this\nmay not always be true for all releases.  For example, a project might release a pure binary, a different archive format, a custom file extension etc.\n\nThis action can change its extension-matching behavior via the `extension-matching` and `extension` parameters.  For\nexample to match on a `.bz2` extension:\n\n```yaml\n# ...\njobs:\n  my_job:\n    env:\n      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Github token scoped to job\n    steps:\n      - name: Install Mozilla grcov\n        uses: jaxxstorm/action-install-gh-release@v1.10.0\n        with: # Grab a specific file extension\n          repo: mozilla/grcov\n          tag: v0.8.12\n          extension: \"\\\\.bz2\"\n```\n\nHere the `extension` parameter is used to provide a regular expression for the file extension(s) you want to match.  If\nthis is not specified then the action defaults to `\\.(tag.gz|zip)`.  Since this is a regular expression being embedded into\nYAML be aware that you may need to provide an extra level of character escaping, in the above example we have a `\\\\`\nused to escape the backslash and get an actual `\\.` (literal match of the period character) in the regular\nexpression passed into the action.\n\nAlternatively, if a project produces pure binary releases with no file extension then you can install them as follows:\n\n```yaml\n# ...\njobs:\n  my_job:\n    env:\n      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Github token scoped to job\n    steps:\n      - name: Install Open Telemetry Collector Builder (ocb)\n        uses: jaxxstorm/action-install-gh-release@v1.10.0\n        with: # Grab a pure binary\n          repo: open-telemetry/opentelemetry-collector\n          tag: v0.62.1\n          extension-matching: disable\n          rename-to: ocb\n          chmod: 0755\n```\n\nNote the use of the `rename-to` and `chmod` parameters to rename the downloaded binary and make it executable.\n\n### Grab multiple binaries from a specific location\n\nIf the archive of the release contains binaries in a specific location, you can\nspecify it with the `binaries-location` parameter. Note that the path is\nrelative to the root of the archive. The option `rename-to` has no effect in\nthis case. The option `chmod` is applied to all binaries.\n\n```yaml\n  - name: Install the latest Wasmer version\n    uses: jaxxstorm/action-install-gh-release@v1.10.0\n      with:\n      repo: wasmerio/wasmer\n      binaries-location: bin\n      chmod: 0755\n```\n\n### Grab a single asset whose name differs from the repository\n\nIf the repository's release contains multiplie assets (e.g. for many projects),\nyou can specify the name of the relevant asset with the `asset-name` parameter.\nBinary-related options (i.e. `rename-to`, `chmod`, and `extension-matching`)\ncan be specified to control whether to treat the asset as binary and/or modify it.\n\n```yaml\n  - name: Install the latest wrpc version\n    uses: jaxxstorm/action-install-gh-release@v1.10.0\n    with:\n      repo: bytecodealliance/wrpc\n      asset-name: wit-bindgen-wrpc\n      rename-to: wit-bindgen-wrpc\n      chmod: 0755\n      extension-matching: disable\n```\n\n## Finding a release\n\nBy default, this action will look up the Platform and Architecture of the runner and use those values to interpolate and match a release package. **The release package name is first converted to lowercase**.\n\nMultiple match patterns are used to find a viable asset:\n\n- Machine Architecture (e.g. `x86_64`, `arm64`, `amd64`)\n- (optional) Vendor (e.g. `musl`, `glibc`, `gnu`)\n- OS (e.g. `linux`, `darwin`)\n- Glibc implementation (e.g. `musl`, `glibc`, `gnu`)\n- (optional, via `extension-matching`) Extension (e.g. `tar.gz`, `zip`)\n\nNatively, the action will only match the following platforms (operating systems): `linux`, `darwin`, `windows`.\n\nSome examples of matches:\n\n- `my_package_linux_x86_64.tar.gz` (or `.zip`)\n- `my_package_x86_64_linux.tar.gz` (or `.zip`)\n- `my_package.linux.x86_64.tar.gz` (or `.zip`)\n- `my_package.x86_64.linux.tar.gz` (or `.zip`)\n- `linux_x86_64_my_package.tar.gz` (or `.zip`)\n- `x86_64_linux_my_package.tar.gz` (or `.zip`)\n- `linux.x86_64.my_package.tar.gz` (or `.zip`)\n- `x86_64.linux.my_package.tar.gz` (or `.zip`)\n- `linux_x86_64.tar.gz` (or `.zip`)\n- `x86_64_linux.tar.gz` (or `.zip`)\n- `linux.x86_64.tar.gz` (or `.zip`)\n- `x86_64.linux.tar.gz` (or `.zip`)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaxxstorm%2Faction-install-gh-release","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaxxstorm%2Faction-install-gh-release","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaxxstorm%2Faction-install-gh-release/lists"}