mathiasandClaude Opus 5 e4d07c106c
CD / Lint / Test / Vet (push) Successful in 10s
CD / Build & Import (push) Successful in 7s
CD / Deploy via GitOps (push) Successful in 9s
ci(deploy): refuse to patch a manifest with an empty IMAGE_TAG (infra#311)
On 2026-08-25 a deploy job ran with an empty IMAGE_TAG, wrote
`image: localhost:5000/gitea-mcp:` into the infra repo and pushed it.
That is invalid YAML, so Flux failed the ENTIRE apps Kustomization --
every app stopped reconciling for about an hour, including three
unrelated deploys queued behind it.

This job's existing check could not catch it. It greps for
`image: <repo>:${IMAGE_TAG}` after the sed, and with IMAGE_TAG empty that
pattern matches the corrupted line itself, so the verification passes
because of the bug rather than despite it.

Asserting the input up front is the fix: an empty tag now fails the job
before anything is written, let alone committed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011PL5XcG68SvQqz3vGVbWbf
2026-08-25 17:25:23 +02:00
2026-05-17 09:44:52 +02:00

gitea-mcp

Streamable HTTP MCP service exposing Gitea repo operations to Claude apps. See ~/dev/AI/infra/docs/superpowers/specs/2026-05-04-gitea-mcp-gitops-workflow-design.md.

Quickstart

task setup:hooks   # installs .githooks/pre-push — runs task check before every push
task check         # context sync + lint + test + vet
task build         # produces bin/gitea-mcp

This repo uses Trunk-Based Development. Commit directly to main. The pre-push hook enforces the quality gate locally; CI re-runs task check on every push.

S
Description
Custom MCP front door for Gitea — claude.ai connector + Streamable HTTP
Readme
941 KiB
Languages
Go 97.9%
Shell 1.9%
Dockerfile 0.2%