Skip to content

Commit 1b99902

Browse files
Copilotpelikhan
andauthored
Restore MCP image digest pins for default versions
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
1 parent 008c12c commit 1b99902

4 files changed

Lines changed: 61 additions & 0 deletions

File tree

.github/aw/actions-lock.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,11 @@
370370
"digest": "sha256:8001e4bfa52d45abd05c45a8f855ce62bc893eb66e4807bb487bf2ff07fc1473",
371371
"pinned_image": "ghcr.io/github/gh-aw-mcpg:v0.3.16@sha256:8001e4bfa52d45abd05c45a8f855ce62bc893eb66e4807bb487bf2ff07fc1473"
372372
},
373+
"ghcr.io/github/gh-aw-mcpg:v0.3.22": {
374+
"image": "ghcr.io/github/gh-aw-mcpg:v0.3.22",
375+
"digest": "sha256:ce5c6f5461b077af0d8e8eb1763436e85153f8e9531117d58a7bdb23de71f00a",
376+
"pinned_image": "ghcr.io/github/gh-aw-mcpg:v0.3.22@sha256:ce5c6f5461b077af0d8e8eb1763436e85153f8e9531117d58a7bdb23de71f00a"
377+
},
373378
"ghcr.io/github/gh-aw-mcpg:v0.3.6": {
374379
"image": "ghcr.io/github/gh-aw-mcpg:v0.3.6",
375380
"digest": "sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c",
@@ -405,6 +410,16 @@
405410
"digest": "sha256:e3816a476a977cfb836e7d221510011436c654d11861db66ecfd826601aba6a4",
406411
"pinned_image": "ghcr.io/github/github-mcp-server:v1.0.4@sha256:e3816a476a977cfb836e7d221510011436c654d11861db66ecfd826601aba6a4"
407412
},
413+
"ghcr.io/github/github-mcp-server:v1.1.0": {
414+
"image": "ghcr.io/github/github-mcp-server:v1.1.0",
415+
"digest": "sha256:71b07d9abecb83b4a2595bcd8ccb35f9a0166361a12335f9e16da1ef07172029",
416+
"pinned_image": "ghcr.io/github/github-mcp-server:v1.1.0@sha256:71b07d9abecb83b4a2595bcd8ccb35f9a0166361a12335f9e16da1ef07172029"
417+
},
418+
"ghcr.io/github/github-mcp-server:v1.1.2": {
419+
"image": "ghcr.io/github/github-mcp-server:v1.1.2",
420+
"digest": "sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c",
421+
"pinned_image": "ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"
422+
},
408423
"ghcr.io/github/serena-mcp-server:latest": {
409424
"image": "ghcr.io/github/serena-mcp-server:latest",
410425
"digest": "sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5",

pkg/actionpins/actionpins_internal_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"context"
77
"testing"
88

9+
"github.com/github/gh-aw/pkg/constants"
910
"github.com/stretchr/testify/assert"
1011
"github.com/stretchr/testify/require"
1112
)
@@ -154,6 +155,21 @@ func TestGetContainerPin_MCPGatewayV039IsPinned(t *testing.T) {
154155
assert.Equal(t, image+"@sha256:64828b42a4482f58fab16509d7f8f495a6d97c972a98a68aff20543531ac0388", pin.PinnedImage, "Expected pinned image to include v0.3.9 digest")
155156
}
156157

158+
func TestGetContainerPin_DefaultMCPImagesArePinned(t *testing.T) {
159+
images := []string{
160+
constants.DefaultMCPGatewayContainer + ":" + string(constants.DefaultMCPGatewayVersion),
161+
"ghcr.io/github/github-mcp-server:" + string(constants.DefaultGitHubMCPServerVersion),
162+
}
163+
164+
for _, image := range images {
165+
pin, ok := GetContainerPin(image)
166+
require.True(t, ok, "Expected embedded container pin for %s", image)
167+
assert.Equal(t, image, pin.Image, "Expected image name to match key")
168+
assert.NotEmpty(t, pin.Digest, "Expected digest to be populated for %s", image)
169+
assert.Equal(t, image+"@"+pin.Digest, pin.PinnedImage, "Expected pinned image to include digest for %s", image)
170+
}
171+
}
172+
157173
type countingResolver struct {
158174
called int
159175
}

