GitHub Artifact Attestations
GitHub's Artifact Attestations feature - currently in public beta - allows for the creation of a tamper-proof, unforgeable paper trail linking build artifacts to the process which created it. Artifact Attestations is powered by Sigstore, an open source project for signing and verifying software artifacts.
Artifact Attestations is disabled by default in dist
, and can be enabled by setting github-attestations = true
Note that GitHub's Artifact Attestations only supports public repositories and private repositories of an organization with the GitHub Enterprise plan. In the case of public repositories, attestations generated by GitHub Actions will be written to the Sigstore Public Good Instance and end up on Rekor, Sigstore's immutable ledger, for public verification.
Currently, verification of GitHub Artifact Attestations is only supported via GitHub CLI with gh attestation verify
.
Additionally, you can control which phase attestations occur using the github-attestations-phase
setting.
By default, attestations occur during the build-local-artifacts
phase. This can be alternatively be changed to the host
phase, which is particularly
useful when build-local-artifacts
is set to false
.
When performing attestations in the host
phase, you can control what gets attested by using the github-attestations-filters
setting.
This setting yields the following attestation step by default:
- name: Attest
uses: actions/attest-build-provenance@v2
with:
subject-path: |
artifacts/*
When set to a different set of values such as github-attestations-filters = ["*.json", "*.sh", "*.ps1", "*.zip", "*.tar.gz"]
it yields:
- name: Attest
uses: actions/attest-build-provenance@v2
with:
subject-path: |
artifacts/*.json
artifacts/*.sh
artifacts/*.ps1
artifacts/*.zip
artifacts/*.tar.gz