Repository navigation
feat(review): add forge-backed review thread fetching - #7907
Conversation
E2E tests are runningAuthorization passed for this commit. See the E2E Tests workflow for results. |
PR Summary by QodoPre-fetch human-resolved threads for review agent runs
AI Description
Diagram
High-Level Assessment
Files changed (4)
|
Code Review by Qodo
1.
|
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
17271c7 to
a07841a
Compare
Address Qodo review findings on PR fullsend-ai#7907: 1. human_response and resolution_context now only consider comments from the resolvedBy user, not any human. When one reviewer comments and another resolves the thread, the first reviewer's reply is no longer misattributed as the resolution rationale. 2. Add truncated flag to metadata when the 20-page cap is hit, so consumers know the resolved-threads list may be incomplete. Add test cases: different commenter produces silent_resolution, resolver's own comment produces explicit_dismissal, truncated flag is false under the page cap. Signed-off-by: csoceanu <csoceanu@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com>
|
Hello! Could you explore doing this within pre-script on the review agent? It should be able to detect the variable |
waynesun09
left a comment
There was a problem hiding this comment.
Three findings below: two HIGH and one MEDIUM.
Treat a non-string findings[].id as missing so the rest of the review still posts. Scan the id like other finding fields and drop the stamp if it looks like a secret. Point the regex comment at fullsend-ai#7907. Addresses: AISDLC-122 Signed-off-by: Benjamin Kapner <bkapner@redhat.com>
Address Qodo review findings on PR fullsend-ai#7907: 1. human_response and resolution_context now only consider comments from the resolvedBy user, not any human. When one reviewer comments and another resolves the thread, the first reviewer's reply is no longer misattributed as the resolution rationale. 2. Add truncated flag to metadata when the 20-page cap is hit, so consumers know the resolved-threads list may be incomplete. Add test cases: different commenter produces silent_resolution, resolver's own comment produces explicit_dismissal, truncated flag is false under the page cap. Signed-off-by: csoceanu <csoceanu@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com>
a01a4b9 to
6abd14d
Compare
|
@rh-hemartin - Thanks for the suggestion. The pre-script path now checks GITHUB_ACTIONS=true before fetching resolved threads, and invokes the fullsend CLI through the forge client to write human-resolved-threads.json. |
waynesun09
left a comment
There was a problem hiding this comment.
Four findings below: one HIGH and three MEDIUM.
Address Qodo review findings on PR fullsend-ai#7907: 1. human_response and resolution_context now only consider comments from the resolvedBy user, not any human. When one reviewer comments and another resolves the thread, the first reviewer's reply is no longer misattributed as the resolution rationale. 2. Add truncated flag to metadata when the 20-page cap is hit, so consumers know the resolved-threads list may be incomplete. Add test cases: different commenter produces silent_resolution, resolver's own comment produces explicit_dismissal, truncated flag is false under the page cap. Signed-off-by: csoceanu <csoceanu@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com>
68bd354 to
2430ff3
Compare
|
/fs-review |
|
🤖 Finished Review · ✅ Success · Started 7:28 AM UTC · Completed 7:46 AM UTC Commit: Runtime: pi · Model: openai/gpt-6.1-sol → gpt-6.1-sol · Effort: high · Cost: $3.13 |
Site previewPreview: https://3ab9884c-site.fullsend-ai.workers.dev Commit: |
|
Risk Assessment: elevated (3/5) DetailsElevated risk is driven by large change volume modifying two protected reusable workflows in an active codebase with high churn and author contention, balanced by additive-only context collection and graceful fallbacks. Previous runRisk Assessment: elevated (3/5) DetailsScore assigned due to large change size touching protected CI workflows and high historical churn on modified files, balanced by clean issue scope alignment, absent risk labels, and additive fail-safe context gathering. |
ReviewReason: missing-context This PR was NOT reviewed. Do not count this as an approval. Previous runReviewFindingsHigh
Medium
Low
Next steps:
Previous run (2)ReviewFindingsHigh
Medium
Low
Next steps:
|
|
I think the title and body PR can change as this no longer add the script, but just the command line. |
Expose verified actor roles for review threads. Keep GitLab resolution attribution and documentation consistent. Co-authored-by: Codex <codex@openai.com> Signed-off-by: csoceanu <csoceanu@redhat.com>
|
@ralphbean @rh-hemartin , all three requested changes are implemented and tested. The PR now contains the forge abstraction, CLI command, GitHub/GitLab review-thread integrations, verified actor-role metadata, and the related documentation. Agent-side consumption remains a separate follow-up. The PR title and description were updated to reflect the current scope. Could you please re-review the current head 6b28b0c? |
waynesun09
left a comment
There was a problem hiding this comment.
Two MEDIUM findings below. Both concern the output contract that the agents-side consumer will rely on. Neither blocks merge, and a follow-up issue is fine.
Summary
Add forge-backed fetching of pull-request and merge-request review threads for review-agent context.
This PR provides the fullsend-side abstraction, normalization, CLI command, and provider-specific integrations. Agent-side consumption of the generated context remains a separate follow-up in the agents repository.
Related issues
Changes
ListPullRequestReviewThreadsto the forge abstraction.fullsend fetch-review-threadsfor normalized review-thread output.old_pathwhen onlyold_lineis available.<!-- finding:f_... -->marker format. This change copies finding IDs into thread context but does not create or modify IDs.Follow-up integration
A separate change in the agents repository will consume the normalized review-thread output and apply verified human-resolution context to the review-findings ledger.
This PR intentionally does not implement
dismissed_by_humanor other ledger disposition behavior.Testing