GitHub CLI Releases, Gists, and API

Release management, gist workflows, and direct REST or GraphQL automation with gh api.

View
StandardDetailedCompact
Export
Copy the compact sheet, download it, or print it.
Download
`D` dense toggle · `C` copy all

Releases

Create and manage GitHub Releases and assets.

List releases

List releases for a repository.

bashANYreleaselist
bash
gh release list

List releases for a repository.

View a release

Show details for a release tag.

bashANYreleaseview
bash
gh release view v1.2.3

Show details for a release tag.

Create a release

Create a release and upload assets.

bashANYreleasecreate
bash
gh release create v1.2.3 dist/*.tgz --title "v1.2.3" --notes "Bug fixes and improvements"

Create a release and upload assets.

Create release notes automatically

Generate release notes automatically.

bashANYreleasenotes
bash
gh release create v1.2.3 --generate-notes

Generate release notes automatically.

Upload release assets

Upload additional assets to a release.

bashANYreleaseassets
bash
gh release upload v1.2.3 ./dist/app-linux-amd64.tar.gz#linux-amd64

Upload additional assets to a release.

Download release assets

Download assets for a release.

bashANYreleasedownload
bash
gh release download v1.2.3 -D ./downloads

Download assets for a release.

Edit a release

Edit release metadata.

bashANYreleaseedit
bash
gh release edit v1.2.3 --title "v1.2.3 stable"

Edit release metadata.

Delete a release asset

Delete a specific release asset.

bashANYreleaseassetsdelete
bash
gh release delete-asset v1.2.3 app-linux-amd64.tar.gz --yes

Delete a specific release asset.

Delete a release

Delete a release and optionally its tag.

bashANYreleasedelete
bash
gh release delete v1.2.3 --cleanup-tag --yes

Delete a release and optionally its tag.

Verify artifact attestation

Verify an artifact attestation against a repository.

bashANYattestationrelease
bash
gh attestation verify ./dist/app-linux-amd64.tar.gz --repo my-org/my-repo

Verify an artifact attestation against a repository.

Gists

Create and manage gists.

List gists

List your gists.

bashANYgistlist
bash
gh gist list

List your gists.

View a gist

Show a gist.

bashANYgistview
bash
gh gist view abcd1234

Show a gist.

Create a gist

Create a public gist from a file.

bashANYgistcreate
bash
gh gist create notes.md --public

Create a public gist from a file.

Create a private gist from stdin

Create a gist from standard input.

bashANYgistcreate
bash
printf "hello
" | gh gist create -f hello.txt

Create a gist from standard input.

Edit a gist description

Edit a gist.

bashANYgistedit
bash
gh gist edit abcd1234 -d "Updated shell snippets"

Edit a gist.

Clone a gist

Clone a gist locally.

bashANYgistclone
bash
gh gist clone abcd1234

Clone a gist locally.

Rename a gist file

Rename a file within a gist.

bashANYgistrename
bash
gh gist rename abcd1234 old.txt new.txt

Rename a file within a gist.

Delete a gist

Delete a gist.

bashANYgistdelete
bash
gh gist delete abcd1234 --yes

Delete a gist.

API and GraphQL

Use gh api for REST and GraphQL automation.

Call a REST endpoint

Call a GitHub REST API endpoint.

bashANYapirest
bash
gh api repos/{owner}/{repo}

Call a GitHub REST API endpoint.

POST to a REST endpoint

Create resources through the REST API.

bashANYapirestpost
bash
gh api repos/{owner}/{repo}/issues -f title="Bug report" -f body="Details..."

Create resources through the REST API.

Add custom headers

Call the API with explicit headers.

bashANYapiheaders
bash
gh api repos/{owner}/{repo} -H "Accept: application/vnd.github+json"

Call the API with explicit headers.

Send JSON from file

Send request payload from a file.

bashANYapijson
bash
gh api graphql --input query.json

Send request payload from a file.

Run a GraphQL query inline

Call the GraphQL API with variables.

bashANYapigraphql
bash
gh api graphql -f query='query($owner:String!,$repo:String!){repository(owner:$owner,name:$repo){name defaultBranchRef{name}}}' -F owner=cli -F repo=cli

Call the GraphQL API with variables.

Send a PATCH request

Update resources with a non-GET method.

bashANYapipatch
bash
gh api repos/{owner}/{repo} --method PATCH -f description="New description"

Update resources with a non-GET method.

Slurp paginated JSON into an array

Combine paginated results into a single JSON array.

bashANYapipaginationjson
bash
gh api orgs/{owner}/repos --paginate --slurp

Combine paginated results into a single JSON array.

Delete via API

Delete a resource through the REST API.

bashANYapidelete
bash
gh api repos/{owner}/{repo}/issues/comments/123456 --method DELETE

Delete a resource through the REST API.

Recommended next

No recommendations yet.