From 4b055e786bc41dbda8ca13ef3287c6cd83575bc9 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 23 Jul 2025 18:23:07 +0000
Subject: [PATCH 01/52] chore(deps): bump github.com/spf13/pflag from 1.0.6 to
1.0.7
Bumps [github.com/spf13/pflag](https://github.com/spf13/pflag) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/spf13/pflag/releases)
- [Commits](https://github.com/spf13/pflag/compare/v1.0.6...v1.0.7)
---
updated-dependencies:
- dependency-name: github.com/spf13/pflag
dependency-version: 1.0.7
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
go.mod | 2 +-
go.sum | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/go.mod b/go.mod
index 7f0569303d0..5667e998c50 100644
--- a/go.mod
+++ b/go.mod
@@ -47,7 +47,7 @@ require (
github.com/sigstore/protobuf-specs v0.5.0
github.com/sigstore/sigstore-go v1.1.0
github.com/spf13/cobra v1.9.1
- github.com/spf13/pflag v1.0.6
+ github.com/spf13/pflag v1.0.7
github.com/stretchr/testify v1.10.0
github.com/theupdateframework/go-tuf/v2 v2.1.1
github.com/yuin/goldmark v1.7.12
diff --git a/go.sum b/go.sum
index 5433198cd03..cd23474dc81 100644
--- a/go.sum
+++ b/go.sum
@@ -1363,8 +1363,9 @@ github.com/spf13/cast v1.9.2 h1:SsGfm7M8QOFtEzumm7UZrZdLLquNdzFYfIbEXntcFbE=
github.com/spf13/cast v1.9.2/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo=
github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo=
github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0=
-github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/spf13/pflag v1.0.7 h1:vN6T9TfwStFPFM5XzjsvmzZkLuaLX+HS+0SeFLRgU6M=
+github.com/spf13/pflag v1.0.7/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/viper v1.20.1 h1:ZMi+z/lvLyPSCoNtFCpqjy0S4kPbirhpTMwl8BkW9X4=
github.com/spf13/viper v1.20.1/go.mod h1:P9Mdzt1zoHIG8m2eZQinpiBjo6kCmZSKBClNNqjJvu4=
github.com/spiffe/go-spiffe/v2 v2.5.0 h1:N2I01KCUkv1FAjZXJMwh95KK1ZIQLYbPfhaxw8WS0hE=
From 99516d64bae63193ff74727ff92d3c4e98294713 Mon Sep 17 00:00:00 2001
From: Andy Feller
Date: Wed, 23 Jul 2025 15:29:32 -0400
Subject: [PATCH 02/52] Regenerate third-party licenses on trunk pushes
Fixes #11270
This commit refactors the work done in #11047 of blocking pull requests for manual `third-party` license updates to having GitHub Actions automatically update it on pushes to `trunk`.
This will allow maintainers to streamline Dependabot PR reviews while reducing contributor friction when changing dependencies.
---
.github/workflows/lint.yml | 16 -------
.github/workflows/third-party-licenses.yml | 49 ++++++++++++++++++++++
2 files changed, 49 insertions(+), 16 deletions(-)
create mode 100644 .github/workflows/third-party-licenses.yml
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 5281a46d009..5afe6cd2ff7 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -7,15 +7,11 @@ on:
- "**.go"
- go.mod
- go.sum
- - ".github/licenses.tmpl"
- - "script/licenses*"
pull_request:
paths:
- "**.go"
- go.mod
- go.sum
- - ".github/licenses.tmpl"
- - "script/licenses*"
permissions:
contents: read
jobs:
@@ -50,18 +46,6 @@ jobs:
with:
version: v2.1.6
- # actions/setup-go does not setup the installed toolchain to be preferred over the system install,
- # which causes go-licenses to raise "Package ... does not have module info" errors.
- # for more information, https://github.com/google/go-licenses/issues/244#issuecomment-1885098633
- #
- # go-licenses has been pinned for automation use.
- - name: Check licenses
- run: |
- export GOROOT=$(go env GOROOT)
- export PATH=${GOROOT}/bin:$PATH
- go install github.com/google/go-licenses@5348b744d0983d85713295ea08a20cca1654a45e
- make licenses-check
-
# Discover vulnerabilities within Go standard libraries used to build GitHub CLI using govulncheck.
govulncheck:
runs-on: ubuntu-latest
diff --git a/.github/workflows/third-party-licenses.yml b/.github/workflows/third-party-licenses.yml
new file mode 100644
index 00000000000..b9d29e9dcfd
--- /dev/null
+++ b/.github/workflows/third-party-licenses.yml
@@ -0,0 +1,49 @@
+name: Third Party Licenses
+on:
+ push:
+ branches:
+ - trunk
+ paths:
+ - go.mod
+ - go.sum
+ - ".github/licenses.tmpl"
+ - "script/licenses*"
+jobs:
+ # This job is responsible for updating the third-party license reports and source code.
+ # It should be safe to cancel as the latest version of `go.mod` should be checked in.
+ regenerate-licenses:
+ runs-on: ubuntu-latest
+ concurrency:
+ group: ${{ github.workflow }}
+ cancel-in-progress: true
+ steps:
+ - name: Check out code
+ uses: actions/checkout@v4
+ with:
+ token: ${{ secrets.AUTOMATION_TOKEN }}
+
+ - name: Set up Go
+ uses: actions/setup-go@v5
+ with:
+ go-version-file: 'go.mod'
+
+ - name: Regenerate licenses
+ run: |
+ export GOROOT=$(go env GOROOT)
+ export PATH=${GOROOT}/bin:$PATH
+ go install github.com/google/go-licenses@5348b744d0983d85713295ea08a20cca1654a45e
+ make licenses
+ git diff
+
+ - name: Commit and push changes
+ run: |
+ if git diff --exit-code; then
+ echo "No third-party license changes to commit"
+ else
+ git config --local user.name "github-actions[bot]"
+ git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
+ git add third-party third-party-licenses.*.md
+ git commit -m "Generate licenses - $GITHUB_SHA"
+ git pull
+ git push origin
+ fi
From 45876eddc290075e4ad148b5028f26b6472b09de Mon Sep 17 00:00:00 2001
From: Sukh
Date: Mon, 23 Jun 2025 13:19:37 -0400
Subject: [PATCH 03/52] docs(search): add note for exclusion search syntax
---
pkg/cmd/search/code/code.go | 3 +++
pkg/cmd/search/commits/commits.go | 3 +++
pkg/cmd/search/issues/issues.go | 3 +++
pkg/cmd/search/prs/prs.go | 3 +++
pkg/cmd/search/repos/repos.go | 3 +++
5 files changed, 15 insertions(+)
diff --git a/pkg/cmd/search/code/code.go b/pkg/cmd/search/code/code.go
index d03526c4d9e..3a439e5cd7b 100644
--- a/pkg/cmd/search/code/code.go
+++ b/pkg/cmd/search/code/code.go
@@ -46,6 +46,9 @@ func NewCmdCode(f *cmdutil.Factory, runF func(*CodeOptions) error) *cobra.Comman
Note that these search results are powered by what is now a legacy GitHub code search engine.
The results might not match what is seen on %[1]sgithub.com%[1]s, and new features like regex search
are not yet available via the GitHub API.
+
+ Note: When using GitHub search syntax to exclude results (e.g. '-language:xml'), you must use
+ a '--' delimiter before the search query to separate it from command flags.
`, "`"),
Example: heredoc.Doc(`
# Search code matching "react" and "lifecycle"
diff --git a/pkg/cmd/search/commits/commits.go b/pkg/cmd/search/commits/commits.go
index fb1742dc9da..161ecc6a93c 100644
--- a/pkg/cmd/search/commits/commits.go
+++ b/pkg/cmd/search/commits/commits.go
@@ -45,6 +45,9 @@ func NewCmdCommits(f *cmdutil.Factory, runF func(*CommitsOptions) error) *cobra.
GitHub search syntax is documented at:
+
+ Note: When using GitHub search syntax to exclude results (e.g. '-user:monalisa'), you must use
+ a '--' delimiter before the search query to separate it from command flags.
`),
Example: heredoc.Doc(`
# Search commits matching set of keywords "readme" and "typo"
diff --git a/pkg/cmd/search/issues/issues.go b/pkg/cmd/search/issues/issues.go
index e1f4105aea4..af6e9d64c83 100644
--- a/pkg/cmd/search/issues/issues.go
+++ b/pkg/cmd/search/issues/issues.go
@@ -34,6 +34,9 @@ func NewCmdIssues(f *cmdutil.Factory, runF func(*shared.IssuesOptions) error) *c
GitHub search syntax is documented at:
+
+ Note: When using GitHub search syntax to exclude results (e.g. '-label:bug'), you must use
+ a '--' delimiter before the search query to separate it from command flags.
`),
Example: heredoc.Doc(`
# Search issues matching set of keywords "readme" and "typo"
diff --git a/pkg/cmd/search/prs/prs.go b/pkg/cmd/search/prs/prs.go
index f7a96c5bf01..b268ea3e5ce 100644
--- a/pkg/cmd/search/prs/prs.go
+++ b/pkg/cmd/search/prs/prs.go
@@ -36,6 +36,9 @@ func NewCmdPrs(f *cmdutil.Factory, runF func(*shared.IssuesOptions) error) *cobr
GitHub search syntax is documented at:
+
+ Note: When using GitHub search syntax to exclude results (e.g. '-label:bug'), you must use
+ a '--' delimiter before the search query to separate it from command flags.
`),
Example: heredoc.Doc(`
# Search pull requests matching set of keywords "fix" and "bug"
diff --git a/pkg/cmd/search/repos/repos.go b/pkg/cmd/search/repos/repos.go
index 2815ee6dc2b..733d7b7c467 100644
--- a/pkg/cmd/search/repos/repos.go
+++ b/pkg/cmd/search/repos/repos.go
@@ -46,6 +46,9 @@ func NewCmdRepos(f *cmdutil.Factory, runF func(*ReposOptions) error) *cobra.Comm
GitHub search syntax is documented at:
+
+ Note: When using GitHub search syntax to exclude results (e.g. '-topic:linux'), you must use
+ a '--' delimiter before the search query to separate it from command flags.
`),
Example: heredoc.Doc(`
# Search repositories matching set of keywords "cli" and "shell"
From 254119e49880b1dbc6ca2c0fa66c5a6a6d8d346a Mon Sep 17 00:00:00 2001
From: Kynan Ware <47394200+BagToad@users.noreply.github.com>
Date: Fri, 25 Jul 2025 17:23:45 -0600
Subject: [PATCH 04/52] Add help topic for search syntax in gh commands
Introduces a new help topic explaining how to use exclusion qualifiers in GitHub search syntax with gh commands, including platform-specific instructions for Unix-like systems and PowerShell. Provides links to relevant documentation for further reference.
Co-Authored-By: Sid <41968447+sukhpreet-s@users.noreply.github.com>
---
pkg/cmd/root/help_topic.go | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/pkg/cmd/root/help_topic.go b/pkg/cmd/root/help_topic.go
index a375d9e2050..6ea626e0673 100644
--- a/pkg/cmd/root/help_topic.go
+++ b/pkg/cmd/root/help_topic.go
@@ -304,6 +304,35 @@ var HelpTopics = []helpTopic{
control some behavior.
`),
},
+ {
+ name: "search",
+ short: "Search syntax for gh commands",
+ long: heredoc.Docf(`
+ Excluding search results that match a qualifier
+
+ In a browser, the GitHub search syntax supports excluding results that match a search qualifier
+ by prefixing the qualifier with a hyphen. For example, to search for issues that
+ do not have the label "bug", you would use %[1]s-label:bug%[1]s as a search qualifier.
+
+ %[1]sgh%[1]s supports this syntax in %[1]sgh search%[1]s as well, but it requires extra
+ syntax to avoid the hyphen being interpreted as a command line flag because it begins with a hyphen.
+
+ On Unix-like systems, you can use the %[1]s--%[1]s argument to indicate that
+ the arguments that follow are not a flag, but rather a query string. For example:
+
+ $ gh search issues -- "my-search-query -label:bug"
+
+ On PowerShell, you must use both the %[1]s--%[2]s%[1]s argument and the %[1]s--%[1]s argument to
+ produce the same effect. For example:
+
+ $ gh --%[2]s search issues -- "my search query -label:bug"
+
+ See the following for more information:
+ - GitHub search syntax:
+ - The PowerShell stop parse flag %[1]s--%[2]s%[1]s:
+ - The Unix-like %[1]s--%[1]s argument:
+ `, "`", "%"),
+ },
}
func NewCmdHelpTopic(ios *iostreams.IOStreams, ht helpTopic) *cobra.Command {
From dd0a0b3045fde60f8fd2bec7c0b1435173b80fa1 Mon Sep 17 00:00:00 2001
From: Sukh
Date: Fri, 25 Jul 2025 19:49:59 -0400
Subject: [PATCH 05/52] docs(search): add reference to `gh help search`
---
pkg/cmd/search/code/code.go | 3 +--
pkg/cmd/search/commits/commits.go | 7 +++----
pkg/cmd/search/issues/issues.go | 7 +++----
pkg/cmd/search/prs/prs.go | 7 +++----
pkg/cmd/search/repos/repos.go | 7 +++----
5 files changed, 13 insertions(+), 18 deletions(-)
diff --git a/pkg/cmd/search/code/code.go b/pkg/cmd/search/code/code.go
index 3a439e5cd7b..5e80c1017f2 100644
--- a/pkg/cmd/search/code/code.go
+++ b/pkg/cmd/search/code/code.go
@@ -47,8 +47,7 @@ func NewCmdCode(f *cmdutil.Factory, runF func(*CodeOptions) error) *cobra.Comman
The results might not match what is seen on %[1]sgithub.com%[1]s, and new features like regex search
are not yet available via the GitHub API.
- Note: When using GitHub search syntax to exclude results (e.g. '-language:xml'), you must use
- a '--' delimiter before the search query to separate it from command flags.
+ For more information on handling search queries containing a hyphen, run %[1]sgh help search-syntax%[1]s.
`, "`"),
Example: heredoc.Doc(`
# Search code matching "react" and "lifecycle"
diff --git a/pkg/cmd/search/commits/commits.go b/pkg/cmd/search/commits/commits.go
index 161ecc6a93c..ed5d1f758cb 100644
--- a/pkg/cmd/search/commits/commits.go
+++ b/pkg/cmd/search/commits/commits.go
@@ -37,7 +37,7 @@ func NewCmdCommits(f *cmdutil.Factory, runF func(*CommitsOptions) error) *cobra.
cmd := &cobra.Command{
Use: "commits []",
Short: "Search for commits",
- Long: heredoc.Doc(`
+ Long: heredoc.Docf(`
Search for commits on GitHub.
The command supports constructing queries using the GitHub search syntax,
@@ -46,9 +46,8 @@ func NewCmdCommits(f *cmdutil.Factory, runF func(*CommitsOptions) error) *cobra.
GitHub search syntax is documented at:
- Note: When using GitHub search syntax to exclude results (e.g. '-user:monalisa'), you must use
- a '--' delimiter before the search query to separate it from command flags.
- `),
+ For more information on handling search queries containing a hyphen, run %[1]sgh help search-syntax%[1]s.
+ `, "`"),
Example: heredoc.Doc(`
# Search commits matching set of keywords "readme" and "typo"
$ gh search commits readme typo
diff --git a/pkg/cmd/search/issues/issues.go b/pkg/cmd/search/issues/issues.go
index af6e9d64c83..0edca4b31f5 100644
--- a/pkg/cmd/search/issues/issues.go
+++ b/pkg/cmd/search/issues/issues.go
@@ -26,7 +26,7 @@ func NewCmdIssues(f *cmdutil.Factory, runF func(*shared.IssuesOptions) error) *c
cmd := &cobra.Command{
Use: "issues []",
Short: "Search for issues",
- Long: heredoc.Doc(`
+ Long: heredoc.Docf(`
Search for issues on GitHub.
The command supports constructing queries using the GitHub search syntax,
@@ -35,9 +35,8 @@ func NewCmdIssues(f *cmdutil.Factory, runF func(*shared.IssuesOptions) error) *c
GitHub search syntax is documented at:
- Note: When using GitHub search syntax to exclude results (e.g. '-label:bug'), you must use
- a '--' delimiter before the search query to separate it from command flags.
- `),
+ For more information on handling search queries containing a hyphen, run %[1]sgh help search-syntax%[1]s.
+ `, "`"),
Example: heredoc.Doc(`
# Search issues matching set of keywords "readme" and "typo"
$ gh search issues readme typo
diff --git a/pkg/cmd/search/prs/prs.go b/pkg/cmd/search/prs/prs.go
index b268ea3e5ce..39203f5fbc8 100644
--- a/pkg/cmd/search/prs/prs.go
+++ b/pkg/cmd/search/prs/prs.go
@@ -28,7 +28,7 @@ func NewCmdPrs(f *cmdutil.Factory, runF func(*shared.IssuesOptions) error) *cobr
cmd := &cobra.Command{
Use: "prs []",
Short: "Search for pull requests",
- Long: heredoc.Doc(`
+ Long: heredoc.Docf(`
Search for pull requests on GitHub.
The command supports constructing queries using the GitHub search syntax,
@@ -37,9 +37,8 @@ func NewCmdPrs(f *cmdutil.Factory, runF func(*shared.IssuesOptions) error) *cobr
GitHub search syntax is documented at:
- Note: When using GitHub search syntax to exclude results (e.g. '-label:bug'), you must use
- a '--' delimiter before the search query to separate it from command flags.
- `),
+ For more information on handling search queries containing a hyphen, run %[1]sgh help search-syntax%[1]s.
+ `, "`"),
Example: heredoc.Doc(`
# Search pull requests matching set of keywords "fix" and "bug"
$ gh search prs fix bug
diff --git a/pkg/cmd/search/repos/repos.go b/pkg/cmd/search/repos/repos.go
index 733d7b7c467..a7116dd5885 100644
--- a/pkg/cmd/search/repos/repos.go
+++ b/pkg/cmd/search/repos/repos.go
@@ -38,7 +38,7 @@ func NewCmdRepos(f *cmdutil.Factory, runF func(*ReposOptions) error) *cobra.Comm
cmd := &cobra.Command{
Use: "repos []",
Short: "Search for repositories",
- Long: heredoc.Doc(`
+ Long: heredoc.Docf(`
Search for repositories on GitHub.
The command supports constructing queries using the GitHub search syntax,
@@ -47,9 +47,8 @@ func NewCmdRepos(f *cmdutil.Factory, runF func(*ReposOptions) error) *cobra.Comm
GitHub search syntax is documented at:
- Note: When using GitHub search syntax to exclude results (e.g. '-topic:linux'), you must use
- a '--' delimiter before the search query to separate it from command flags.
- `),
+ For more information on handling search queries containing a hyphen, run %[1]sgh help search-syntax%[1]s.
+ `, "`"),
Example: heredoc.Doc(`
# Search repositories matching set of keywords "cli" and "shell"
$ gh search repos cli shell
From 73f6acc709e18d823fcb91df73de3932e75792f7 Mon Sep 17 00:00:00 2001
From: Sukh
Date: Fri, 25 Jul 2025 19:56:39 -0400
Subject: [PATCH 06/52] docs(help): rename `search-syntax` help topic
---
pkg/cmd/root/help_topic.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pkg/cmd/root/help_topic.go b/pkg/cmd/root/help_topic.go
index 6ea626e0673..322bc4f775c 100644
--- a/pkg/cmd/root/help_topic.go
+++ b/pkg/cmd/root/help_topic.go
@@ -305,7 +305,7 @@ var HelpTopics = []helpTopic{
`),
},
{
- name: "search",
+ name: "search-syntax",
short: "Search syntax for gh commands",
long: heredoc.Docf(`
Excluding search results that match a qualifier
From 65c7ebc79eec996dfa29f02bc5ebe6cf20600b71 Mon Sep 17 00:00:00 2001
From: Andy Feller
Date: Mon, 28 Jul 2025 17:16:56 -0400
Subject: [PATCH 07/52] v1 project feature detection spike using version
These changes are demonstrating how `gh` commands that support v1 classic projects can determine if support exists by checking the GHES server version.
---
.../featuredetection/feature_detection.go | 28 ++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/internal/featuredetection/feature_detection.go b/internal/featuredetection/feature_detection.go
index a2f34a60bec..702b9619fd9 100644
--- a/internal/featuredetection/feature_detection.go
+++ b/internal/featuredetection/feature_detection.go
@@ -5,6 +5,7 @@ import (
"github.com/cli/cli/v2/api"
"github.com/cli/cli/v2/internal/gh"
+ "github.com/hashicorp/go-version"
"golang.org/x/sync/errgroup"
ghauth "github.com/cli/go-gh/v2/pkg/auth"
@@ -205,12 +206,37 @@ func (d *detector) RepositoryFeatures() (RepositoryFeatures, error) {
return features, nil
}
+const (
+ enterpriseProjectsV1Removed = "3.17.0"
+)
+
func (d *detector) ProjectsV1() gh.ProjectsV1Support {
// Currently, projects v1 support is entirely dependent on the host. As this is deprecated in GHES,
// we will do feature detection on whether the GHES version has support.
- if ghauth.IsEnterprise(d.host) {
+ if !ghauth.IsEnterprise(d.host) {
+ return gh.ProjectsV1Unsupported
+ }
+
+ hostVersion, hostVersionErr := resolveEnterpriseVersion(d.httpClient, d.host)
+ v1ProjectCutoffVersion, v1ProjectCutoffVersionErr := version.NewVersion(enterpriseProjectsV1Removed)
+
+ if hostVersionErr == nil && v1ProjectCutoffVersionErr == nil && hostVersion.LessThan(v1ProjectCutoffVersion) {
return gh.ProjectsV1Supported
}
return gh.ProjectsV1Unsupported
}
+
+func resolveEnterpriseVersion(httpClient *http.Client, host string) (*version.Version, error) {
+ var metaResponse struct {
+ InstalledVersion string `json:"installed_version"`
+ }
+
+ apiClient := api.NewClientFromHTTP(httpClient)
+ err := apiClient.REST(host, "GET", "meta", nil, &metaResponse)
+ if err != nil {
+ return nil, err
+ }
+
+ return version.NewVersion(metaResponse.InstalledVersion)
+}
From 3d5675f5f71d8b32ec9e650d28caec01ff25a19f Mon Sep 17 00:00:00 2001
From: "Babak K. Shandiz"
Date: Thu, 31 Jul 2025 15:24:08 +0100
Subject: [PATCH 08/52] Improve spam detection evals (#11419)
* ci: improve spam detection evals
Signed-off-by: Babak K. Shandiz
* ci: make test case names consistent
Signed-off-by: Babak K. Shandiz
* ci: remove ill-indented/redundant test case
Signed-off-by: Babak K. Shandiz
---------
Signed-off-by: Babak K. Shandiz
---
.../scripts/spam-detection/eval-prompts.yml | 251 +++++++-----------
1 file changed, 100 insertions(+), 151 deletions(-)
diff --git a/.github/workflows/scripts/spam-detection/eval-prompts.yml b/.github/workflows/scripts/spam-detection/eval-prompts.yml
index be7efddfcb7..15c61ff76f3 100644
--- a/.github/workflows/scripts/spam-detection/eval-prompts.yml
+++ b/.github/workflows/scripts/spam-detection/eval-prompts.yml
@@ -10,126 +10,6 @@ evaluators:
string:
equals: "{{expected}}"
testData:
- - name: not-spam, staff issue
- expected: PASS
- input: |
-
- Automatically update third party licenses during Dependabot PRs
-
-
-
- ## Overview
-
- With `cli/cli` lint process erring if 3rd party license information is not updated in https://github.com/cli/cli/pull/11047, Dependabot PRs will require maintainers to manually run `make licenses`.
-
- Recently, @williammartin opened https://github.com/cli/cli/pull/11269 with the [`script/fix-dependabot-licenses.sh`](https://github.com/cli/cli/blob/26d70bfb7bcc0b41dbdd50bfc51f827f1a5ad4c4/script/fix-dependabot-licenses.sh) script for maintainers to run that will find all Dependabot PRs and attempt to fix them where the lint workflow failed. This script is a manual repair effort, however it is possible to [use a GitHub Actions workflow to run the `make license` script for Dependabot PRs](https://docs.github.com/en/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions):
-
- > ```yaml
- > name: Dependabot fetch metadata
- > on: pull_request
- >
- > permissions:
- > pull-requests: write
- > issues: write
- >
- > jobs:
- > dependabot:
- > runs-on: ubuntu-latest
- > if: github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == 'owner/my_repo'
- > steps:
- > - name: Dependabot metadata
- > id: metadata
- > uses: dependabot/fetch-metadata@d7267f607e9d3fb96fc2fbe83e0af444713e90b7
- > with:
- > github-token: "${{ secrets.GITHUB_TOKEN }}"
- > # The following properties are now available:
- > # - steps.metadata.outputs.dependency-names
- > # - steps.metadata.outputs.dependency-type
- > # - steps.metadata.outputs.update-type
- > ```
-
- This issue is aimed at implementing GitHub Actions workflow changes that will automatically update `third-party` license source code and `third-party-*.md` reports, eliminating the need for maintainers to manually repair Dependabot PRs.
-
- > [!NOTE]
- > To download the `script/fix-dependabot-licenses.sh` script, run the following command:
- > ```shell
- > curl -o fix-dependabot-licenses.sh https://raw.githubusercontent.com/cli/cli/26d70bfb7bcc0b41dbdd50bfc51f827f1a5ad4c4/script/fix-dependabot-licenses.sh
- > ```
- >
- > Or checkout the original PR:
- >
- > ```shell
- > gh pr checkout https://github.com/cli/cli/pull/11269
- > ```
-
- ## Expected outcomes
-
- - When Dependabot PRs are opened, automation attempts to regenerate and commit updated license information via `make licenses`
- - When Dependabot PRs are updated, status checks pass without maintainer action outside of reviewing PR
- - name: not-spam, template-based
- spam: true
- title: |
- Incorrect check summary with v2.45 and v2.75
- body: |
- ### Describe the bug
-
- I got below confusing reports with v2.45 CLI on Ubuntu 22.04:
-
- ```sh
- $ gh pr status
-
- Relevant pull requests in micropython/micropython
- ...
- Created by you
- #17660 tests/extmod: Close UDP timely. [yf13:pull-udp-close]
- ✓ Checks passing
- #17638 unix/make: Drop i686-linux-gnu path. [yf13:pull-drop-i686-linux-gnu]
- × 1/94 checks failing
- $ gh pr checks 17638
- All checks were successful
- 0 cancelled, 0 failing, 48 successful, 0 skipped, and 0 pending checks
- ```
- I downloaded latest v2.75 CLI but it is the same.
-
- Meanwhile. from browser UI it seems checks passed.
-
- ### Affected version
-
- Please run `gh version` and paste the output below.
-
- ```
- $ gh version
- gh version 2.75.0 (2025-07-09)
- https://github.com/cli/cli/releases/tag/v2.75.0
- ```
-
- ### Steps to reproduce the behavior
-
- see above descriptions.
-
- ### 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.
-
-
-
-
- - name: not-spam, short/focused
- expected: PASS
- input: |
-
- Include `isImmutable` in `release list`
-
-
-
- Update the list of available JSON fields in the `release list` command to include `isImmutable` flag.
-
- This boolean flag indicates whether a particular release has been marked as immutable.
-
- name: spam, two words
expected: FAIL
input: |
@@ -295,34 +175,6 @@ testData:
Add any other context like screenshots or mockups are helpful, if applicable.
- ### Describe the bug
-
- Bug: the instructions meant to install gh instead don't install gh.
-
- ### Affected version
-
- Latest
-
- ### Steps to reproduce the behavior
-
- Follow instructions in install_linux.md
-
- ### Expected vs actual behavior
-
- Expect: gh is installed and can be used.
-
- ### Logs
-
- A bunch of errors
- \n Note that an earlier version of the instructions used the location `/usr/share/keyrings` instead of `/etc/apt/keyrings` in the `sources.list.d` file, so I had to update that to make it work with the above update instructions, and remove the old keyring file from `/usr/share/keyrings`.\r\n\r\nAlternatively, one could of course download the updated key to `/usr/share/keyrings`, but we don't really want to pollute `/usr` with non-packaged files!\r\n\r\n_Originally posted by @rrthomas in https://github.com/cli/cli/issues/9569#issuecomment-2333981674_\r\n \n\n### Describe the bug\r\n\r\nsteps to install on RHEL9 \r\n\r\n### Steps to reproduce the behavior\r\n\r\n\r\n### Expected vs actual behavior\r\n\r\n```\r\nsudo dnf install dnf-plugins-core.noarch\r\nsudo dnf config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo\r\nsudo dnf install gh --repo gh-cli\r\n```\n
+ ## Overview
+
+ With `cli/cli` lint process erring if 3rd party license information is not updated in https://github.com/cli/cli/pull/11047, Dependabot PRs will require maintainers to manually run `make licenses`.
+
+ Recently, @williammartin opened https://github.com/cli/cli/pull/11269 with the [`script/fix-dependabot-licenses.sh`](https://github.com/cli/cli/blob/26d70bfb7bcc0b41dbdd50bfc51f827f1a5ad4c4/script/fix-dependabot-licenses.sh) script for maintainers to run that will find all Dependabot PRs and attempt to fix them where the lint workflow failed. This script is a manual repair effort, however it is possible to [use a GitHub Actions workflow to run the `make license` script for Dependabot PRs](https://docs.github.com/en/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions):
+
+ > ```yaml
+ > name: Dependabot fetch metadata
+ > on: pull_request
+ >
+ > permissions:
+ > pull-requests: write
+ > issues: write
+ >
+ > jobs:
+ > dependabot:
+ > runs-on: ubuntu-latest
+ > if: github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == 'owner/my_repo'
+ > steps:
+ > - name: Dependabot metadata
+ > id: metadata
+ > uses: dependabot/fetch-metadata@d7267f607e9d3fb96fc2fbe83e0af444713e90b7
+ > with:
+ > github-token: "${{ secrets.GITHUB_TOKEN }}"
+ > # The following properties are now available:
+ > # - steps.metadata.outputs.dependency-names
+ > # - steps.metadata.outputs.dependency-type
+ > # - steps.metadata.outputs.update-type
+ > ```
+
+ This issue is aimed at implementing GitHub Actions workflow changes that will automatically update `third-party` license source code and `third-party-*.md` reports, eliminating the need for maintainers to manually repair Dependabot PRs.
+
+ > [!NOTE]
+ > To download the `script/fix-dependabot-licenses.sh` script, run the following command:
+ > ```shell
+ > curl -o fix-dependabot-licenses.sh https://raw.githubusercontent.com/cli/cli/26d70bfb7bcc0b41dbdd50bfc51f827f1a5ad4c4/script/fix-dependabot-licenses.sh
+ > ```
+ >
+ > Or checkout the original PR:
+ >
+ > ```shell
+ > gh pr checkout https://github.com/cli/cli/pull/11269
+ > ```
+
+ ## Expected outcomes
+
+ - When Dependabot PRs are opened, automation attempts to regenerate and commit updated license information via `make licenses`
+ - When Dependabot PRs are updated, status checks pass without maintainer action outside of reviewing PR
+
+ Update the list of available JSON fields in the `release list` command to include `isImmutable` flag.
+
+ This boolean flag indicates whether a particular release has been marked as immutable.
+
+ ### Describe the bug
+
+ Bug: the instructions meant to install gh instead don't install gh.
+
+ ### Affected version
+
+ Latest
+
+ ### Steps to reproduce the behavior
+
+ Follow instructions in install_linux.md
+
+ ### Expected vs actual behavior
+
+ Expect: gh is installed and can be used.
+
+ ### Logs
+
+ A bunch of errors
+ \n### Describe the bug\r\n\r\nSimilar bug mentioned https://github.com/cli/cli/issues/3437, but gh run view or list all return a 404. The URL returned seems right based on REST api docs but not getting any response. When comparing the ID `gh run list` doesn't seem to be correct based on the ids from `gh workflow list`\r\n\r\n**gh cli version:** `gh version 2.63.2 (2024-12-05)`\r\n**ghe version:** `3.13.4`\r\n\r\n### Steps to reproduce the behavior\r\n\r\n1. Complete login to the enterprise server with Github CLI\r\n2. Go to a repository directory that uses that server as a remote\r\n3. Run gh run list returns 404\r\n\r\n### Expected vs actual behavior\r\n\r\nThe gh run list prints out list of workflow runs for the repo to choose from\r\n\r\n### Logs\r\n\r\n```bash\r\n[git remote -v]\r\n[git config --get-regexp ^remote\\..*\\.gh-resolved$]\r\n* Request at 2024-12-13 00:23:19.723417 -0600 CST m=+0.101249251\r\n* Request to https://{SERVER_URL}/api/graphql\r\n* Request took 281.385ms\r\n⣾* Request at 2024-12-13 00:23:20.040818 -0600 CST m=+0.418510918\r\n* Request to https://{SERVER_URL}/api/v3/repos/{ORG}/{REPO}/actions/runs?per_page=20&exclude_pull_requests=true\r\n⢿* Request took 421.362291ms\r\n⡿* Request at 2024-12-13 00:23:20.534045 -0600 CST m=+0.911535293\r\n* Request to https://{SERVER_URL}/api/v3/repos/{ORG}/{REPO}/actions/workflows?per_page=100&page=1\r\n⣟* Request took 105.218541ms\r\n* Request at 2024-12-13 00:23:20.700194 -0600 CST m=+1.077616418\r\n* Request to https://{SERVER_URL}/api/v3/repos/{ORG}/{REPO}/actions/workflows/63737\r\n⣯* Request took 121.476458ms\r\nfailed to get runs: HTTP 404: Not Found (https://{SERVER_URL}/api/v3/repos/{ORG}/{REPO}/actions/workflows/63737)\r\n```\r\n\n### Describe the bug\r\n\r\nsteps to install on RHEL9 \r\n\r\n### Steps to reproduce the behavior\r\n\r\n\r\n### Expected vs actual behavior\r\n\r\n```\r\nsudo dnf install dnf-plugins-core.noarch\r\nsudo dnf config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo\r\nsudo dnf install gh --repo gh-cli\r\n```\n\n### Describe the bug\n\n- `gh gist delete` doesn't prompt for a gist to delete. This seems like it might be an oversight when compared to the behavior of other `gh gist` and `gh delete` operations.\n- `gh gist delete` should prompt for a gist to delete and confirm the selection to delete.\n- `gh gist delete` also does not currently support `--yes` for non-interactive confirmation - perhaps it should? \n\n### Steps to reproduce the behavior\n\n```\ngh gist delete\n```\n### Expected vs actual behavior\n\n**Expected**\n\n```\n❯ gh gist delete\n? Select a gist to delete [Use arrows to move, type to filter]\n> test.md test gist about 4 days ago\n draft.md about 2 months ago\n? Are you sure you want to delete gist test.md (Y/n)\n```\n\n**Actual**\n```\ngh gist delete\n❯ gh gist delete\ncannot delete: gist argument required\n\nUsage: gh gist delete { | } [flags]\n```\n\n### Notes\n\nDiscovered in #10042 \n