GH-ATTESTATION-DOWNLOAD(1)
π¦ gh-attestation-download β bestie's guide to grabbing attestations offline β¨
okay so listen up, this is the gh attestation download page from the GitHub CLI manual, and I'm gonna walk you through it like we're texting at 2am π
πΈ NAME πΈ
gh-attestation-download β literally downloads an artifact's attestations so you can have them offline, no cap π«Ά
β SYNOPSIS β
gh attestation download [<file-path> | oci://<image-uri>] [--owner | --repo] [flags]
that's the whole vibe. file path or OCI URI, then --owner or --repo, then whatever flags you want β¨
π DESCRIPTION π
NOTE: this feature is currently in public preview, and subject to change. so likeβ¦ don't get too attached to the exact behavior, bestie π
So what does it actually do? It downloads the attestations associated with an artifact, for offline use. Iconic. Very demure. Very offline.
The command requires either:
- a file path to an artifact, or
- a container image URI (e.g.
oci://<image-uri>)- (note that if you provide an OCI URL, you must already be authenticated with its container registry β like, you gotta be on the list already, iykyk π₯)
In addition, the command requires either:
- the
--repoflag (e.g.--repo github/example), or - the
--ownerflag (e.g.--owner github)
The --repo flag value must match the name of the GitHub repository that the artifact is linked with. fr fr, it has to match.
The --owner flag value must match the name of the GitHub organization that the artifact's linked repository belongs to. same energy π
Any associated bundle(s) will be written to a file in the current directory, named after the artifact's digest. For example, if the digest is "sha256:1234", the file will be named "sha256:1234.jsonl". slay, it names itself π
Now here's the Windows part, and this one matters: colons are special characters on Windows and cannot be used in file names. To accommodate, a dash will be used to separate the algorithm from the digest in the attestations file name. For example, if the digest is "sha256:1234", the file will be named "sha256-1234.jsonl". not me crying over filesystem rules π
β¨ OPTIONS β¨
-d,--digest-alg <string>(default"sha256") β the algorithm used to compute a digest of the artifact:{sha256|sha512}--hostname <string>β configure host to use-L,--limit <int>(default30) β maximum number of attestations to fetch-o,--owner <string>β GitHub organization to scope attestation lookup by--predicate-type <string>β filter attestations by provided predicate type-R,--repo <string>β repository name in the format/
π EXIT CODES π
0β successful execution π1β error π2β command canceled4β authentication required π
NOTE: specific commands may have additional exit codes. refer to the command's help for more information. iykyk, always check the help bestie π
π EXAMPLE π
# Download attestations for a local artifact linked with an organization
$ gh attestation download example.bin -o github
# Download attestations for a local artifact linked with a repository
$ gh attestation download example.bin -R github/example
# Download attestations for an OCI image linked with an organization
$ gh attestation download oci://example.com/foo/bar:latest -o github
ate. no crumbs. π
π§ SEE ALSO π§
gh-attestation(1)β go read the parent page, it's giving main character energy β
and that's the whole page, bestie!! π this was GitHub CLI v2.102.0, dated Oct 2026 β mwah, go download some attestations, ily ππ«Άβ¨
π¦ where this page comes from
- opensuse-leap 16.0: gh 2.102.0-bp160.1.1 Β· MIT
- opensuse-leap 16.0: gh 2.102.0-bp160.1.1 Β· MIT
- opensuse-leap 16.0: gh 2.102.0-bp160.1.1 Β· MIT
- opensuse-leap 16.0: gh 2.102.0-bp160.1.1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms