A merge whose post-merge deploy failed left the review thread orphaned (redaction was gated on deploy success). Now the thread always redacts on merge success and the deploy-failure warning is posted at top level so it survives. New clear/resolve command redacts an orphaned thread without touching the PR.
25 lines
1.3 KiB
Markdown
25 lines
1.3 KiB
Markdown
# gitea-review-bot
|
|
|
|
A thin Matrix bot that reviews and merges your **Gitea** pull requests, one review room per repo.
|
|
Separate from `matrix-bridge` (which runs interactive Claude Code sessions) — this bot's only job
|
|
is PR review.
|
|
|
|
## How it works
|
|
1. Create a Matrix room named like a repo and invite the bot. It auto-joins and maps the room to
|
|
`<owner>/<repo>` (and `~/Projects/<repo>` on the Mac), then posts an onboarding message.
|
|
2. It polls that repo's open PRs and posts each as a **thread**: a headless `claude -p` review (with
|
|
an optional subagent panel) run on the Mac over SSH.
|
|
3. In the thread: `merge` (then `yes`) or `reject`. A merge auto-deploys (if enabled) and then
|
|
redacts the thread, so the room shows only open PRs; if the deploy fails, the thread still
|
|
clears and a standalone "deploy manually" warning stays in the room. `clear` redacts an
|
|
orphaned thread without touching the PR.
|
|
|
|
Pick which review agents run per room in chat: `agents +reviewer +security -adjudicator`.
|
|
|
|
## Run (on the Spark)
|
|
1. Copy `config.example.toml` → `config.toml` and `.env.example` → `.env`; fill them in (Matrix
|
|
creds, `GITEA_TOKEN`, the `[mac]` SSH alias + reused matrix-bridge wrapper paths, `[gitea]`).
|
|
2. `docker compose up -d --build`. Logs: `docker compose logs -f`.
|
|
|
|
See `AGENTS.md` for the full design, placement, and decisions.
|