ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

agents review-agent-governance 怎么配置:AI 代理执行 gh pr review 前强制人工审批

agents review-agent-governance 怎么配置:AI 代理执行 gh pr review 前强制人工审批 agents review-agent-governance 怎么配置AI 代理执行 gh pr review 前强制人工审批【免费下载链接】agentsMulti-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity项目地址: https://gitcode.com/GitHub_Trending/agents24/agents让 Claude Code 代理替你发 PR review、评论、合并或改 CI 配置时一次误判就可能以你的真实账号留下错误的 review、触发不该发生的 merge。agents仓库中的review-agent-governance插件做的事情是在代理执行gh pr review、gh pr comment、gh pr merge等评审面动作之前必须先有一个明确的人工审批信号否则工具调用被阻断无论放行还是拒绝每次尝试都会生成一张 Ed25519 签名的回执receipt离线可验证。本文面向在 Claude Code 项目中首次启用该门禁的开发者完成的目标是装好插件、把默认 Cedar 策略放进项目让一次gh pr review在无人批准时被拒、在批准后被放行并能核验整条回执链。门禁如何生效两个 hook 与默认策略插件通过两个 hook 包住 Claude Code 的每次工具调用配置见 hooks/hooks.jsonPreToolUse先检查审批标志文件是否存在默认./.review-approved可用环境变量REVIEW_APPROVAL_FLAG改路径存在则直接exit 0放行不存在则执行npx protect-mcp0.7.4 evaluate --policy ./review-governance.cedar --tool $TOOL_NAME --input $TOOL_INPUT --fail-on-missing-policy false策略路径可用REVIEW_GOVERNANCE_POLICY覆盖。Cedar deny 时工具调用以退出码 2 结束Claude Code 阻断它。PostToolUse对每次尝试批准、拒绝、跳过都算签一张 Ed25519 回执写入./review-receipts/可用REVIEW_GOVERNANCE_RECEIPTS覆盖签名密钥默认取./review-governance.keyREVIEW_GOVERNANCE_KEY可覆盖。默认策略 policies/review-agent-governance.cedar 在未批准时无条件禁止forbidgh pr review、gh pr comment、gh pr close、gh pr merge、gh pr editgh issue comment、gh issue close、gh issue editgh release create、gh release editgh api repos兜住任意 GitHub REST 调用GitLab / Bitbucket 等价命令glab mr comment等向main、master、release、production的git push写入.github/workflows/、.github/CODEOWNERS、.gitlab-ci.yml、.circleci/config.yml、buildkite/pipeline.yml对api.github.com、hooks.slack.com、discord.com等的 WebFetch POST策略末尾是permit (principal, action, resource);即清单之外的动作全部放行——插件只针对评审面通用工具调用策略需搭配 protect-mcp 使用。一次性安装与项目配置在项目目录中依次执行1. 安装插件在 Claude Code 中/plugin install review-agent-governanceSKILL.md 给出的等价命令行形式是claude plugin install wshobson/agents/review-agent-governance2. 把默认策略拷入项目根目录。SKILL.md 给出的路径cp .claude/plugins/review-agent-governance/policies/review-agent-governance.cedar \ ./review-governance.cedar注意 README 中同一命令的源路径写作.claude/plugins/...下的policies/review-agent-governance.cedar两处文档源路径一致安装后按本机实际安装位置取文件即可。拷入的./review-governance.cedar可以按项目需要编辑策略编写见 agents/review-policy-author.md。3. 创建回执目录与 gitignore 条目mkdir -p ./review-receipts echo ./review-receipts/ .gitignore echo ./review-governance.key .gitignore echo ./.review-approved .gitignore签名密钥会在第一次调用protect-mcp sign时自动创建无需手工生成。SKILL.md 建议把第一张回执里的公钥提交进仓库供审计方日后离线验证。验证门禁已生效让一次 gh pr review 被拒装完后先确认拦截路径工作正常。让代理执行一次评审动作例如$ agent: gh pr review 42 --comment --body LGTM按 README 给出的示例流程文档示例此时应发生→ PreToolUse hook runs → No ./.review-approved file, policy evaluates → Cedar: forbid on context.command_pattern gh pr review → Exit 2: Claude Code blocks the tool call → PostToolUse runs, signs a receipt with decisiondeny随后在 Claude Code 中运行/list-pending可加--last 5限定条数默认最近 10 条。它遍历./review-receipts/只读不改打印最近的decision: deny条目。文档示例输出Recent denials (most recent first, top 10): 2026-04-17T14:23:01Z Bash gh pr review 42 --approve --body LGTM policyreview-agent-governance receipt2026-04-17T14-23-01Z.json以上为文档示例时间戳与文件名以你本机生成的回执为准。如果你还没有任何被拒动作它会显示No denied actions found. The review-governance policy is not currently blocking anything.——这表示尚未发生过命中策略的尝试。开一次人工审批窗口放行 gh pr review确认门禁生效后走一遍完整的拒绝 → 批准 → 放行循环。主路径标志文件。在批准的动作执行前创建标志文件touch ./.review-approved让代理重新执行gh pr review ...。按 README 的文档示例→ PreToolUse hook runs → ./.review-approved present, exit 0 → Tool call proceeds → PostToolUse signs a receipt (decisionallow, reasonhuman_approved)关键动作完成后立即关闭窗口——rm ./.review-approved会删除项目根目录下这一个标志文件。窗口不关就一直开着代理会在此期间继续免审批地执行评审面动作文档明确要求批准动作一完成就删掉它。可选替代斜杠命令。在 Claude Code 内执行/approve-review Approving LGTM on PR 42 after visual inspection不带理由也可以/approve-review仍会开窗。它会创建./.review-approved并把理由写入文件同时在./review-receipts/approvals/下追加一条带时间戳的 JSON 记录然后打印确认信息并提醒你用rm ./.review-approved关窗commands/approve-review.md。可选强制全量策略求值。如果想让每次工具调用都过 Cedar、审批窗口彻底失效适合 CI 或锁定审计可设置REVIEW_APPROVAL_FLAG指向一个不存在的路径。README 写作REVIEW_APPROVAL_FLAG./never-approveSKILL.md 写作export REVIEW_APPROVAL_FLAG./.never-approve两者写法不一致取值以指向不存在路径为准任何命中 forbid 规则的工具调用都会被拒审批窗口不起作用。审批窗口的边界三个容易误判的点全部来自源文档./review-receipts/approvals/*.json是纯 JSON 日志、不是签名回执不经过protect-mcp signveritasacta/verify不覆盖它们它们属于操作员信任事后可以无痕篡改。真正有签名、防篡改的是 PostToolUse 产生的./review-receipts/*.json工具调用回执那才是权威审计轨迹。审批标志存在时 PreToolUse 直接短路放行不做 Cedar 求值所以已批准动作的回执是decision: allow、reason: human_approved且没有policy_digest字段被拒的动作和走 Cedar 的非评审动作才有policy_digest。审计时按此预期解读。标志文件是会话级的上一次会话结束时删掉了文件新会话从干净状态开始。验证回执链并收尾离线验证整条回执链npx veritasacta/verify ./review-receipts/*.json退出码含义SKILL.md0表示每张回执真实、链完整1表示有回执被篡改2表示回执格式错误。任何人拿到公钥都能离线执行该验证不依赖网络、供应商或账号。如果想直接确认策略源码本身没问题插件自带测试脚本 test/run-tests.sh./run-tests.sh # exit 0 pass · 1 failPart A 只依赖grep断言策略不含 Cedar 会静默丢弃的context.attr in [...]forbid 写法Part B 在本机装有cedarCLI 时才运行用cedar validate对照 review-agent-governance.cedarschema 校验策略。该测试直接校验策略源码不依赖 protect-mcp 运行时。完成到这里门禁链路是完整的未批准 → deny 回执 工具调用被阻断批准 → allow 回执 动作执行npx veritasacta/verify随时可复核。该插件只覆盖评审面动作其他工具调用不受它约束如需对所有 Claude Code 工具调用做通用策略按 SKILL.md 中的 hooks 组合示例与 protect-mcp 并行运行即可。【免费下载链接】agentsMulti-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity项目地址: https://gitcode.com/GitHub_Trending/agents24/agents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表