Skip to content

Commit c7da76c

Browse files
oschwaldclaude
andcommitted
Pin GitHub Actions to SHA for security
Update official GitHub Actions (actions/*, github/*) to use pinned commit SHAs instead of version tags. This satisfies zizmor's unpinned-action-reference security check. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent cab015d commit c7da76c

5 files changed

Lines changed: 40 additions & 12 deletions

File tree

.github/workflows/codeql-analysis.yml

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

1919
steps:
2020
- name: Checkout repository
21-
uses: actions/checkout@v6
21+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
2222
with:
2323
# We must fetch at least the immediate parents so that if this is
2424
# a pull request then we can checkout the head.
@@ -31,23 +31,23 @@ jobs:
3131
if: ${{ github.event_name == 'pull_request' }}
3232

3333
- name: Setup .NET
34-
uses: actions/setup-dotnet@v5
34+
uses: actions/setup-dotnet@2016bd2012dba4e32de620c46fe006a3ac9f0602 # v5.0.1
3535
with:
3636
dotnet-version: |
3737
8.0.x
3838
9.0.x
3939
4040
# Initializes the CodeQL tools for scanning.
4141
- name: Initialize CodeQL
42-
uses: github/codeql-action/init@v4
42+
uses: github/codeql-action/init@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
4343
# Override language selection by uncommenting this and choosing your languages
4444
# with:
4545
# languages: go, javascript, csharp, python, cpp, java
4646

4747
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
4848
# If this step fails, then you should remove it and run the build manually (see below)
4949
- name: Autobuild
50-
uses: github/codeql-action/autobuild@v4
50+
uses: github/codeql-action/autobuild@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
5151

5252
# ℹ️ Command-line programs to run using the OS shell.
5353
# 📚 https://git.io/JvXDl
@@ -61,4 +61,4 @@ jobs:
6161
# make release
6262

6363
- name: Perform CodeQL Analysis
64-
uses: github/codeql-action/analyze@v4
64+
uses: github/codeql-action/analyze@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9

.github/workflows/release.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ jobs:
1616
build:
1717
runs-on: windows-latest
1818
steps:
19-
- uses: actions/checkout@v6
19+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
2020
with:
2121
submodules: true
2222
persist-credentials: false
2323

2424
- name: Setup .NET
25-
uses: actions/setup-dotnet@v5
25+
uses: actions/setup-dotnet@2016bd2012dba4e32de620c46fe006a3ac9f0602 # v5.0.1
2626
with:
2727
dotnet-version: |
2828
8.0.x
@@ -41,7 +41,7 @@ jobs:
4141
run: dotnet pack -c Release MaxMind.GeoIP2/MaxMind.GeoIP2.csproj
4242

4343
- name: Upload artifacts
44-
uses: actions/upload-artifact@v6
44+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
4545
with:
4646
name: nuget-packages
4747
path: MaxMind.GeoIP2/bin/Release/*.nupkg
@@ -55,7 +55,7 @@ jobs:
5555
if: github.event_name == 'release' && github.event.action == 'published'
5656
steps:
5757
- name: Download artifacts
58-
uses: actions/download-artifact@v7
58+
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
5959
with:
6060
name: nuget-packages
6161
path: packages

.github/workflows/test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ jobs:
1515
runs-on: ${{ matrix.platform }}
1616
name: Dotnet on ${{ matrix.platform }}
1717
steps:
18-
- uses: actions/checkout@v6
18+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
1919
with:
2020
submodules: true
2121
persist-credentials: false
2222

2323
- name: Setup .NET
24-
uses: actions/setup-dotnet@v5
24+
uses: actions/setup-dotnet@2016bd2012dba4e32de620c46fe006a3ac9f0602 # v5.0.1
2525
with:
2626
dotnet-version: |
2727
8.0.x

.github/workflows/zizmor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
security-events: write
1616
steps:
1717
- name: Checkout repository
18-
uses: actions/checkout@v6
18+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
1919
with:
2020
persist-credentials: false
2121

issue.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
### Describe the bug
2+
3+
After the recent GitHub Actions runner image update (win25/20251125.122), a test that uses WireMock.Net to return a simple `text/plain` response with HTTP 406 is now throwing `TaskCanceledException` on Windows with .NET 10.
4+
5+
The same test passes on:
6+
- Windows with the previous image (win25/20251102.77)
7+
- Linux and macOS with the same .NET version
8+
- Windows with .NET 8 and .NET 9
9+
10+
Failing build: https://github.com/maxmind/GeoIP2-dotnet/actions/runs/19903956765/job/57058325684
11+
12+
### Expected behavior
13+
14+
The test should receive the mocked HTTP 406 response and throw our custom `HttpException`, not a `TaskCanceledException`.
15+
16+
### Test to reproduce
17+
18+
1. Set up a WireMock server returning HTTP 406 with `Content-Type: text/plain`
19+
2. Make a synchronous HTTP request using `HttpClient.Send()` on .NET 10
20+
3. Run on Windows Server 2025 Build 7171
21+
22+
Our test code: https://github.com/maxmind/GeoIP2-dotnet/blob/main/MaxMind.GeoIP2.UnitTests/WebServiceClientTests.cs#L146-L157
23+
24+
### Other related info
25+
26+
The main difference between the working and failing runner images is Windows OS Build 6905 → 7171. That update ([KB5068861](https://support.microsoft.com/en-us/topic/november-11-2025-kb5068861-os-build-26100-7171-24e553d1-2338-433e-9cc3-61733148530c)) mentions stricter HTTP.sys parsing for RFC 9112 compliance around CRLF in chunk extensions. Not sure if that's related, but thought it might be a lead.
27+
28+
Using WireMock.Net 1.16.0.

0 commit comments

Comments
 (0)