feat(#814): make review agent multi-forge (GitHub + GitLab) - #815
Conversation
|
🤖 Finished Review · ✅ Success · Started 2:42 AM UTC · Completed 3:02 AM UTC Commit: |
ReviewFindingsHigh
Medium
Low
Next steps:
Previous runReviewFindingsMedium
Low
Previous run (2)ReviewFindingsMedium
Low
Previous run (3)ReviewFindingsHigh
Medium
Low
Labels: PR adds new GitLab forge support capability to the review agent. Next steps:
Previous run (4)ReviewFindingsHigh
Medium
Low
Next steps:
Previous run (5)ReviewFindingsMedium
Low
Previous run (6)ReviewFindingsMedium
Low
Previous run (7)ReviewFindingsMedium
Low
Previous run (8)ReviewFindingsMedium
Low
Info
Previous run (9)ReviewFindingsMedium
Low
Previous run (10)ReviewFindingsMedium
Low
Previous run (11)ReviewFindingsMedium
Low
Previous run (12)ReviewFindingsMedium
Low
Previous run (13)ReviewFindingsMedium
Low
Previous run (14)ReviewFindingsMedium
Low
Next steps:
|
c5b0ed7 to
8864cf8
Compare
|
🤖 Finished Review · ✅ Success · Started 12:26 PM UTC · Completed 12:44 PM UTC Commit: |
8864cf8 to
7e97bca
Compare
|
🤖 Finished Review · ✅ Success · Started 12:50 PM UTC · Completed 1:06 PM UTC Commit: |
7e97bca to
1327121
Compare
|
🤖 Finished Review · ✅ Success · Started 5:14 PM UTC · Completed 5:33 PM UTC Commit: |
1327121 to
20d17b7
Compare
|
🤖 Finished Review · ✅ Success · Started 5:42 PM UTC · Completed 6:00 PM UTC Commit: |
20d17b7 to
b62861d
Compare
|
🤖 Finished Review · ✅ Success · Started 6:04 PM UTC · Completed 6:23 PM UTC Commit: |
Superseded by updated review
b62861d to
0fa7dfb
Compare
|
🤖 Finished Review · ✅ Success · Started 6:33 PM UTC · Completed 6:48 PM UTC Commit: |
7175f79 to
501c42b
Compare
|
🤖 Finished Review · ✅ Success · Started 10:16 PM UTC · Completed 10:38 PM UTC Commit: |
501c42b to
2bb686f
Compare
|
🤖 Finished Review · ✅ Success · Started 11:09 PM UTC · Completed 11:28 PM UTC Commit: |
2bb686f to
6412b50
Compare
|
🤖 Finished Review · ✅ Success · Started 11:36 PM UTC · Completed 11:54 PM UTC Commit: |
Superseded by updated review
6412b50 to
4a07bcb
Compare
|
🤖 Finished Review · ✅ Success · Started 12:02 AM UTC · Completed 12:19 AM UTC Commit: |
Signed-off-by: Greg Allen <gallen@redhat.com> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4a07bcb to
f3fe5b5
Compare
|
🤖 Finished Review · ✅ Success · Started 12:23 AM UTC · Completed 12:41 AM UTC Commit: |
There was a problem hiding this comment.
See the review comment for full details.
Note: The following inline comments could not be posted on the diff (GitHub returned 422) and are included here instead:
scripts/lib/github-review-ops.lib.sh:68: [medium] breaking-cli
forge_post_review() passes --forge github/gitlab to the fullsend CLI. This new required argument must be supported by the deployed fullsend binary. Depends on fullsend-ai/fullsend#6240.
Suggested fix: Ensure the deployed fullsend CLI supports --forge before exercising these scripts in production.
harness/review.yaml(file-level): Line 17 · [low] breaking-config
skills/issue-labels/github removed from top-level skills array, moved to forge.github.skills. Downstream harnesses using base: composition may need to adjust skill references.
harness/review.yaml:36: [low] architectural-coherence
pre_script and post_script removed from top-level config. Unlike triage (which supports non-forge invocations), the review agent always requires a forge context, making top-level scripts unnecessary.
scripts/lib/github-review-ops.lib.sh:59: [low] pattern-inconsistency
forge_parse_pr_url() sets global REPO while harness env blocks pass REPO_FULL_NAME. The old cross-validation was dropped. Architecturally intentional — PR_URL is now the single source of truth.
scripts/lib/gitlab-review-ops.lib.sh:10: [low] secret-exposure
_gitlab_api() passes REVIEW_TOKEN via --header on the curl command line, visible in /proc//cmdline. Mitigated by ephemeral runners and ::add-mask:: in the post-script.
Suggested fix: Consider passing token via netrc file, curl config, or stdin to avoid process listing visibility.
scripts/lib/gitlab-review-ops.lib.sh:41: [low] fail-open
forge_get_pr_state() returns UNKNOWN for unrecognized GitLab states. Post-review script handles UNKNOWN by skipping review (exit 0) with a warning — intentionally fail-open to avoid blocking reviews during API unavailability.
|
🤖 Finished Retro · ❌ Failure · Started 1:40 AM UTC · Completed 1:40 AM UTC Commit: |
Summary
Add multi-forge (GitHub + GitLab) support to the review agent, following the patterns established by the triage agent in PR #686.
Infrastructure
review-ops.lib.shdispatcher +github-review-ops.lib.sh(gh CLI) +gitlab-review-ops.lib.sh(curl/GitLab API) providingforge_*functions for URL validation, PR queries, review posting, label management, comments, and stale-head detectionpre-review.shandpost-review.shconverted to.src.shsource files that use forge ops, bundled viamake script-buildConfiguration
env/github/review.env,env/gitlab/review.env)policies/github/review.yaml,policies/gitlab/review.yaml)skills/pr-review/github/SKILL.md,skills/pr-review/gitlab/SKILL.md)harness/review.yamlwithforge.gitlabsection mirroring the triage patternEnv var naming
Following the triage pattern:
GITHUB_PR_URL→ forge-neutralPR_URL(set by harness per forge),FULLSEND_FORGEadded for dispatch.Upstream dependency
GitLab review posting depends on
fullsend post-review --forge gitlabsupport (fullsend-ai/fullsend#6240). Thegitlab-review-ops.lib.shpasses--forge gitlabtofullsend post-review— this will work once the upstream change lands.Testing
make check-bundleconfirms bundled scripts match sourceCloses #814
Post-script verification
agent/814-review-multi-forge)693ed83bbd5289e1ef13d6c7a3772f61efc43c86..HEAD)