For failed jobs, instead of just showing the tail (which is cleanup),
now scans for error patterns (❌, Error:, FAILED, TypeScript errors,
npm/pnpm errors, exit codes, etc.) and shows context around them.
Falls back to tail for successful jobs or if no errors detected.
Gitea uses different ID namespaces for tasks vs jobs. Now searches
the /actions/jobs endpoint and matches by html_url containing the
run_number to find the correct job_id for logs retrieval.
- Fetches logs by run_number (or defaults to most recent run)
- Returns last 50 lines by default (configurable via tail_lines)
- Handles Gitea's task/job ID mapping automatically
- Updates API reference with correct workflow endpoints
- Check content-type header before parsing as JSON
- Return raw text wrapped in dict for non-JSON responses
- Also accept both GITEA_URL and GITEA_HOST env vars
Health check no longer validates Gitea connectivity - this is checked
when tools are actually called. Fixes Docker health check failures when
container networking can't resolve external Gitea URL.
- 6 curated MCP tools (get_my_user_info, search_repos, list_my_repos, get_repo, list_repo_issues, list_repo_commits)
- API pass-through tool (gitea_api_call) for complete API coverage
- Curated API reference resource (gitea://api-reference)
- Health check endpoint
- Docker support with Gitea Actions CI
- docker-compose.yml for production, docker-compose.dev.yml for local builds
- 6 curated MCP tools (get_my_user_info, search_repos, list_my_repos, get_repo, list_repo_issues, list_repo_commits)
- API pass-through tool (gitea_api_call) for complete API coverage
- Curated API reference resource (gitea://api-reference)
- Health check endpoint
- Docker support with health checks