list_pull_requests / search_pull_requests: expose review decision + combined CI status as optional fields

未关闭
#3,287 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
68/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
活跃
技术栈
github, go
领域
api, tooling

调研方向

从 list_pull_requests 和 search_pull_requests 入口开始,然后将它们的字段允许列表与 pull_request_read 操作 get_reviews 和 get_status 进行比较。当两个列表工具都可以选择性地返回 review_decision 和 status_check_rollup,从而无需针对每个 PR 进行后续调用即可提供所请求的 PR 摘要时,即视为完成。

由索引模型根据 Issue 内容生成。

描述

enhancement request ai review
Describe the feature or problem you’d like to solve

list_pull_requests and search_pull_requests return rich per-PR metadata (state, draft, mergeable_state, timestamps, etc.) but neither exposes the PR's review decision (approved / changes requested / review required) or its combined CI/check status. Getting either today requires a separate pull_request_read call per PR (method: get_reviews and/or get_status), which doesn't scale: summarizing N open PRs costs one bulk listing call plus up to 2×N follow-up calls.

Proposed solution

Add optional fields to list_pull_requests's (and search_pull_requests's) fields allow-list:

  • review_decision: the PR's overall review decision (APPROVED, CHANGES_REQUESTED, REVIEW_REQUIRED, or null) — equivalent to GitHub's GraphQL reviewDecision field, already used by gh pr list --json reviewDecision.
  • status_check_rollup (or similar): the combined CI/check status for the PR's head commit — equivalent to GitHub's GraphQL statusCheckRollup field, already used by gh pr list --json statusCheckRollup.

With these available, a single list_pull_requests call per repository would be enough to classify PRs into buckets like "needs review", "blocked/CI failing", "approved and green", etc. — removing the need for any per-PR follow-up call in the common case.

Example prompts or workflows (for tools/toolsets only)
  • "Give me a one-table summary of every open PR across these repos: link, title, review status, CI status" — currently requires 1 + 2N calls; with these fields, a single list_pull_requests call per repo would suffice.
  • Daily/weekly PR digest bots that bucket PRs into categories (needs review / blocked / ready to merge / stale) across many repositories.
  • Dashboards needing an at-a-glance "is this PR green and approved?" signal for a large PR backlog without pulling full review/check-run detail for each one.
Additional context

This mirrors what GitHub's own CLI (gh pr list --json reviewDecision,statusCheckRollup,...) already exposes in one compact call per repo. An automation agent using only the current MCP tools had to make one list_pull_requests call plus 2 pull_request_read calls per PR just to get this same information, and the resulting accumulated context (~215KB across ~80 calls for 36 PRs) was enough to make the agent's next reasoning step time out. Exposing these two fields directly on the listing/search tools would remove the need for that fan-out entirely for this class of use case.

主要语言
Go
星标
33.1k
派生
5k
平均合并
2 天 15 小时
30 天内合并 PR
27

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

github/github-mcp-server 的其他 Issue

查看 github/github-mcp-server 的全部 Issue

相似的 Issue

更多 Go Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。