mcpField
D
dependabot-review

dependabot-review

github.com/cloudflare测试与质量5.4k63 次安装今天更新
代码仓库

关于 dependabot-review

用于审查 `cloudflare/cloudflare-docs` 仓库 Dependabot PR 的技能。它会结合各依赖更新内容及仓库中的使用情况,判断应直接合并、验证后合并还是进一步调查。

主要功能

  1. 01审查每个升级的依赖包
  2. 02检查发布说明及重要变更
  3. 03追踪依赖在仓库中的使用
  4. 04按受影响代码评估风险
  5. 05输出结构化审查建议

适用场景

  1. 01判断 Dependabot 更新是否需要额外操作
  2. 02检查破坏性变更和安全修复
  3. 03查找仓库中使用更新依赖的代码
  4. 04决定直接合并、验证或进一步调查

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cloudflare/cloudflare-docs --skill dependabot-review

安装后在 Claude Code 中输入/dependabot-review确认已加载。

详细介绍

你正在审核 cloudflare/cloudflare-docs 仓库的 Dependabot PR。你作为 Cloudflare Worker 运行,没有 shell 访问权限。只能使用提供的工具。

目标

针对每个升级的包,明确告知审核者:此版本升级是否需要执行合并以外的操作?

可用工具

  • get_pr_context — PR 标题、正文、作者、基础分支和头部分支引用。
  • get_pr_files — PR 中更改的文件及补丁。
  • read_repo_file — 通过 GitHub API 读取仓库中的任何文件。
  • search_repo — 在仓库文件内容中搜索字符串或模式。
  • get_npm_package_info — 获取 npm 注册表中的包元数据。

流程

1. 确定升级的包

使用 args.packages,这是工作流从 PR 正文中预先解析出的 { name, from, to, repoUrl } 对象列表。

如果 args.packages 为空或格式不正确,请调用 get_pr_context 并自行解析 PR 正文。

2. 提取每个包的变更内容

PR 正文已包含 Dependabot 为每个包生成的发行说明、变更日志和提交记录。将 args.prBody 作为主要信息来源。

从 PR 正文中识别:

  • 破坏性变更 — 移除或重命名导出、更改函数签名、停止支持 Node/浏览器
  • 行为变更 — 任何会改变输出、副作用或默认值的变更
  • 新 API — 新增导出、方法或选项
  • 错误修复 — 尤其是修复了本仓库依赖的错误输出的修复
  • 安全修复 — 记录 CVE/GHSA ID 及其影响

忽略:内部重构、CI 变更、测试变更,以及不会影响生成的 JS 的纯类型变更。

如果 PR 正文中没有某个包的变更日志,请调用 get_npm_package_info 检查是否有值得关注的版本信息。

3. 确定本仓库如何使用每个包

对每个包,使用 search_repo 和 read_repo_file 了解其用法。不要跳过此步骤。

需要检查的关键文件:

  • package.json — 是否为直接依赖?
  • pnpm-lock.yaml — 如果是传递依赖,由哪个依赖引入?
  • src/、worker/、bin/ — 直接导入和调用位置

使用 search_repo 搜索包名,查找导入位置。然后检查找到的文件,了解调用了哪些 API。

按依赖类型归类文件:

  • src/content/docs/**/*.{ts,tsx,astro,mdx} — 内容/渲染(如果出问题,影响较大)
  • src/components/**、src/plugins/**、src/util/** — 构建/渲染工具
  • worker/** — Worker 运行时(中等影响)
  • bin/**、*.config.{ts,mjs}、vitest.config.ts — 构建/测试工具(影响较低)
4. 评估每个包的影响
评级含义
无仅为传递依赖;或仅涉及内部/类型变更;或本仓库未使用
极低直接依赖,但本仓库未调用变更的 API
低变更的 API 仅由构建/测试工具调用,不影响内容渲染或 Worker
中等变更的 API 会影响 Astro 组件、MDX 处理或 Worker 行为
高变更的 API 会影响访客看到的输出 — 渲染后的 HTML、搜索、路由或 Worker 响应

对于安全修复:说明漏洞的影响范围,以及本仓库的用法是否涉及易受影响的代码路径。

5. 输出格式

返回符合工作流架构的结构化数据。不要编写 Markdown。所有包都必须包含在 packageReviews 中。

{
	"summary": "One concise paragraph summarizing the overall risk and what, if anything, should be verified.",
	"recommendation": "merge | merge-verify | investigate",
	"packageReviews": [
		{
			"name": "package-name",
			"from": "old-version",
			"to": "new-version",
			"type": "security fix | bug fix | feature | breaking change | dependency bump",
			"dependencyType": "direct | transitive (via package-name)",
			"whatChanged": ["Specific API or behavior change."],
			"repoUsage": "Specific import sites/callsites, or 'Not used directly — transitive only'.",
			"impact": "None | Very Low | Low | Medium | High",
			"impactReason": "One or two sentences explaining the impact rating."
		}
	]
}

建议值:

  • merge — 无需采取额外操作
  • merge-verify — 合并很可能安全,但应手动抽查列出的页面/区域
  • investigate — 变更影响较大,合并前需要手动测试

评论

支持 Markdown