From b6603a492831ed1388f3630e86a456f66eb17210 Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Thu, 13 Feb 2020 17:20:03 +0000 Subject: [PATCH 01/19] initial snap --- snap/snapcraft.yaml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 snap/snapcraft.yaml diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml new file mode 100644 index 00000000000..5afbb960493 --- /dev/null +++ b/snap/snapcraft.yaml @@ -0,0 +1,30 @@ +name: gh +summary: The GitHub CLI +description: https://cli.github.com +adopt-info: gh +grade: stable +confinement: devmode # classic +base: core18 +license: MIT +package-management: # snap refresh snapcraft --channel=edge/pr-2911 + repositories: + - source: ppa:longsleep/golang-backports +parts: + gh: + plugin: make + artifacts: + - bin/gh + make-parameters: ["LDFLAGS="] + source: . + build-packages: + - golang-go + - git + stage-packages: + - golang-go + - git + override-pull: | + snapcraftctl pull + snapcraftctl set-version `git describe --tags` +apps: + gh: + command: gh From 9e726b0f67b23973ba57b953c923505144adddaa Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Thu, 13 Feb 2020 17:42:01 +0000 Subject: [PATCH 02/19] fix version --- snap/snapcraft.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 5afbb960493..5ba36667f25 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -14,7 +14,6 @@ parts: plugin: make artifacts: - bin/gh - make-parameters: ["LDFLAGS="] source: . build-packages: - golang-go @@ -24,7 +23,10 @@ parts: - git override-pull: | snapcraftctl pull - snapcraftctl set-version `git describe --tags` + snapcraftctl set-version `git describe --tags 2>/dev/null || git rev-parse --short HEAD` + override-build: | + LDFLAGS='' make -j2 + cp bin/gh $SNAPCRAFT_PART_INSTALL/ apps: gh: command: gh From c936c39c47200e1883fc0bcb8615d30b8a1b874a Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Thu, 13 Feb 2020 17:55:11 +0000 Subject: [PATCH 03/19] snap: strict confinement --- .gitignore | 3 +++ snap/snapcraft.yaml | 7 ++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index a4b73ac7a50..42ea80f520b 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,6 @@ *~ vendor/ + +# snap +/gh_*.snap diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 5ba36667f25..6f39afad423 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -3,7 +3,7 @@ summary: The GitHub CLI description: https://cli.github.com adopt-info: gh grade: stable -confinement: devmode # classic +confinement: strict # classic base: core18 license: MIT package-management: # snap refresh snapcraft --channel=edge/pr-2911 @@ -12,8 +12,6 @@ package-management: # snap refresh snapcraft --channel=edge/pr-2911 parts: gh: plugin: make - artifacts: - - bin/gh source: . build-packages: - golang-go @@ -30,3 +28,6 @@ parts: apps: gh: command: gh + plugs: + - home + - network From db6cba9d840714fa4913a173517d34ef97d982d1 Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Thu, 13 Feb 2020 18:04:19 +0000 Subject: [PATCH 04/19] snap: document --- docs/install_linux.md | 10 +++++----- snap/snapcraft.yaml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/install_linux.md b/docs/install_linux.md index c3efb087723..489e34adfa8 100644 --- a/docs/install_linux.md +++ b/docs/install_linux.md @@ -417,11 +417,11 @@ To upgrade: webi gh@stable ``` -## Discouraged +### Snapcraft -> [!WARNING] -> The GitHub CLI team actively discourages use of the following methods of installation. +To install: -### Snap +1. Ensure [`snapd` is installed](https://snapcraft.io/docs/installing-snapd) +2. `sudo snap install gh` -The [GitHub CLI package](https://snapcraft.io/gh) has [so many issues with Snap](https://github.com/casperdcl/cli/issues/7) as a runtime mechanism for apps like GitHub CLI that our team suggests _never installing gh as a snap_. +Updates are automatically checked for (and if available, downloaded) every 6 hours. diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 6f39afad423..628954ef36b 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -5,7 +5,7 @@ adopt-info: gh grade: stable confinement: strict # classic base: core18 -license: MIT +license: MIT License package-management: # snap refresh snapcraft --channel=edge/pr-2911 repositories: - source: ppa:longsleep/golang-backports From 2ac291d178e8c691143bf6d044f27616f7b4819f Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Thu, 13 Feb 2020 18:47:11 +0000 Subject: [PATCH 05/19] add completion --- snap/snapcraft.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 628954ef36b..09533f2f4bb 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -25,9 +25,11 @@ parts: override-build: | LDFLAGS='' make -j2 cp bin/gh $SNAPCRAFT_PART_INSTALL/ + bin/gh completion -s bash > $SNAPCRAFT_PART_INSTALL/completion.sh apps: gh: command: gh plugs: - home - network + completer: completion.sh From 204364e9a33801d2c8e214c78ad352b752e815cf Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Thu, 13 Feb 2020 18:55:29 +0000 Subject: [PATCH 06/19] snap: strip v prefix from version --- snap/snapcraft.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 09533f2f4bb..0ee19151ecc 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -21,7 +21,7 @@ parts: - git override-pull: | snapcraftctl pull - snapcraftctl set-version `git describe --tags 2>/dev/null || git rev-parse --short HEAD` + snapcraftctl set-version `(git describe --tags | sed 's/^v//') 2>/dev/null || git rev-parse --short HEAD` override-build: | LDFLAGS='' make -j2 cp bin/gh $SNAPCRAFT_PART_INSTALL/ From c1f103172feecbe7579e83c66a83a26e8ba3c246 Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Fri, 14 Feb 2020 08:54:50 +0000 Subject: [PATCH 07/19] fix licence string --- snap/snapcraft.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 0ee19151ecc..7c9049f3a48 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -5,7 +5,7 @@ adopt-info: gh grade: stable confinement: strict # classic base: core18 -license: MIT License +license: MIT package-management: # snap refresh snapcraft --channel=edge/pr-2911 repositories: - source: ppa:longsleep/golang-backports From 0c2e619824c9dd473487b10a454924a596a903ef Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Fri, 14 Feb 2020 10:54:53 +0000 Subject: [PATCH 08/19] snap: add description --- snap/snapcraft.yaml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 7c9049f3a48..d7501098ecd 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,6 +1,18 @@ name: gh summary: The GitHub CLI -description: https://cli.github.com +description: | + https://cli.github.com + + **`gh` - The GitHub CLI tool** + + `gh` is GitHub on the command line, and it's now available in beta. It brings pull requests, issues, and other GitHub concepts to + the terminal next to where you are already working with `git` and your code. + + _Usage_ + + - `gh pr [status, list, view, checkout, create]` + - `gh issue [status, list, view, create]` + - `gh help` adopt-info: gh grade: stable confinement: strict # classic From 10ca45c01a1e8d090d0527df806906b8c53270c7 Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Fri, 14 Feb 2020 11:06:45 +0000 Subject: [PATCH 09/19] snap: more canonical --- snap/snapcraft.yaml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index d7501098ecd..5fd6abe6b09 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -18,18 +18,16 @@ grade: stable confinement: strict # classic base: core18 license: MIT -package-management: # snap refresh snapcraft --channel=edge/pr-2911 - repositories: - - source: ppa:longsleep/golang-backports parts: gh: plugin: make source: . + build-snaps: + - go + - snapd build-packages: - - golang-go - git stage-packages: - - golang-go - git override-pull: | snapcraftctl pull From a6b22dd010d770de18914cb7199c7b0865e58156 Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Fri, 14 Feb 2020 13:06:47 +0000 Subject: [PATCH 10/19] snap: add missing ssh dep for `gh pr checkout` --- snap/snapcraft.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 5fd6abe6b09..54658ee4a2c 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -29,6 +29,7 @@ parts: - git stage-packages: - git + - ssh override-pull: | snapcraftctl pull snapcraftctl set-version `(git describe --tags | sed 's/^v//') 2>/dev/null || git rev-parse --short HEAD` @@ -42,4 +43,5 @@ apps: plugs: - home - network + - ssh-keys completer: completion.sh From 6f71a158ad84a96e3408580edb3d8bbadfa2949b Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Fri, 14 Feb 2020 13:21:08 +0000 Subject: [PATCH 11/19] snap: add ssh documentation --- docs/install_linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/install_linux.md b/docs/install_linux.md index 489e34adfa8..3c1e4391044 100644 --- a/docs/install_linux.md +++ b/docs/install_linux.md @@ -421,7 +421,7 @@ webi gh@stable To install: -1. Ensure [`snapd` is installed](https://snapcraft.io/docs/installing-snapd) -2. `sudo snap install gh` +1. `sudo snap install gh` +2. `sudo snap connect gh:ssh-keys` grant ssh access Updates are automatically checked for (and if available, downloaded) every 6 hours. From 0b58cff2ad9b8757cba4fa5b08468467f0765200 Mon Sep 17 00:00:00 2001 From: Alan Pope Date: Fri, 14 Feb 2020 17:47:49 +0000 Subject: [PATCH 12/19] Fix authentication Thanks for making this snap. You beat me to it by about 3 hours :D When issuing a `gh pr list` the cli app needs to spark up a browser and listen for the authentication token. This PR adds the necessary interfaces (desktop and network-bind) to enable that. Tested locally on Ubuntu 20.04 --- snap/snapcraft.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 54658ee4a2c..aa1f4c8a91b 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -43,5 +43,7 @@ apps: plugs: - home - network + - network-bind + - desktop - ssh-keys completer: completion.sh From 8864b6fb45f3cba173eca4046534198d91923df0 Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Mon, 17 Feb 2020 22:49:21 +0000 Subject: [PATCH 13/19] snap: add new gcc build-dep --- snap/snapcraft.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index aa1f4c8a91b..135acee1267 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -27,6 +27,7 @@ parts: - snapd build-packages: - git + - gcc stage-packages: - git - ssh From f3721e69a89b90230d1eb67f40e15e67c7153e06 Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Wed, 19 Feb 2020 22:14:56 +0000 Subject: [PATCH 14/19] snap: add nano editor --- snap/snapcraft.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 135acee1267..7ac0a004c91 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -30,6 +30,7 @@ parts: - gcc stage-packages: - git + - nano - ssh override-pull: | snapcraftctl pull @@ -48,3 +49,5 @@ apps: - desktop - ssh-keys completer: completion.sh + environment: + GIT_EDITOR: nano From 5ebcc88bab454bc75fa08640e5430944006d66fb Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Mon, 21 Sep 2020 22:20:30 +0100 Subject: [PATCH 15/19] update issue templates - as per https://github.com/cli/cli/issues/328#issuecomment-696383888 --- .github/ISSUE_TEMPLATE/bug_report.md | 32 ------------------- .github/ISSUE_TEMPLATE/config.yml | 11 +++---- .../{submit-a-request.md => default.md} | 8 ++--- .github/ISSUE_TEMPLATE/feedback.md | 28 ---------------- 4 files changed, 6 insertions(+), 73 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md rename .github/ISSUE_TEMPLATE/{submit-a-request.md => default.md} (67%) delete mode 100644 .github/ISSUE_TEMPLATE/feedback.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index ae0d29096a4..00000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -name: "\U0001F41B Bug report" -about: Report a bug or unexpected behavior while using GitHub CLI -title: '' -labels: bug -assignees: '' - ---- - -### Describe the bug - -A clear and concise description of what the bug is. - -### Affected version - -Please run `gh version` and paste the output below. - -### Steps to reproduce the behavior - -1. Type this '...' -2. View the output '....' -3. See error - -### Expected vs actual behavior - -A clear and concise description of what you expected to happen and what actually happened. - -### Logs - -Paste the activity from your command line. Redact if needed. - - diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 0cad7e02ccc..58a02da3e17 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,8 +1,5 @@ -blank_issues_enabled: true +blank_issues_enabled: false contact_links: - - name: Ask a question on how to use GitHub CLI - about: For general-purpose questions and answers, see the Discussions section. - url: https://github.com/cli/cli/discussions - - name: Ask a question about the GitHub API - about: Please check out the GitHub community forum for discussions about the GitHub API. - url: https://github.community/c/github-ecosystem/37 + - name: "GitHub CLI issues" + url: https://github.com/cli/cli/issues/new/choose + about: "Go to the upstream repository for anything unrelated to the snap packaging" diff --git a/.github/ISSUE_TEMPLATE/submit-a-request.md b/.github/ISSUE_TEMPLATE/default.md similarity index 67% rename from .github/ISSUE_TEMPLATE/submit-a-request.md rename to .github/ISSUE_TEMPLATE/default.md index 4f66ac457b6..8f39ec3e3bb 100644 --- a/.github/ISSUE_TEMPLATE/submit-a-request.md +++ b/.github/ISSUE_TEMPLATE/default.md @@ -1,10 +1,6 @@ --- -name: "⭐ Submit a request" -about: Surface a feature or problem that you think should be solved -title: '' -labels: enhancement -assignees: '' - +name: "⭐ Snap Issue" +about: Submit an issue related to the snapcraft packaging of GitHub CLI --- ### Describe the feature or problem you’d like to solve diff --git a/.github/ISSUE_TEMPLATE/feedback.md b/.github/ISSUE_TEMPLATE/feedback.md deleted file mode 100644 index 837c36632a5..00000000000 --- a/.github/ISSUE_TEMPLATE/feedback.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -name: "\U0001F4E3 Feedback" -about: Give us general feedback about the GitHub CLI -title: '' -labels: feedback -assignees: '' - ---- - -# CLI Feedback - -You can use this template to give us structured feedback or just wipe it and leave us a note. Thank you! - -## What have you loved? - -_eg "the nice colors"_ - -## What was confusing or gave you pause? - -_eg "it did something unexpected"_ - -## Are there features you'd like to see added? - -_eg "gh cli needs mini-games"_ - -## Anything else? - -_eg "have a nice day"_ From f511ff156aca8850ebf8d7288fc07857debd8990 Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Mon, 9 Jun 2025 13:38:28 +0100 Subject: [PATCH 16/19] snap: bump core18 -> core24 - fixes #51 --- snap/snapcraft.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 7ac0a004c91..8bde6f6c4d6 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -16,7 +16,7 @@ description: | adopt-info: gh grade: stable confinement: strict # classic -base: core18 +base: core24 license: MIT parts: gh: From aa39ca8d870e47d1938620b3c89eb1965c18e841 Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Mon, 9 Jun 2025 16:18:33 +0100 Subject: [PATCH 17/19] update description --- snap/snapcraft.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 8bde6f6c4d6..085c56e2de8 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -10,8 +10,11 @@ description: | _Usage_ - - `gh pr [status, list, view, checkout, create]` - - `gh issue [status, list, view, create]` + - `gh pr [create, list, status, view, checkout, ...]` + - `gh issue [create, list, status, view, ...]` + - `gh [auth, browse, codespace, gist, org, project, release, repo, ...]` + - `gh [cache, run, workflow, ...]` + - `gh [alias, api, attestation, config, extension, gpg-key, label, preview, ruleset, search, secret, ssh-key, status, variable, ...]` - `gh help` adopt-info: gh grade: stable From e08068aabff035406be0604b8225f339a70617f1 Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Mon, 9 Jun 2025 17:34:49 +0100 Subject: [PATCH 18/19] classic confinement --- docs/install_linux.md | 3 +-- snap/snapcraft.yaml | 12 +----------- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/docs/install_linux.md b/docs/install_linux.md index 3c1e4391044..7629d4c78b6 100644 --- a/docs/install_linux.md +++ b/docs/install_linux.md @@ -421,7 +421,6 @@ webi gh@stable To install: -1. `sudo snap install gh` -2. `sudo snap connect gh:ssh-keys` grant ssh access +`sudo snap install gh --classic` Updates are automatically checked for (and if available, downloaded) every 6 hours. diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 085c56e2de8..3e15930a611 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -18,7 +18,7 @@ description: | - `gh help` adopt-info: gh grade: stable -confinement: strict # classic +confinement: classic base: core24 license: MIT parts: @@ -33,8 +33,6 @@ parts: - gcc stage-packages: - git - - nano - - ssh override-pull: | snapcraftctl pull snapcraftctl set-version `(git describe --tags | sed 's/^v//') 2>/dev/null || git rev-parse --short HEAD` @@ -45,12 +43,4 @@ parts: apps: gh: command: gh - plugs: - - home - - network - - network-bind - - desktop - - ssh-keys completer: completion.sh - environment: - GIT_EDITOR: nano From fc5cdc69742119c6912a266840ad975f66d671e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Sep 2025 00:35:28 +0000 Subject: [PATCH 19/19] chore(deps): bump actions/attest-build-provenance from 2.4.0 to 3.0.0 Bumps [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance) from 2.4.0 to 3.0.0. - [Release notes](https://github.com/actions/attest-build-provenance/releases) - [Changelog](https://github.com/actions/attest-build-provenance/blob/main/RELEASE.md) - [Commits](https://github.com/actions/attest-build-provenance/compare/e8998f949152b193b063cb0ec769d69d929409be...977bb373ede98d70efdf65b84cb5f73e068dcc2a) --- updated-dependencies: - dependency-name: actions/attest-build-provenance dependency-version: 3.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 4be4367e763..29108694b79 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -309,7 +309,7 @@ jobs: rpmsign --addsign dist/*.rpm - name: Attest release artifacts if: inputs.environment == 'production' - uses: actions/attest-build-provenance@e8998f949152b193b063cb0ec769d69d929409be # v2.4.0 + uses: actions/attest-build-provenance@977bb373ede98d70efdf65b84cb5f73e068dcc2a # v3.0.0 with: subject-path: "dist/gh_*" - name: Run createrepo