From 99098364d2c639dc4e7af731468a0c0783ea2648 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 b4536ac544935c840c3493e65fe8efd5c8aee22f 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 ef3249df93e05e3c7b57f053d85e6adbd1cdbeb8 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 ec68b081cb5469f60050e4c499c9e594c562cee8 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 --- README.md | 9 +++++++++ snap/snapcraft.yaml | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8257cf56692..72df0cf7e80 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,15 @@ For more information, see [Linux & BSD installation](./docs/install_linux.md). MSI installers are available for download on the [releases page][]. +### Snapcraft + +Install: + +1. Ensure [`snapd` is installed](https://snapcraft.io/docs/installing-snapd) +2. `sudo snap install gh` + +Updates are automatically checked for (and if available, downloaded) every 6 hours. + ### Codespaces To add GitHub CLI to your codespace, add the following to your [devcontainer file](https://docs.github.com/en/codespaces/setting-up-your-project-for-codespaces/adding-features-to-a-devcontainer-file): 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 ee45f08dab5f5f1be366401110046f6ab58052ec 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 433b4d4961599952cff7b050b426e1dcc70c7c44 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 f6d875f2ec962d36e01df91c3fa836e1b8e8935d 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 226ebd6c77e728f929ce28e0a576d307c0d8eb5b 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 687b149b31ad31b9b7049725a662887b460ad9e5 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 e842a3f359a057cb380e06a6786938b697a2b9d4 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 22b07c4592d9f23f27fb5fd4ba537680d501ea0b 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 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 72df0cf7e80..7459656bd3c 100644 --- a/README.md +++ b/README.md @@ -111,8 +111,8 @@ MSI installers are available for download on the [releases page][]. 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 3ed5bf123fa701a93f63c42c8e3766e3c4ceaaa8 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 00cdcffd290c0e6da2166ebabec2e56348caa6b5 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 cbea44315e8d4c8453f63941214c3bb0d74b8f03 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 51980e2399f567a669a3c4cc63e8e17ae9b5961e 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 f4e2163b0441fc5fc21f3aafecf349d3d2d9f713 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 12836d84dbb166238da0f5a5a84d52d6a089d2b5 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 5bba5829a17bfaceeb66579674cb46cdb0ca8da7 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 --- README.md | 3 +-- snap/snapcraft.yaml | 12 +----------- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 7459656bd3c..f77f2d175bb 100644 --- a/README.md +++ b/README.md @@ -111,8 +111,7 @@ MSI installers are available for download on the [releases page][]. 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 f78651d511805bf6cda09f04241483d39bda3139 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Jul 2025 09:57:25 +0000 Subject: [PATCH 19/19] chore(deps): bump advanced-security/filter-sarif from 1.0.0 to 1.0.1 Bumps [advanced-security/filter-sarif](https://github.com/advanced-security/filter-sarif) from 1.0.0 to 1.0.1. - [Release notes](https://github.com/advanced-security/filter-sarif/releases) - [Commits](https://github.com/advanced-security/filter-sarif/compare/bc96d9fb9338c5b48cc440b1b4d0a350b26a20db...f3b8118a9349d88f7b1c0c488476411145b6270d) --- updated-dependencies: - dependency-name: advanced-security/filter-sarif dependency-version: 1.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/codeql.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index f30257878e9..ac32a67af3a 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -48,7 +48,7 @@ jobs: - name: Filter SARIF for third-party code if: matrix.language == 'go' - uses: advanced-security/filter-sarif@bc96d9fb9338c5b48cc440b1b4d0a350b26a20db # v1.0.0 + uses: advanced-security/filter-sarif@f3b8118a9349d88f7b1c0c488476411145b6270d # v1.0.1 with: patterns: | -third-party/**