diff --git a/README.md b/README.md index db134b0..1a35d12 100644 --- a/README.md +++ b/README.md @@ -45,12 +45,17 @@ Every non-snapshot image published by this repo's release workflow ships with a To verify an image, install [`gh`](https://cli.github.com/) (≥ 2.49) and run: ```bash -gh attestation verify \ - oci://ghcr.io/iabtechlab/uid2-core: \ - --owner IABTechLab \ - --signer-repo IABTechLab/uid2-shared-actions +gh attestation verify oci://ghcr.io/iabtechlab/uid2-core: --owner IABTechLab --signer-repo IABTechLab/uid2-shared-actions ``` +`` refers to the **Docker image tag** — bare semantic version, no `v` prefix (e.g. `2.30.120`). Note that the corresponding GitHub release and git tag for the same build are named with a `v` (e.g. `v2.30.120`); the registry tag drops it by OCI convention. + +**Where to find a tag:** + +- **GitHub Packages** for this repo — [`uid2-core` package](https://github.com/IABTechLab/uid2-core/pkgs/container/uid2-core) lists every published image tag and its digest. +- Or take a [release](https://github.com/IABTechLab/uid2-core/releases) name (e.g. `v2.30.120`) and drop the leading `v`. +- To pin to an exact manifest instead of a mutable tag, use the digest form: `oci://ghcr.io/iabtechlab/uid2-core@sha256:` (visible on the Packages page, or via `gh api /orgs/IABTechLab/packages/container/uid2-core/versions`). + A successful run prints `✓ Verification succeeded!` followed by the SLSA provenance fields — including `sourceRepositoryDigest` (the source commit), `workflow.path` (the signing workflow), and the runner identity. Snapshot tags (`-SNAPSHOT` suffix) deliberately skip attestation. `gh attestation verify` returns `no attestations found` against a snapshot — that's expected.