feat(#1662): ADR 0054 — implement is_authorized on all agent dispatch paths - #1688
Conversation
Site previewPreview: https://91a07774-site.fullsend-ai.workers.dev Commit: |
ReviewFindingsMedium
Previous runReviewFindingsMedium
Low
Previous runReviewFindingsMedium
Low
Previous run (2)ReviewFindingsMedium
Low
Previous run (3)ReviewFindingsHigh
Medium
Low
Labels: PR modifies dispatch workflow authorization logic, adds a security-focused ADR, and updates agent documentation Previous run (4)ReviewFindingsMedium
Low
Labels: PR modifies dispatch workflow authorization logic and adds a security-focused ADR requiring authorization on all agent dispatch paths. Previous run (5)ReviewFindingsMedium
Low
Labels: PR modifies dispatch workflow authorization logic and adds a security-focused ADR. Previous run (6)ReviewFindingsMedium
Low
Labels: PR modifies dispatch workflow authorization logic and adds security-focused ADR Previous run (7)ReviewFindingsMedium
Low
Info
Labels: PR modifies dispatch workflow authorization logic and adds security-focused ADR Previous run (8)ReviewFindingsMedium
Low
Info
Labels: PR modifies dispatch workflow authorization logic and adds a security-focused ADR with documentation updates. Previous run (9)ReviewFindingsMedium
Low
Info
Labels: PR modifies dispatch workflow authorization logic and adds security gates to agent dispatch paths. Previous run (10)ReviewFindingsMedium
Low
Info
Previous run (11)ReviewFindingsMedium
Low
Info
Previous run (12)ReviewFindingsMedium
Low
Info
Previous run (13)ReviewFindingsMedium
Low
Info
Previous run (14)ReviewFindingsMedium
Low
Info
|
eee399d to
27584e3
Compare
c6d4382 to
dca8138
Compare
ralphbean
left a comment
There was a problem hiding this comment.
A few non-blocking notes inline. The PR title still says "slash commands" but the ADR covers all dispatch paths now — worth updating since the merge commit title feeds release notes.
|
Updated with the implementation — all dispatch paths (slash commands + event triggers) now gated with
|
E2E tests did not runThe authorization check failed (GitHub API error). Re-run the workflow when the API is available; if this persists, contact a maintainer. See E2E testing guide for details. |
|
🤖 Finished Review · ✅ Success · Started 12:28 PM UTC · Completed 12:42 PM UTC |
|
🤖 Finished Retro · ✅ Success · Started 12:57 PM UTC · Completed 1:13 PM UTC |
Retro: PR #1688 — ADR 0054, authorize all agent dispatch pathsTimeline: 26 days (May 29 – Jun 24), 21 commits, 13 files changed across workflow code, ADR, agent docs, scaffold, and tests. Workflow graph: triage → What went well:
What could go better:
Proposals filed: 1 new proposal (review run cancellation on merge). Other findings map to existing open issues. Proposals filed
|
Summary
Implements ADR 0054: all agent dispatch paths now require write-level repository permission before dispatching.
Authorization mechanism
Both slash commands (
is_authorized) and event triggers (is_event_actor_authorized) delegate to a sharedhas_write_permission()helper that calls the collaborator permission API (GET /repos/{owner}/{repo}/collaborators/{username}/permission) and checks.role_name. Users withadmin,maintain, orwriterole are authorized.This replaces the previous
author_association-based check which was unreliable for users with private org membership (github/gh-aw-mcpg#2862).Changes
reusable-dispatch.yml+ scaffolddispatch.yml: unified authorization viahas_write_permission()using.role_name/fs-triage,/fs-code,/fs-review,issues.opened/edited,pull_request_target.opened/synchronizecode.md,fix.md,review.md,retro.md,triage.md,prioritize.md): updated authorization requirementarchitecture.md: added ADR 0054 reference to slash-command parser sectionbugfix-workflow.md,e2e-testing.md: updated authorization descriptionsDesign notes
needs-infore-triage path intentionally uses a weaker gate (author_association != NONE) to allow external reporters to provide clarification::warning::annotations (fail-closed)Closes #1662