mathiasandClaude Opus 5 1d75bf9b25
CD / Lint / Test / Vet (push) Successful in 10s
CD / Build & Import (push) Successful in 5s
CD / Deploy via GitOps (push) Successful in 4s
fix(ci): no expression syntax in a run: block's comments
act interpolates a `run:` block INCLUDING its shell comments, so prose
containing Actions expression syntax is evaluated as an expression. A
comment I added yesterday explaining why a fallback was computed in shell
contained that syntax as an example; act tried to evaluate it, failed
with "Unavailable context: a", and the step then wrote NO outputs at all.

In gitea-mcp that emptied `needs.build.outputs.image-tag`, so its deploy
job committed `image: localhost:5000/gitea-mcp:` to the infra repo --
which is not valid YAML, so Flux's apps Kustomization went Ready:False
and NOTHING in k3s/apps reconciled estate-wide until infra 51ceb7c.

The build still went green throughout, because the shared build-image.sh
falls back to `git rev-parse --short HEAD` when SHA_TAG is empty. A
robust default hid a broken input -- worth remembering as a pattern.

Same comment text removed here; the explanation stays, the syntax does not.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011PL5XcG68SvQqz3vGVbWbf
2026-08-25 15:29:40 +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%