fix(#5470): prefer direct push for write-access users, detect gitlint, suppress self-dispatch - #5473
Conversation
|
🤖 Review · ❌ Terminated · Started 4:16 PM UTC · Ended 4:47 PM UTC |
Site previewPreview: https://d0d14fcd-site.fullsend-ai.workers.dev Commit: |
|
🤖 Finished Review · ❌ Failure · Started 4:16 PM UTC · Completed 4:47 PM UTC |
dca6731 to
725e4b3
Compare
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
|
/fs-review |
|
🤖 Finished Review · ✅ Success · Started 9:01 PM UTC · Completed 9:19 PM UTC |
ReviewFindingsLow
Previous runReviewFindingsLow
Previous run (2)ReviewFindingsLow
Previous run (3)ReviewFindingsLow
Previous run (4)ReviewFindingsLow
Previous run (5)ReviewFindingsLow
Previous run (6)ReviewFindingsLow
Previous run (7)ReviewFindingsLow
Previous runReviewFindingsMedium
Low
Labels: PR modifies scaffold installation logic and dispatch shim templates Previous run (8)ReviewFindingsLow
Previous run (9)ReviewFindingsMedium
Low
Labels: PR modifies scaffold installation logic and dispatch shim templates |
725e4b3 to
3f513a2
Compare
3f513a2 to
f89020a
Compare
|
/fs-review |
|
🤖 Finished Review · ✅ Success · Started 2:11 AM UTC · Completed 2:29 AM UTC |
f89020a to
1aed186
Compare
|
🤖 Finished Review · ✅ Success · Started 6:03 PM UTC · Completed 6:20 PM UTC |
777b3ce to
3028269
Compare
|
/fs-review |
|
🤖 Finished Review · ✅ Success · Started 6:28 PM UTC · Completed 6:47 PM UTC |
3028269 to
63da5ca
Compare
|
/fs-review |
|
🤖 Finished Review · ✅ Success · Started 6:50 PM UTC · Completed 7:05 PM UTC |
c6915a4 to
9d1053b
Compare
|
/fs-review |
|
🤖 Finished Review · ✅ Success · Started 7:26 PM UTC · Completed 7:41 PM UTC |
9d1053b to
6a7616b
Compare
…d PRs Three CI failure modes when `fullsend admin install` creates scaffold PRs: 1. Commit message may not match target repo's .gitlint title-match-regex. Added adaptCommitMsg that reads .gitlint, tries conventional-commit alternatives (chore/ci/build/bare), and falls back with a warning. 2. Fork-based PRs are untrusted by /ok-to-test gates. Added hasWriteAccess check so collaborators with write/maintain/admin push directly to upstream, avoiding the fork trust issue entirely. 3. Shim workflow self-dispatches on the scaffold PR branch. Tightened the dispatch condition to skip only PR events on the exact scaffold branch name (fullsend/scaffold-install). Closes #5470 Signed-off-by: Claude <noreply@anthropic.com> Signed-off-by: Greg Allen <gallen@redhat.com>
6a7616b to
378d1ee
Compare
|
🤖 Finished Retro · ✅ Success · Started 8:46 PM UTC · Completed 9:00 PM UTC |
Retro: PR #5473 — scaffold PR CI fixesTimeline: Issue #5470 filed Jul 22 15:47 → PR #5473 opened Jul 22 16:14 → merged Jul 23 20:44 (~29 hours). Code agent performed well — produced a comprehensive fix for all 3 sub-problems (fork trust gates, gitlint detection, self-dispatch) in 15 minutes (run 29935955756). Review agent found a genuine medium-severity bug (missing Key issues identified:
What went well: Code agent quality was high. Review agent caught a real bug. The multi-sub-problem decomposition from triage was effective. Proposals filed
|
Summary
/ok-to-testtrust gates that block CI on cross-fork PRs.gitlinttitle-match-regexfrom target repos before creating the scaffold PR and warns when the commit message won't matchfullsend-devin dev builds)Related Issue
Closes #5470
Changes
Direct push for write-access users (sub-problem #2: fork trust gates)
commitScaffoldViaPRnow callsGetCollaboratorPermissionvia theGitHubExtensionsinterface to check if the non-owner user haswriteoradminaccessreadpermissionGitlint detection (sub-problem #1: commit message linting)
CommitScaffoldFilesnow reads.gitlintfrom the target repo viaGetFileContenttitle-match-regexsection exists and the scaffold commit message doesn't match, warns the user that commit-lint CI may fail.gitlint, missing section, and invalid regex (all no-ops)Self-dispatch suppression (sub-problem #3)
!startsWith(github.event.pull_request.head.ref, 'fullsend/scaffold')before dispatchingCleanup
scaffoldPRBody()disclaimer function and its test — replaced with a simpledefaultScaffoldPRBodyconstant containing the original PR bodyadmin.go(waschore: initialize fullsend-{version}, now matchesrepos.go:chore: initialize fullsend per-repo installation)Testing
go build ./internal/cli/... ./internal/layers/...passesgo test ./internal/layers/...passes (all tests including new write-access and gitlint tests)go test ./internal/scaffold/...passes (includingTestShimScaffoldBranchFilter)Closes #5470