MCP Gateway rejects digest-pinned container images: embedded JSON schema disagrees with containerPattern
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 72/100
Research direction
Start with the server container pattern in internal/config/schema/mcp-gateway-config.schema.json and compare it with containerPattern in internal/config/validation_rules.go, which already accepts an optional @sha256 suffix. Append the same digest group to the schema pattern, then add cases to internal/config/validation_schema_test.go showing that both digest forms pass and a short digest fails. Done when the digest-pinned configs load and invalid images are still rejected.
Written by the indexing model from the issue text.
Description
Analysis
The MCP Gateway (github/gh-aw-mcpg, v0.4.33) rejects digest-pinned server images, so MCP server images cannot be pinned by digest from a workflow. gh-aw's workflow schema allows container: name:tag@sha256:<64 hex>, so it compiles, then fails at gateway startup.
In gh-aw-mcpg the two validators disagree:
internal/config/validation_rules.go:containerPatternends with(@sha256:[a-fA-F0-9]{64})?(accepts digests;validation_string_patterns_test.gohas digest cases as valid).internal/config/schema/mcp-gateway-config.schema.json(embedded, applied to the stdin config): the servercontainerpattern ends with(:([a-zA-Z0-9._-]+|latest))?$, no digest. Unchanged from v0.4.28 to v0.4.33.
Reproduce with ghcr.io/github/gh-aw-mcpg:v0.4.33 and an identical minimal config, changing only container:
ghcr.io/github/github-mcp-server:v1.0.0: accepted....:v1.0.0@sha256:<64 hex>and...@sha256:<64 hex>:failed to load config: ... jsonschema validation failed ... Location: <root>.
Implementation Plan (in github/gh-aw-mcpg)
internal/config/schema/mcp-gateway-config.schema.json: append(@sha256:[a-fA-F0-9]{64})?to the servercontainerpattern(s), matchingcontainerPattern.- Tests (
internal/config/validation_schema_test.go): both digest forms pass schema validation; a short digest fails. - Run
make agent-finishedbefore completing.
Acceptance Criteria
A config whose server container is name:tag@sha256:<64 hex> or name@sha256:<64 hex> loads and launches on the gateway; invalid images are still rejected.
- Dominant language
- Go
- Stars
- 5.4k
- Forks
- 584
- Avg merge
- 3h 20m
- Merged PRs (30d)
- 830
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- Ships a Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from github/gh-aw
-
agent-research
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
automated conformance medium-priority safe-outputs
Difficulty 1/5 Under an hour Newbie friendliness 84/100
Maintainers usually reply within 1 day
-
windows workflow
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
cookie sergo
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
github/gh-aw#69613 · 1 comment ·
Maintainers usually reply within 1 day
-
goroutineresourceleak (81st linter): paren_unwrap_gap across lock/cancel/channel detection, day oneOpencookie sergo
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
github/gh-aw#68591 · 1 comment ·
Maintainers usually reply within 1 day
Similar issues
-
Chained slog With calls discard previously bound attributesPossibly taken @yuefdev claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
[scanner] TestAgentNowLineStates hard-fails instead of degrading when node is off PATHPossibly taken @arteeh claimed this today. Openagent/scanner ci help wanted kind/test
Difficulty 1/5 Under an hour Newbie friendliness 90/100
hivecommons/hive#12924 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Gentleman-Programming/engram#1940 ·
Maintainers usually reply within 1 day
-
area: go-workers help wanted tech debt
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
[exporter/splunkhec] Oversized metric event causes subsequent valid metrics to be droppedPossibly taken @harshkoli1255 claimed this today. Openbug exporter/splunkhec needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
open-telemetry/opentelemetry-collector-contrib#52142 · 1 comment ·
Maintainers usually reply within 1 day