Skip to content

Commit 41a396a

Browse files
Merge branch 'main' into dependabot/github_actions/actions/download-artifact-7
2 parents 9c1180f + 8eb17c4 commit 41a396a

File tree

1,079 files changed

+5612
-158980
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,079 files changed

+5612
-158980
lines changed

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"image": "mcr.microsoft.com/devcontainers/go:1.24",
2+
"image": "mcr.microsoft.com/devcontainers/go:1.25",
33
"features": {
44
"ghcr.io/devcontainers/features/sshd:1": {}
55
},

.github/CONTRIBUTING.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@
22

33
Hi! Thanks for your interest in contributing to the GitHub CLI!
44

5-
We accept pull requests for bug fixes and features where we've discussed the approach in an issue and given the go-ahead for a community member to work on it. We'd also love to hear about ideas for new features as issues.
5+
We accept pull requests for issues labelled `help wanted`. We encourage issues and discussion posts for all other contributions.
66

77
### Please do:
88

99
* Check issues to verify that a [bug][bug issues] or [feature request][feature request issues] issue does not already exist for the same problem or feature
1010
* Open an issue if things aren't working as expected
11-
* Open an issue to propose a significant change
11+
* Open an issue to propose a change
1212
* Open an issue to propose a design for an issue labelled [`needs-design` and `help wanted`][needs design and help wanted], following the [proposing a design guidelines](#proposing-a-design) instructions below
1313
* Open an issue to propose a new community supported `gh` package with details about support and redistribution
1414
* Mention `@cli/code-reviewers` when an issue you want to work on does not have clear Acceptance Criteria
1515
* Open a pull request for any issue labelled [`help wanted`][hw] and [`good first issue`][gfi]
1616

17-
### Please _do not_:
17+
### Please _do NOT_:
1818

1919
* Open a pull request for issues without the `help wanted` label or explicit Acceptance Criteria
2020
* Expand pull request scope to include changes that are not described in the issue's Acceptance Criteria
@@ -24,7 +24,7 @@ We accept pull requests for bug fixes and features where we've discussed the app
2424
## Building the project
2525

2626
Prerequisites:
27-
- Go 1.24+
27+
- Go 1.25+
2828

2929
Build with:
3030
* Unix-like systems: `make`

.github/workflows/bump-go.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
runs-on: ubuntu-latest
1111
steps:
1212
- name: Checkout repository
13-
uses: actions/checkout@v5
13+
uses: actions/checkout@v6
1414

1515
- name: Set up Go
1616
uses: actions/setup-go@v6

.github/workflows/codeql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525

2626
steps:
2727
- name: Check out code
28-
uses: actions/checkout@v5
28+
uses: actions/checkout@v6
2929

3030
- name: Setup Go
3131
if: matrix.language == 'go'

.github/workflows/deployment.yml

Lines changed: 49 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,24 @@ jobs:
4444
if: contains(inputs.platforms, 'linux')
4545
steps:
4646
- name: Checkout
47-
uses: actions/checkout@v5
47+
uses: actions/checkout@v6
4848
- name: Set up Go
4949
uses: actions/setup-go@v6
5050
with:
5151
go-version-file: 'go.mod'
5252
- name: Install GoReleaser
53-
uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a
53+
uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0
5454
with:
55-
version: "~1.17.1"
55+
# The version is pinned not only for security purposes, but also to avoid breaking
56+
# our scripts, which rely on the specific file names generated by GoReleaser.
57+
version: v2.13.1
5658
install-only: true
59+
# We temporarily create a tag on HEAD to make the right version embedded
60+
# in the built binaries, BUT we don't push it to the remote.
61+
- name: Create temporary tag
62+
env:
63+
TAG_NAME: ${{ inputs.tag_name }}
64+
run: git tag "$TAG_NAME"
5765
- name: Build release binaries
5866
env:
5967
TAG_NAME: ${{ inputs.tag_name }}
@@ -62,7 +70,7 @@ jobs:
6270
run: |
6371
go run ./cmd/gen-docs --website --doc-path dist/manual
6472
tar -czvf dist/manual.tar.gz -C dist -- manual
65-
- uses: actions/upload-artifact@v4
73+
- uses: actions/upload-artifact@v6
6674
with:
6775
name: linux
6876
if-no-files-found: error
@@ -79,7 +87,7 @@ jobs:
7987
if: contains(inputs.platforms, 'macos')
8088
steps:
8189
- name: Checkout
82-
uses: actions/checkout@v5
90+
uses: actions/checkout@v6
8391
- name: Set up Go
8492
uses: actions/setup-go@v6
8593
with:
@@ -103,10 +111,18 @@ jobs:
103111
security set-key-partition-list -S "apple-tool:,apple:,codesign:" -s -k "$keychain_password" "$keychain"
104112
rm "$RUNNER_TEMP/cert.p12"
105113
- name: Install GoReleaser
106-
uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a
114+
uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0
107115
with:
108-
version: "~1.17.1"
116+
# The version is pinned not only for security purposes, but also to avoid breaking
117+
# our scripts, which rely on the specific file names generated by GoReleaser.
118+
version: v2.13.1
109119
install-only: true
120+
# We temporarily create a tag on HEAD to make the right version embedded
121+
# in the built binaries, BUT we don't push it to the remote.
122+
- name: Create temporary tag
123+
env:
124+
TAG_NAME: ${{ inputs.tag_name }}
125+
run: git tag "$TAG_NAME"
110126
- name: Build release binaries
111127
env:
112128
TAG_NAME: ${{ inputs.tag_name }}
@@ -134,7 +150,7 @@ jobs:
134150
run: |
135151
shopt -s failglob
136152
script/pkgmacos "$TAG_NAME"
137-
- uses: actions/upload-artifact@v4
153+
- uses: actions/upload-artifact@v6
138154
with:
139155
name: macos
140156
if-no-files-found: error
@@ -151,15 +167,17 @@ jobs:
151167
if: contains(inputs.platforms, 'windows')
152168
steps:
153169
- name: Checkout
154-
uses: actions/checkout@v5
170+
uses: actions/checkout@v6
155171
- name: Set up Go
156172
uses: actions/setup-go@v6
157173
with:
158174
go-version-file: 'go.mod'
159175
- name: Install GoReleaser
160-
uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a
176+
uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0
161177
with:
162-
version: "~1.17.1"
178+
# The version is pinned not only for security purposes, but also to avoid breaking
179+
# our scripts, which rely on the specific file names generated by GoReleaser.
180+
version: v2.13.1
163181
install-only: true
164182
- name: Install Azure Code Signing Client
165183
shell: pwsh
@@ -170,17 +188,24 @@ jobs:
170188
METADATA_PATH: ${{ runner.temp }}\acs\metadata.json
171189
run: |
172190
# Download Azure Code Signing client containing the DLL needed for signtool in script/sign
173-
Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Azure.CodeSigning.Client/1.0.43 -OutFile $Env:ACS_ZIP -Verbose
191+
Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.Trusted.Signing.Client/1.0.95 -OutFile $Env:ACS_ZIP -Verbose
174192
Expand-Archive $Env:ACS_ZIP -Destination $Env:ACS_DIR -Force -Verbose
175193
176194
# Generate metadata file for signtool, used in signing box .exe and .msi
177195
@{
178196
CertificateProfileName = "GitHubInc"
179197
CodeSigningAccountName = "GitHubInc"
180198
CorrelationId = $Env:CORRELATION_ID
181-
Endpoint = "https://wus.codesigning.azure.net/"
199+
Endpoint = "https://wus3.codesigning.azure.net/"
182200
} | ConvertTo-Json | Out-File -FilePath $Env:METADATA_PATH
183201
202+
# We temporarily create a tag on HEAD to make the right version embedded
203+
# in the built binaries, BUT we don't push it to the remote.
204+
- name: Create temporary tag
205+
shell: bash
206+
env:
207+
TAG_NAME: ${{ inputs.tag_name }}
208+
run: git tag "$TAG_NAME"
184209
# Azure Code Signing leverages the environment variables for secrets that complement the metadata.json
185210
# file generated above (AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_TENANT_ID)
186211
# For more information, see https://learn.microsoft.com/en-us/dotnet/api/azure.identity.defaultazurecredential?view=azure-dotnet
@@ -207,15 +232,15 @@ jobs:
207232
MSI_VERSION="$(cut -d_ -f2 <<<"$MSI_NAME" | cut -d- -f1)"
208233
case "$MSI_NAME" in
209234
*_386 )
210-
source_dir="$PWD/dist/windows_windows_386"
235+
source_dir="$PWD/dist/windows_windows_386_sse2"
211236
platform="x86"
212237
;;
213238
*_amd64 )
214239
source_dir="$PWD/dist/windows_windows_amd64_v1"
215240
platform="x64"
216241
;;
217242
*_arm64 )
218-
source_dir="$PWD/dist/windows_windows_arm64"
243+
source_dir="$PWD/dist/windows_windows_arm64_v8.0"
219244
platform="arm64"
220245
;;
221246
* )
@@ -238,7 +263,7 @@ jobs:
238263
Get-ChildItem -Path .\dist -Filter *.msi | ForEach-Object {
239264
.\script\sign.ps1 $_.FullName
240265
}
241-
- uses: actions/upload-artifact@v4
266+
- uses: actions/upload-artifact@v6
242267
with:
243268
name: windows
244269
if-no-files-found: error
@@ -254,11 +279,11 @@ jobs:
254279
if: inputs.release
255280
steps:
256281
- name: Checkout cli/cli
257-
uses: actions/checkout@v5
282+
uses: actions/checkout@v6
258283
- name: Merge built artifacts
259284
uses: actions/download-artifact@v7
260285
- name: Checkout documentation site
261-
uses: actions/checkout@v5
286+
uses: actions/checkout@v6
262287
with:
263288
repository: github/cli.github.com
264289
path: site
@@ -309,9 +334,14 @@ jobs:
309334
rpmsign --addsign dist/*.rpm
310335
- name: Attest release artifacts
311336
if: inputs.environment == 'production'
312-
uses: actions/attest-build-provenance@977bb373ede98d70efdf65b84cb5f73e068dcc2a # v3.0.0
337+
<<<<<<< HEAD
338+
uses: actions/attest-build-provenance@00014ed6ed5efc5b1ab7f7f34a39eb55d41aa4f8 # v3.1.0
339+
=======
340+
uses: actions/attest-build-provenance@96278af6caaf10aea03fd8d33a09a777ca52d62f # v3.2.0
341+
>>>>>>> main
313342
with:
314343
subject-path: "dist/gh_*"
344+
create-storage-record: false # (default: true)
315345
- name: Run createrepo
316346
env:
317347
GPG_SIGN: ${{ inputs.environment == 'production' }}

.github/workflows/detect-spam.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
environment: cli-automation
1515
steps:
1616
- name: Checkout repository
17-
uses: actions/checkout@v5
17+
uses: actions/checkout@v6
1818
- name: Run spam detection
1919
env:
2020
GH_TOKEN: ${{ secrets.AUTOMATION_TOKEN }}

.github/workflows/go.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818

1919
steps:
2020
- name: Check out code
21-
uses: actions/checkout@v5
21+
uses: actions/checkout@v6
2222

2323
- name: Set up Go
2424
uses: actions/setup-go@v6
@@ -45,7 +45,7 @@ jobs:
4545

4646
steps:
4747
- name: Check out code
48-
uses: actions/checkout@v5
48+
uses: actions/checkout@v6
4949

5050
- name: Set up Go
5151
uses: actions/setup-go@v6

.github/workflows/govulncheck.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ name: Go Vulnerability Check
22
on:
33
schedule:
44
- cron: "0 0 * * 1" # Every Monday at midnight UTC
5+
workflow_dispatch:
6+
57
jobs:
68
govulncheck:
79
runs-on: ubuntu-latest
@@ -10,7 +12,7 @@ jobs:
1012
security-events: write
1113
steps:
1214
- name: Check out code
13-
uses: actions/checkout@v5
15+
uses: actions/checkout@v6
1416

1517
- name: Set up Go
1618
uses: actions/setup-go@v6

.github/workflows/lint.yml

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,23 @@ on:
77
- "**.go"
88
- go.mod
99
- go.sum
10+
- ".github/licenses.tmpl"
11+
- "script/licenses*"
1012
pull_request:
1113
paths:
1214
- "**.go"
1315
- go.mod
1416
- go.sum
17+
- ".github/licenses.tmpl"
18+
- "script/licenses*"
1519
permissions:
1620
contents: read
1721
jobs:
1822
lint:
1923
runs-on: ubuntu-latest
2024
steps:
2125
- name: Check out code
22-
uses: actions/checkout@v5
26+
uses: actions/checkout@v6
2327

2428
- name: Set up Go
2529
uses: actions/setup-go@v6
@@ -42,16 +46,28 @@ jobs:
4246
exit $STATUS
4347
4448
- name: golangci-lint
45-
uses: golangci/golangci-lint-action@4afd733a84b1f43292c63897423277bb7f4313a9 # v8.0.0
49+
uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20 # v9.2.0
4650
with:
47-
version: v2.1.6
51+
version: v2.6.0
52+
53+
# actions/setup-go does not setup the installed toolchain to be preferred over the system install,
54+
# which causes go-licenses to raise "Package ... does not have module info" errors.
55+
# For more information, https://github.com/google/go-licenses/issues/244#issuecomment-1885098633
56+
#
57+
# go-licenses has been pinned for automation use.
58+
- name: Check licenses
59+
run: |
60+
export GOROOT=$(go env GOROOT)
61+
export PATH=${GOROOT}/bin:$PATH
62+
go install github.com/google/go-licenses/v2@3e084b0caf710f7bfead967567539214f598c0a2 # v2.0.1
63+
make licenses-check
4864
4965
# Discover vulnerabilities within Go standard libraries used to build GitHub CLI using govulncheck.
5066
govulncheck:
5167
runs-on: ubuntu-latest
5268
steps:
5369
- name: Check out code
54-
uses: actions/checkout@v5
70+
uses: actions/checkout@v6
5571

5672
- name: Set up Go
5773
uses: actions/setup-go@v6
@@ -60,7 +76,9 @@ jobs:
6076

6177
# `govulncheck` exits unsuccessfully if vulnerabilities are found, providing results in stdout.
6278
# See https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck#hdr-Exit_codes for more information on exit codes.
79+
#
80+
# On go1.25, To make `-mode binary` work we need to make sure the binary is built with `go build -buildvcs=false`
81+
# Since our builds do not use `-buildvcs=false`, we run in source mode here instead.
6382
- name: Check Go vulnerabilities
6483
run: |
65-
make
66-
go run golang.org/x/vuln/cmd/govulncheck@d1f380186385b4f64e00313f31743df8e4b89a77 -mode=binary bin/gh
84+
go run golang.org/x/vuln/cmd/govulncheck@d1f380186385b4f64e00313f31743df8e4b89a77 ./...

.github/workflows/pr-help-wanted.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
runs-on: ubuntu-latest
2020
steps:
2121
- name: Checkout repository
22-
uses: actions/checkout@v5
22+
uses: actions/checkout@v6
2323

2424
- name: Set PR variables for workflow_dispatch event
2525
id: pr-vars-dispatch

0 commit comments

Comments
 (0)