pkg/actionpins/data/action_pins.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,11 @@
370370
"digest": "sha256:8001e4bfa52d45abd05c45a8f855ce62bc893eb66e4807bb487bf2ff07fc1473",
371371
"pinned_image": "ghcr.io/github/gh-aw-mcpg:v0.3.16@sha256:8001e4bfa52d45abd05c45a8f855ce62bc893eb66e4807bb487bf2ff07fc1473"
372372
},
373+
"ghcr.io/github/gh-aw-mcpg:v0.3.22": {
374+
"image": "ghcr.io/github/gh-aw-mcpg:v0.3.22",
375+
"digest": "sha256:ce5c6f5461b077af0d8e8eb1763436e85153f8e9531117d58a7bdb23de71f00a",
376+
"pinned_image": "ghcr.io/github/gh-aw-mcpg:v0.3.22@sha256:ce5c6f5461b077af0d8e8eb1763436e85153f8e9531117d58a7bdb23de71f00a"
377+
},
373378
"ghcr.io/github/gh-aw-mcpg:v0.3.6": {
374379
"image": "ghcr.io/github/gh-aw-mcpg:v0.3.6",
375380
"digest": "sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c",
@@ -405,6 +410,16 @@
405410
"digest": "sha256:e3816a476a977cfb836e7d221510011436c654d11861db66ecfd826601aba6a4",
406411
"pinned_image": "ghcr.io/github/github-mcp-server:v1.0.4@sha256:e3816a476a977cfb836e7d221510011436c654d11861db66ecfd826601aba6a4"
407412
},
413+
"ghcr.io/github/github-mcp-server:v1.1.0": {
414+
"image": "ghcr.io/github/github-mcp-server:v1.1.0",
415+
"digest": "sha256:71b07d9abecb83b4a2595bcd8ccb35f9a0166361a12335f9e16da1ef07172029",
416+
"pinned_image": "ghcr.io/github/github-mcp-server:v1.1.0@sha256:71b07d9abecb83b4a2595bcd8ccb35f9a0166361a12335f9e16da1ef07172029"
417+
},
418+
"ghcr.io/github/github-mcp-server:v1.1.2": {
419+
"image": "ghcr.io/github/github-mcp-server:v1.1.2",
420+
"digest": "sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c",
421+
"pinned_image": "ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"
422+
},
408423
"ghcr.io/github/serena-mcp-server:latest": {
409424
"image": "ghcr.io/github/serena-mcp-server:latest",
410425
"digest": "sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5",

pkg/workflow/data/action_pins.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,11 @@
370370
"digest": "sha256:8001e4bfa52d45abd05c45a8f855ce62bc893eb66e4807bb487bf2ff07fc1473",
371371
"pinned_image": "ghcr.io/github/gh-aw-mcpg:v0.3.16@sha256:8001e4bfa52d45abd05c45a8f855ce62bc893eb66e4807bb487bf2ff07fc1473"
372372
},
373+
"ghcr.io/github/gh-aw-mcpg:v0.3.22": {
374+
"image": "ghcr.io/github/gh-aw-mcpg:v0.3.22",
375+
"digest": "sha256:ce5c6f5461b077af0d8e8eb1763436e85153f8e9531117d58a7bdb23de71f00a",
376+
"pinned_image": "ghcr.io/github/gh-aw-mcpg:v0.3.22@sha256:ce5c6f5461b077af0d8e8eb1763436e85153f8e9531117d58a7bdb23de71f00a"
377+
},
373378
"ghcr.io/github/gh-aw-mcpg:v0.3.6": {
374379
"image": "ghcr.io/github/gh-aw-mcpg:v0.3.6",
375380
"digest": "sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c",
@@ -405,6 +410,16 @@
405410
"digest": "sha256:e3816a476a977cfb836e7d221510011436c654d11861db66ecfd826601aba6a4",
406411
"pinned_image": "ghcr.io/github/github-mcp-server:v1.0.4@sha256:e3816a476a977cfb836e7d221510011436c654d11861db66ecfd826601aba6a4"
407412
},
413+
"ghcr.io/github/github-mcp-server:v1.1.0": {
414+
"image": "ghcr.io/github/github-mcp-server:v1.1.0",
415+
"digest": "sha256:71b07d9abecb83b4a2595bcd8ccb35f9a0166361a12335f9e16da1ef07172029",
416+
"pinned_image": "ghcr.io/github/github-mcp-server:v1.1.0@sha256:71b07d9abecb83b4a2595bcd8ccb35f9a0166361a12335f9e16da1ef07172029"
417+
},
418+
"ghcr.io/github/github-mcp-server:v1.1.2": {
419+
"image": "ghcr.io/github/github-mcp-server:v1.1.2",
420+
"digest": "sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c",
421+
"pinned_image": "ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"
422+
},
408423
"ghcr.io/github/serena-mcp-server:latest": {
409424
"image": "ghcr.io/github/serena-mcp-server:latest",
410425
"digest": "sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5",

0 commit comments

Comments
 (0)