name: 'Attest SBOM' description: 'Generate SBOM attestations for build artifacts' author: 'GitHub' inputs: subject-path: description: > Path to the artifact serving as the subject of the attestation. Must specify exactly one of "subject-path" or "subject-digest". required: false subject-digest: description: > SHA256 digest of the subject for for the attestation. Must be in the form "sha256:hex_digest" (e.g. "sha256:abc123..."). Must specify exactly one of "subject-path" or "subject-digest". required: false subject-name: description: > Subject name as it should appear in the attestation. Required unless "subject-path" is specified, in which case it will be inferred from the path. sbom-path: description: > Path to the JSON-formatted SBOM file to attest. When specified, the "scan-path" and "sbom-format" inputs are ignored. required: false push-to-registry: description: > Whether to push the provenance statement to the image registry. Requires that the "subject-name" parameter specify the fully-qualified image name and that the "subject-digest" parameter be specified. Defaults to false. default: false required: false github-token: description: > The GitHub token used to make authenticated API requests. default: ${{ github.token }} required: false outputs: bundle-path: description: 'The path to the file containing the attestation bundle(s).' value: ${{ steps.attest.outputs.bundle-path }} runs: using: 'composite' steps: - uses: actions/attest-sbom/predicate@847c6befa7ce187c962fa6c3e6cd3c96e4da9565 # predicate@0.1.0 id: generate-sbom-predicate with: sbom-path: ${{ inputs.sbom-path || steps.sbom-output.outputs.path }} - uses: actions/attest@14e407ca15f1b08f4869fc058b059f7f1e434df6 # v0.1.0 id: attest with: subject-path: ${{ inputs.subject-path }} subject-digest: ${{ inputs.subject-digest }} subject-name: ${{ inputs.subject-name }} predicate-type: ${{ steps.generate-sbom-predicate.outputs.predicate-type }} predicate-path: ${{ steps.generate-sbom-predicate.outputs.predicate-path }} push-to-registry: ${{ inputs.push-to-registry }} github-token: ${{ inputs.github-token }}