ci(e2e-auth): trust fullsend-ai-coder[bot] for functional tests - #89
Conversation
GitHub Apps get author_association=CONTRIBUTOR and the collaborator permission API doesn't resolve bot accounts, so fullsend-ai-coder[bot] PRs were always unauthorized. Add a TRUSTED_BOTS list with an is_trusted_bot check that runs before the association/permission checks. Adds unit tests for the authorization script. Assisted-by: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Ralph Bean <rbean@redhat.com>
|
🤖 Finished Review · ✅ Success · Started 7:37 PM UTC · Completed 7:49 PM UTC |
PR Summary by Qodoci(e2e-auth): Trust fullsend-ai-coder[bot] for functional tests
AI Description
Diagram
High-Level Assessment
Files changed (3)
|
Code Review by Qodo
Context used✅ Compliance rules (platform):
55 rules 1.
|
ReviewFindingsMedium🔸 [protected-path]
|
shellcheck SC2030/SC2031 flagged exports inside $(...) as local to the subshell. Move them outside so the intent is clearer and shellcheck passes. Assisted-by: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Ralph Bean <rbean@redhat.com>
|
🤖 Finished Review · ✅ Success · Started 7:54 PM UTC · Completed 8:09 PM UTC |
- Add empty-string guard to is_trusted_bot to prevent latent fail-open - Remove unused get_github_output() helper from test script Assisted-by: Claude claude-opus-4-6 <noreply@anthropic.com> Signed-off-by: Ralph Bean <rbean@redhat.com>
|
🤖 Review · |
Signed-off-by: Ralph Bean <rbean@redhat.com> Assisted-by: Claude claude-opus-4-6 <noreply@anthropic.com> Signed-off-by: Ralph Bean <rbean@redhat.com>
|
🤖 Finished Review · ✅ Success · Started 8:21 PM UTC · Completed 8:34 PM UTC |
waynesun09
left a comment
There was a problem hiding this comment.
Review-squad pass (4 agents: Claude ×2, Gemini, Codex). Posting the two unique MEDIUM+ findings that survived verification against the live workflow/script/PR history — the rest were either LOW-severity test-hardening suggestions or false positives (e.g. the empty-string fail-open and bot-login-spoofing concerns were already ruled out: the guard is already in the code, and GitHub reserves [bot]-suffixed logins for genuine App accounts).
…ssertions Add script header comment documenting that trusted bot bypass skips the ok-to-test label gate and what mitigations are in place. Extend assert_unauthorized to verify the expected reason value, preventing the ERR trap (reason=error) from masking test failures. Signed-off-by: Ralph Bean <rbean@redhat.com> Assisted-by: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Ralph Bean <rbean@redhat.com>
|
🤖 Finished Review · ✅ Success · Started 8:51 PM UTC · Completed 9:03 PM UTC |
waynesun09
left a comment
There was a problem hiding this comment.
Both MEDIUM findings from the review-squad pass are addressed: the trust-boundary tradeoff is now documented in the script header, and assert_unauthorized verifies the reason= value (confirmed by running the test suite against the updated branch — all 6 tests pass). LGTM.
|
🤖 Finished Retro · ✅ Success · Started 9:01 PM UTC · Completed 9:07 PM UTC |
|
Review skipped — this PR is already merged. The Posted by fullsend post-review check |
Retro: PR #89 —
|
Summary
fullsend-ai-coder[bot]to aTRUSTED_BOTSlist incheck-e2e-authorization.shso it passes the functional test gateauthor_association=CONTRIBUTORfrom GitHub and the collaborator permission API doesn't resolve bot accounts, so it was alwaysunauthorized(see PR fix(#83): use correct variable in new issues confidence gate #84)Test plan
make script-testpasses🤖 Generated with Claude Code