关于 mergewarden
MergeWarden 检查公开 GitHub 仓库的拉取请求队列,并用确定性规则标出审查前需要关注的上下文与风险。它不使用 AI,也不会给请求打分、添加标签或评论。
主要功能
- 01发现缺少关联问题的请求
- 02识别描述过短或未用模板
- 03标记规模过大的变更
- 04扫描工作流与 Agent 指令风险
- 05支持 CLI 与 GitHub Action
适用场景
- 01审查前筛选需补充上下文的请求
- 02检查工作流权限和触发器变更
- 03审查 Agent 指令文件的修改
- 04在 CI 中执行拉取请求风险检查
MCP 相关
README 提及 MCP 服务,但没有说明其功能或配置方式。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| task | string | 否 | 用一行描述用户提出的要求。逐字记录,不作解读。 |
| allowedPaths | array | 是 | 变更范围限定到的 Glob 路径,例如 ['src/auth/**', 'test/auth/**']。根据用户实际提出的要求填写。 |
| blockedPaths | array | 否 | 明确要求不得触碰的 Glob 路径。 |
| changedPaths | array | 是 | 实际更改的相对于仓库的路径,取自 `git diff --name-only`。 |
详细介绍
MergeWarden
查看哪些拉取请求需要补充上下文,才能开始代码审查。
粘贴一个公开的 GitHub 仓库。MergeWarden 会标出缺失的问题链接、描述过于简略、 未使用模板以及改动过大的拉取请求。无需登录。无需 AI。
这是一个实验性工具。尚未证明它能节省审查时间,也未证明维护者会反复使用。 产品扩展目前暂停;请参阅路线图和证据限制。
审查公开仓库
入门指南介绍了队列状态、详细的 PR 结果以及 Action 安装方式。
粘贴 owner/repository 或完整的 GitHub 仓库 URL。浏览器会读取最近 30 个未关闭的拉取请求摘要,排除可信仓库角色、基础仓库分支和已知的维护自动化,然后最多加载 10 个外部拉取请求的详细信息。
队列行按确定性事实排序,这些都是维护者在阅读代码前通常会检查的内容。
| 事实 | 含义 |
|---|---|
| 未关联问题 | 正文中没有问题编号、问题 URL 或关闭关键词 |
| 描述过于简略 | 正文中的文字少于 80 个字符 |
| 未使用模板 | 仓库有可见的 PR 模板结构,但正文没有保留该结构 |
| 改动过大 | 改动超过 50 个文件或 1,500 行 |
首次贡献仅作为背景信息展示,不用于评分。MergeWarden 不会将贡献称为垃圾、低质量或 AI 生成内容。它绝不会关闭、添加标签、评分或评论拉取请求。
队列使用公开元数据和基础分支的拉取请求模板。它不会获取已更改文件的内容、执行代码、使用后端或存储目标仓库。
如需更大的已认证队列,请使用 CLI。
GH_TOKEN=... npx --yes [email protected] triage owner/repository
运行详细的 PR 风险扫描
同一页面也接受完整的拉取请求 URL 或 owner/repository#number。
队列中的每一行都会链接到此详细扫描。
详细扫描会检查四个安全边界。
| 检查项 | 需要审查的内容 |
|---|---|
| 工作流权限 | 工作流获得写入权限、使用危险触发器,或依赖会变动的 Action 引用 |
| Agent 指令 | PR 修改了 AGENTS.md、CLAUDE.md、.mcp.json 或其他会引导编码 Agent 的文件 |
| 不可信提示词输入 | 拉取请求文本进入工作流中的 Agent 提示词 |
| 安装脚本 | 软件包清单新增或修改了安装时生命周期代码 |
配置参考列出了所有确定性规则及其严重性。
无需克隆目标仓库,即可在终端运行相同的扫描。
npx --yes [email protected] scan https://github.com/owner/repository/pull/123
添加 Action
Action 会自动执行详细的 PR 风险检查,但不会调整审核队列顺序。
创建 .github/workflows/mergewarden.yml。
name: MergeWarden PR Risk Check
on:
pull_request:
permissions:
contents: read
pull-requests: write
jobs:
mergewarden:
runs-on: ubuntu-latest
steps:
- uses: sjh9714/[email protected]
with:
comment: auto
当没有需要处理的问题时,comment: auto 不会发送评论;发现需要关注的问题时,则会更新一条评论。现有 Action 默认值保持不变。
如需不可变安装,请固定到发布提交。
MergeWarden 不会发布或推荐可变的 v0 标签。
- uses: sjh9714/mergewarden@d63b4fc8c09c540375f039ecd30d2fce56abf31f
安全边界
- Web 应用直接与公开的 GitHub API 通信,且不包含遥测功能。
- 队列会读取每个 PR 的确切基础提交中的元数据和模板。详细扫描只读取确定性规则所需的文件。
- 不会检出代码。MergeWarden 不会在 Web 应用或 Action 中执行拉取请求代码。
- 策略取自确切的基础提交,而非不可信的 PR 头部。
- 分析过程不会调用大模型。
- 证据不完整时会明确报告为不完整,绝不会将其标记为通过。
- 浏览器示例限制明确:达到 30 条摘要,或外部 PR 超出 10 条详情的限制,都不会生成完整队列。
证据与高级接口
分诊是否有帮助?记录了现有的队列测量结果及其主要局限。该研究测量的是各行是否具有区分度,而非维护者是否节省了时间。在维护者确认其价值之前,当前 Web 队列仍属于产品实验。
文档索引包含配置、Action 和 CLI 参考、编码工具集成、可复现实验以及 MCP 服务。
贡献
pnpm install --frozen-lockfile
pnpm build
pnpm test
pnpm typecheck
pnpm lint
pnpm format:check
每条新规则都需要一个通过测试的 fixture、一个失败的 fixture,以及一个报告快照。请参阅贡献指南。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。