From a6aeb5f087784e9f3b1b526ed44d066932e9979f Mon Sep 17 00:00:00 2001 From: Hanwen Cheng Date: Mon, 1 Jun 2026 01:30:45 +0800 Subject: [PATCH] ci(mcp-server): lowercase the GHCR image tag (repository name must be lowercase) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The image job tagged ghcr.io/${{ github.repository }}/agentkeys-mcp-server, but github.repository keeps the repo's real casing (litentry/agentKeys — capital K), so docker buildx rejected it: 'invalid tag ... repository name must be lowercase'. The job runs only on push to main (skips on PRs), so it first failed on the #149 merge (Actions run 26719167517). Fix: a 'Resolve lowercase image name' step lowercases $GITHUB_REPOSITORY via tr (portable to bash 3.2 per CLAUDE.md, not the bash-4 ${,,}) → ghcr.io/litentry/agentkeys/agentkeys-mcp-server, fed to both :latest and :$sha tags. YAML validated; tr output verified locally. --- .github/workflows/mcp-server.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/mcp-server.yml b/.github/workflows/mcp-server.yml index a00859cf..a556a8c2 100644 --- a/.github/workflows/mcp-server.yml +++ b/.github/workflows/mcp-server.yml @@ -89,6 +89,13 @@ jobs: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Resolve lowercase image name + id: img + # GHCR repository names MUST be lowercase. ${{ github.repository }} keeps + # the repo's actual casing (litentry/agentKeys → capital K), which docker + # rejects with "repository name must be lowercase". Lowercase via tr + # (portable to bash 3.2; CLAUDE.md prefers tr over the bash-4 ${,,}). + run: echo "base=ghcr.io/$(printf '%s' "$GITHUB_REPOSITORY" | tr '[:upper:]' '[:lower:]')/agentkeys-mcp-server" >> "$GITHUB_OUTPUT" - name: build + push uses: docker/build-push-action@v6 with: @@ -96,7 +103,7 @@ jobs: file: crates/agentkeys-mcp-server/Dockerfile push: true tags: | - ghcr.io/${{ github.repository }}/agentkeys-mcp-server:latest - ghcr.io/${{ github.repository }}/agentkeys-mcp-server:${{ github.sha }} + ${{ steps.img.outputs.base }}:latest + ${{ steps.img.outputs.base }}:${{ github.sha }} cache-from: type=gha cache-to: type=gha,mode=max