feat(#807): make code agent multi-forge (GitHub + GitLab) - #813
Conversation
|
🤖 Finished Review · ✅ Success · Started 9:21 PM UTC · Completed 9:40 PM UTC Commit: |
ReviewFindingsMedium
Low
Previous runReviewFindingsMedium
Low
Previous run (2)ReviewFindingsHigh
Medium
Low
Next steps:
Previous run (3)ReviewFindingsMedium
Low
Previous run (4)ReviewFindingsMedium
Low
Previous run (5)ReviewFindingsMedium
Low
Previous run (6)ReviewFindingsMedium
Low
Previous run (7)ReviewFindingsMedium
Low
Previous run (8)ReviewFindingsMedium
Low
Previous run (9)ReviewFindingsMedium
Low
|
b6f6f6a to
55b5185
Compare
|
🤖 Finished Review · ✅ Success · Started 1:30 AM UTC · Completed 1:49 AM UTC Commit: |
Superseded by updated review
55b5185 to
569e30f
Compare
|
🤖 Review · Commit: |
569e30f to
3171e2f
Compare
|
🤖 Finished Review · ✅ Success · Started 2:16 AM UTC · Completed 2:36 AM UTC Commit: |
3171e2f to
61fca6f
Compare
|
🤖 Finished Review · ✅ Success · Started 2:42 AM UTC · Completed 3:04 AM UTC Commit: |
61fca6f to
65cb980
Compare
|
🤖 Finished Review · ✅ Success · Started 3:09 AM UTC · Completed 3:28 AM UTC Commit: |
65cb980 to
dd3424a
Compare
|
🤖 Review · Commit: |
dd3424a to
37d2e76
Compare
|
🤖 Finished Review · ✅ Success · Started 3:36 AM UTC · Completed 3:51 AM UTC Commit: |
37d2e76 to
8381f0a
Compare
d7e7cbb to
35c3641
Compare
|
🤖 Finished Review · ✅ Success · Started 3:32 PM UTC · Completed 3:50 PM UTC Commit: |
35c3641 to
8cbc875
Compare
|
🤖 Finished Review · ✅ Success · Started 1:58 AM UTC · Completed 2:18 AM UTC Commit: |
8cbc875 to
0b12141
Compare
|
🤖 Finished Review · ✅ Success · Started 6:30 PM UTC · Completed 7:12 PM UTC Commit: |
0b12141 to
7ab477f
Compare
|
🤖 Finished Review · ✅ Success · Started 8:17 PM UTC · Completed 8:38 PM UTC Commit: |
Superseded by updated review
Signed-off-by: Greg Allen <gallen@redhat.com> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Greg Allen <gallen@redhat.com>
7ab477f to
f2cfc15
Compare
|
🤖 Finished Review · ✅ Success · Started 9:59 PM UTC · Completed 10:19 PM UTC Commit: |
|
🤖 Finished Retro · ✅ Success · Started 10:32 PM UTC · Completed 10:54 PM UTC Commit: |
Retro: PR #813 — make code agent multi-forge (GitHub + GitLab)Timeline: Issue #807 was created by ggallen on Aug 14. Triage succeeded in 4 minutes. The first code agent run (31833006537) failed after 22 minutes — the agent itself exited successfully, but the post-code shellcheck pre-commit hook caught SC2153 ( What went well:
Evidence supporting existing open issues:
Autonomy assessment: The review agent added clear value on this PR by catching the HIGH-severity missing env vars. The human added value by (1) understanding intentional design choices (hardcoded host allowlist documented in docs/code.md), (2) catching the |
Summary
Make the code agent support both GitHub and GitLab by introducing a forge-dispatch architecture, following the patterns established by the triage agent in PR #686.
Changes
code-ops.lib.sh(forge dispatcher),github-code-ops.lib.sh(~20 functions usingghCLI), andgitlab-code-ops.lib.sh(~20 functions usingcurlagainst GitLab REST API)pre-code.src.sh): Replaced GitHub-specific URL validation, existing-PR checks, and label/comment operations with forge-neutralforge_*function callspost-code.src.sh): Replaced all 25+ghCLI calls withforge_*functions for push auth, PR/MR creation, auto-merge, assignee resolution, labels, comments, and CI URL generationcode.yaml): Addedforge.gitlabsection with policy, skills, host_files, and env vars matching the triage harness patternpolicies/github/code.yaml; createdpolicies/gitlab/code.yamlwithcurlbinary allowlist and GitLab API endpointsenv/code.env) + forge-specific (env/github/code.env,env/gitlab/code.env)Design decisions
PR_NUMBER_FROM_URLnaming convention preserved to avoid shellcheck SC2153 (per repo convention)forge_list_prs_for_branch()propagates errors to maintain fail-closed security behaviorpost-failure-report.lib.shandpr-assignee.lib.shleft untouched for fix agent compatibility; GitLab ops remap response shapes to match GitHub expected formatmerge_when_pipeline_succeeds(no merge queue equivalent)oauth2:TOKENformat (notx-access-token)Testing
post-code-test.shtests pass (including security integration tests)pre-code-test.shtests pass (updated test env to includeFULLSEND_FORGE=github)shellcheck -x -e SC1091,SC2001,SC2016passes on all source and bundled scriptsmake check-bundleconfirms bundled scripts match sourcehack/lint-agent-docspassesCloses #807
Post-script verification
agent/807-multi-forge-code)693ed83bbd5289e1ef13d6c7a3772f61efc43c86..HEAD)