docs: ADR 0062 — Auto-merge#2791
Conversation
Proposes a separate fullsend-ai-merge app with contents:write so bot approvals count toward branch protection, combined with blank-owner CODEOWNERS entries for dependency files. Assisted-by: Claude claude-opus-4-6 <noreply@anthropic.com> Signed-off-by: Ralph Bean <rbean@redhat.com>
PR Summary by QodoADR 0062: Propose separate GitHub App for auto-merge approvals
AI Description
Diagram
High-Level Assessment
Files changed (1)
|
Site previewPreview: https://70538298-site.fullsend-ai.workers.dev Commit: |
|
🤖 Review · ❌ Terminated · Started 5:42 PM UTC · Ended 5:49 PM UTC |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Code Review by Qodo
1. docs/architecture.md not updated
|
| title: "62. Auto-merge" | ||
| status: Accepted |
There was a problem hiding this comment.
1. docs/architecture.md not updated 📜 Skill insight ⚙ Maintainability
This PR adds a new ADR marked Accepted, but there is no corresponding update to docs/architecture.md to reflect the newly decided behavior and annotate any resolved open questions. This can leave the architecture overview inconsistent with the accepted decision and makes it harder to discover the current state of the system.
Agent Prompt
## Issue description
A new ADR (`0062-auto-merge`) is introduced as `Accepted`, but the architecture overview is not updated to reflect/record the decision and to annotate any relevant resolved open questions.
## Issue Context
The compliance rules require that when an ADR is accepted, `docs/architecture.md` is updated in the same PR (and resolved open questions are annotated as resolved rather than left dangling).
## Fix Focus Areas
- docs/ADRs/0062-auto-merge.md[2-3]
- docs/architecture.md[138-200]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
| ## Decision | ||
|
|
||
| Use options B and C together: | ||
|
|
||
| 1. **Create a `fullsend-ai-merge` app** with `contents: write` and | ||
| `pull_requests: write`. Its approvals count toward branch protection. Repos | ||
| that want bot-driven auto-merge install this app; repos that only want | ||
| informational reviews keep `fullsend-ai-review`. | ||
|
|
||
| 2. **Use blank-owner CODEOWNERS entries** for files that bots should be able to | ||
| approve (starting with `go.mod` and `go.sum`). This removes the CODEOWNERS | ||
| gate for those files without affecting other paths. |
There was a problem hiding this comment.
2. Adr makes two decisions 📜 Skill insight ⚙ Maintainability
The ## Decision section makes two distinct decisions (create a separate merge app, and adopt blank-owner CODEOWNERS entries), which violates the requirement that each ADR records exactly one decision. This reduces clarity and makes it harder to supersede or revisit each decision independently.
Agent Prompt
## Issue description
The ADR's Decision section currently records two distinct decisions.
## Issue Context
Compliance requires each ADR to record exactly one decision; multiple decisions should be split so each can be reviewed, accepted, and superseded independently.
## Fix Focus Areas
- docs/ADRs/0062-auto-merge.md[54-65]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
| ## Context | ||
|
|
||
| Our review bot (`fullsend-ai-review`) can approve PRs, but GitHub only counts | ||
| an approval toward branch protection when the reviewer has write access | ||
| (`contents: write`) to the repository. The review app intentionally has | ||
| `contents: read` — giving it write access would violate the least-privilege | ||
| boundary established in [ADR 7](0007-per-role-github-apps.md). | ||
|
|
||
| We also need the bot's approval to satisfy CODEOWNERS for dependency files | ||
| (`go.mod`, `go.sum`). GitHub App bots cannot be listed as CODEOWNERS entries — | ||
| they are not "users" in GitHub's model. | ||
|
|
There was a problem hiding this comment.
3. Context lacks problem doc links 📜 Skill insight ⚙ Maintainability
The ADR Context describes motivations but does not link to the related problem documents, despite listing them in relates_to. This makes it harder to trace the decision back to the canonical problem statements and risks duplicating/fragmenting context over time.
Agent Prompt
## Issue description
The ADR Context should link to the relevant problem docs rather than standing alone.
## Issue Context
The ADR declares `relates_to` entries for `agent-architecture` and `security-threat-model`, but the Context section does not include links to those problem documents.
## Fix Focus Areas
- docs/ADRs/0062-auto-merge.md[4-6]
- docs/ADRs/0062-auto-merge.md[21-32]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
|
🤖 Finished Review · ❌ Failure · Started 5:42 PM UTC · Completed 5:49 PM UTC |
|
/fs-review |
|
🤖 Finished Review · ❌ Failure · Started 6:30 PM UTC · Completed 6:46 PM UTC |
Summary
fullsend-ai-mergeGitHub App for auto-mergecontents: write— our review bot hascontents: read, so its approvals are currently informational onlyLooking for team feedback on the approach before implementation.
Test plan
contents: writeto the review app