Repository navigation
docs(adr): add ADR 0171, poll for fork PRs from authorized authors - #9381
waynesun09 wants to merge 1 commit into
Conversation
ADR 0164 moves the shim to pull_request and skips fork PRs, so fork PRs from authorized authors lose automatic review. This ADR decides the follow-up: an opt-in scheduled poll lists open fork PRs, keeps those whose author passes review authorization, and dispatches one review per head commit from a default-branch workflow. Assisted-by: Claude Signed-off-by: Wayne Sun <gsun@redhat.com>
Code Review by Qodo🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)
Great, no issues found!Qodo reviewed your code and found no material issues that require reviewTip of the day💡 Did you know, you can open the rule or relationship behind a finding in one click |
PR Summary by QodoDocument opt-in polling for authorized fork PR reviews
AI Description
Diagram
High-Level Assessment
Files changed (2)
|
|
🤖 Finished Review · ✅ Success · Started 3:58 PM UTC · Completed 4:08 PM UTC Commit: Runtime: pi · Model: sonnet → claude-sonnet-5-5 · Effort: high · Cost: $2.31 |
Site previewPreview: https://72b09034-site.fullsend-ai.workers.dev Commit: |
|
Risk Assessment: moderate (2/5) DetailsLow metadata risk for a two-file documentation change adding an ADR without protected path or CI changes, balanced by high historical churn and author contention on docs/architecture.md. |
ReviewFindingsLow
Labels: ADR on fork PR review dispatch; type/adr and docs/dispatch/security labels match prior ADR PRs. Next steps:
|
| ADR 0164 suggests pushing the branch to the repository instead of a fork. | ||
| Authors with only triage access have no push access, so they cannot. | ||
|
|
||
| fullsend already finds work on a schedule. A scheduled workflow runs |
There was a problem hiding this comment.
[low] doc-style
Per docs/contributing/documentation.md § 'Product name casing', the product name is capitalized as 'Fullsend' at the start of a sentence. Line 50 starts a sentence with lowercase 'fullsend' ('fullsend already finds work...'), and line 53 does the same ('fullsend's own contributor vouch check...').
Suggested fix: Capitalize 'Fullsend' at the start of each sentence on lines 50 and 53: 'Fullsend already finds work on a schedule.' and 'Fullsend's own contributor vouch check ...'.
Summary
ADR 0164 (#9227) moves the shim to
pull_requestand skips every fork PR, so fork PRs from authorized authors lose automatic review. It leaves restoring that as a follow-up decision. This ADR makes it: an opt-in scheduled poll finds fork PRs from authorized authors and starts review for them from a default-branch workflow.What is decided
fullsend pollwith a new GitHub pull request input/fs-reviewstays for an immediate reviewready-for-reviewlabel on fork PRs, Dependabot PRs and PRs with merge conflictsWhy a poll
pull_request_targetexception, noworkflow_run, no new hosted service, no new App permission.forks:allowlist "does not grant permissions or expose secrets", and Document fork PR, issue-template, and runner-step guidance github/gh-aw#76299 says not to useworkflow_run"as a way to bypass fork safeguards". It does run scheduled agents that read PRs, forks included, through the API (checked at gh-aw1802a3bb0).Evidence
Counts from the GitHub REST API on 2026-11-12, PRs created since 2026-10-13, bots excluded. Author role is
role_namefrom the collaborator permission endpoint, as of that day.fullsend-ai/fullsendfullsend-ai/agentsSchedule delay: the last 200 scheduled runs of
vouch-check.yml(*/10) in this repository, 2026-11-10 21:45Z to 2026-11-12 15:13Z. Gap between runs: median 11.1 min, 90th percentile 17.7 min, longest 47.3 min. Run duration: median 15 s. A*/5schedule was not measured.Current behaviour the ADR describes, at
main48288e014:repos installwhen Jira polling is on, cron*/5:internal/scaffold/fullsend-repo/templates/jira-poll-per-repo.yaml,internal/scaffold/jira_poll.go.triageonopened|synchronize|ready_for_review, with no draft check: theDetermine stagestep of.github/workflows/reusable-dispatch.yml.routeSynchronizedininternal/dispatch/router.go..github/workflows/vouch-check.yml(changed in d8a5ac4 for ci: move fullsend's own workflows off pull_request_target before the Dec 2 default block #9245). The base branch of this PR predates that commit, so the file still showspull_request_targethere.Review notes
docs/architecture.mdgets one new bullet. No accepted ADR is edited.Assisted-by: Claude