Feature: allow review comments on any file line, not just lines within the diff
還沒有人認領這個 Issue。
評估
研究方向
先閱讀 add_comment_to_pending_review 和 pull_request_review_write 入口點,然後使用 diff 外部的評論重現 issue 中描述的待處理 review 工作流程。追蹤 submit_pending 如何處理這些評論,以及 GraphQL addPullRequestReviewThread mutation 如何接受 path 和 line。完成標準是:錯誤被呈現,或任意檔案行的評論能夠以 inline 形式保留,同時現有的檔案層級 workaround 仍然可用。
由索引模型根據 Issue 內容生成。
描述
Describe the feature or problem you'd like to solve
When using add_comment_to_pending_review to leave a code review, the comment is silently dropped at submit time if the targeted line is outside the PR's diff hunks (e.g., unchanged context further up the file). The tool returns success on add_comment_to_pending_review, but pull_request_review_write { method: "submit_pending" } accepts the review without that comment ever appearing on the PR.
This means agents reviewing PRs cannot leave inline comments on file context that is relevant to a change but happens to sit outside the modified lines — for example, stale JSDoc on an exported interface that should be updated to reflect a new feature added several lines below.
In the GitHub web UI, a human reviewer can expand context and click any line in any file to add a comment. Agents using this MCP server cannot match that capability.
Proposed solution
Two parts:
-
Surface the failure. When a comment is dropped because the targeted line is outside the diff, return an error from
add_comment_to_pending_review(or surface it on submit) so the agent can fall back tosubjectType: "FILE"or a top-level comment. Today the tool reports success and the rejection happens silently inside GitHub's submit step. -
Support arbitrary file lines. Use the GraphQL
addPullRequestReviewThreadmutation (which acceptspath+linewithout requiring a diff position) when the requested line is outside the unified diff. This would give agent reviewers the same expressive power as human reviewers in the UI.
Example prompts or workflows (for tools/toolsets only)
- "Review this PR — flag any stale JSDoc/comments on exported APIs whose contract changed." Today the agent can correctly identify stale documentation but cannot leave the inline comment if the JSDoc itself isn't in the diff.
- "Suggest renames for the helper functions used by the new code." If the helpers themselves are unchanged, the agent can't comment on them inline.
- "Note any security-relevant invariants the changes rely on." Often these are documented elsewhere in the file, outside the diff.
Additional context
Repro:
- Open any PR with a small, localized diff.
- Use
pull_request_review_write { method: "create" }to start a pending review. - Use
add_comment_to_pending_reviewtargeting an unchanged line ≥30 lines from the diff. Tool returns success. - Use
pull_request_review_write { method: "submit_pending" }. Review submits without the comment. - Verify on the PR — the comment is missing.
Workaround today: use subjectType: "FILE" for file-level comments, or post a top-level issue comment with a permalink. Both lose the inline-thread experience.
Related but distinct: #1748 (fork-PR auth scope) — same symptom (comment doesn't post) but a different root cause.
- 主要語言
- Go
- 星號
- 33.1k
- 分支
- 5k
- 平均合併
- 2 天 1 小時
- 30 天內合併 PR
- 25
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
github/github-mcp-server 的其他 Issue
-
bug
難度 2/5 1-3 小時 新手友好度 84/100
github/github-mcp-server#3235 ·
-
enhancement
難度 1/5 1 小時以內 新手友好度 88/100
github/github-mcp-server#3042 · 2 則留言 ·
-
bug
難度 2/5 1-3 小時 新手友好度 72/100
github/github-mcp-server#3032 · 1 個 reaction ·
-
難度 2/5 1-3 小時 新手友好度 74/100
github/github-mcp-server#2803 · 1 則留言 ·
-
難度 2/5 1-3 小時 新手友好度 76/100
github/github-mcp-server#2740 ·
查看 github/github-mcp-server 的全部 Issue
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 65/100
-
bug group: validation priority: low
難度 2/5 1-3 小時 新手友好度 75/100
codecheckers/chekhov#51 ·
-
難度 2/5 1-3 小時 新手友好度 70/100
-
難度 2/5 1-3 小時 新手友好度 75/100
-
難度 2/5 1-3 小時 新手友好度 75/100