aRustyDev / aRustyDev/gh

feat(action): attestation/verify-chain - Verify attestation chain

Open
#26 2 comments 0 reactions 1 assignee Claimed by @aRustyDev View on GitHub
enhancement new-action
Dominant language
Shell
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Parent Epic
Part of #22 (Atomic Release Pipeline Actions)

## Priority
P1 - Security validation used by W5, W6

## Description

Create a composite action that verifies all attestations in a chain.

Iterates through an attestation map and verifies each attestation is valid and was created by the expected repository.

## Inputs

| Input | Required | Default | Description |
|-------|----------|---------|-------------|
| `attestation-map` | Yes | - | JSON object of check_name → attestation_id |
| `repository` | No | `github.repository` | Repository in owner/repo format |
| `token` | No | `github.token` | GitHub token for API access |

## Outputs

| Output | Description |
|--------|-------------|
| `verified` | "true" if all attestations valid |
| `total` | Total number of attestations checked |
| `passed` | Number that passed verification |
| `failed` | Number that failed verification |

## Usage Example

```yaml
- uses: arustydev/gha/actions/attestation/verify-chain@v1
id: verify
with:
attestation-map: ${{ steps.extract.outputs.map }}

- run: |
if [[ "${{ steps.verify.outputs.verified }}" != "true" ]]; then
echo "Attestation chain verification failed!"
exit 1
fi
```

## Source Reference

`helm-charts/.github/scripts/attestation-lib.sh`:
- `verify_attestation_chain()` (lines 195-248)

## Implementation Notes

- Try OCI bundle verification first, fall back to API
- Report detailed results for each attestation
- Fail fast on critical errors, continue on verification failures

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.