MCP Gateway rejects digest-pinned container images: embedded JSON schema disagrees with containerPattern
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 72/100
調査の方向性
サーバーの container パターンを internal/config/schema/mcp-gateway-config.schema.json で確認し、すでにオプションの @sha256 サフィックスを受け入れている internal/config/validation_rules.go の containerPattern と比較してください。同じダイジェストのグループをスキーマのパターンに追加し、次に internal/config/validation_schema_test.go にケースを追加して、両方のダイジェスト形式が通ること、短いダイジェストが失敗することを示してください。ダイジェストで固定された設定が読み込まれ、無効なイメージが引き続き拒否されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- Go
- スター
- 5.4k
- フォーク
- 584
- 平均マージ
- 3時間 16分
- マージ済み PR(30日)
- 826
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
github/gh-aw のほかの issue
-
agent-research
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
cookie sergo
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
goroutineresourceleak (81st linter): paren_unwrap_gap across lock/cancel/channel detection, day oneオープンcookie sergo
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
github/gh-aw#68591 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
automation models
難易度 1/5 1時間未満 初心者へのやさしさ 1/100
メンテナーはふだん 1 日以内に返信
-
agentic-workflows automation cookie
難易度 5/5 1週間以上 初心者へのやさしさ 1/100
メンテナーはふだん 1 日以内に返信
似ている issue
-
documentation good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
メンテナーはふだん 1 日以内に返信
-
install-path local lint proofs will exit 5 on roster-less machines once #3263 release is pinnedオープンraised-by:reviewer
難易度 1/5 1〜3時間 初心者へのやさしさ 90/100
medici-finance/assay#3333 ·
メンテナーはふだん 1 日以内に返信
-
enhancement good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
onurbaydas/VirtoMir#9 ·
-
Add --version flagオープンenhancement good first issue
難易度 1/5 1時間未満 初心者へのやさしさ 95/100
syncronix-labs/aegora#12 ·
-
auto-fixable pkg:api
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
tphakala/birdnet-go#4650 · コメント 2 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信