用途
该技能用于处理某个 Pull Request 上的代码质量问题:检出该 PR(包括来自 fork 的 PR),自动修复所有 linting 和 TypeScript 错误,然后把修复后的改动推送回 PR 分支。当用户要求修复某个 PR 上的 lint、类型或 TS 错误时使用。
主要能力
- 支持检出普通 PR 和 fork PR。
- 安装依赖并先编译仓库,确保 linter 引用的 TS 声明已生成。
- 运行 lint 修复 linting 错误。
- 运行 TypeScript 检查器,暴露剩余类型错误,并逐项手动修复。
- 仅提交本次修改的文件,避免误提交无关文件。
- 将修复推送到 PR 分支。
使用方式
第 1 步 — 获取 PR 编号
如果用户已提供 PR 编号,直接使用;否则向用户询问。
第 2 步 — 检出 PR
使用 gh pr checkout,这样对 fork 和非 fork PR 都有效:
gh pr checkout <PR_NUMBER>
这会自动设置正确的远程跟踪并切换到 PR 分支,即使 PR 来自 fork 也能处理。
第 3 步 — 安装依赖
yarn
第 4 步 — 编译仓库
先编译可确保 linter 引用的 TS 声明存在:
yarn nx run-many -t compile
第 5 步 — 修复 linting 错误
yarn lint
第 6 步 — 修复 TypeScript 错误
运行 TypeScript 检查器以暴露剩余类型错误:
yarn nx run-many -t check
仔细阅读输出。通过编辑相关文件手动修复每个类型错误。常见修复包括:
- 添加或修正类型注解
- 修正错误的泛型
- 解决违反严格模式的赋值
- 添加缺失的导入或重新导出
每批编辑后重新运行 yarn nx run-many -t check,确认错误已解决。
第 7 步 — 提交修复
仅暂存你修改过的文件:
git add <files-you-modified>
git commit -m "Maintenance: Fix linting and TypeScript errors"
不要使用 git add -A,避免意外暂存无关文件。
第 8 步 — 推送修复
对于 fork PR,gh pr checkout 已设置正确的上游跟踪。直接推送:
git push
适用场景
- 需要清理某个 PR 上的 lint 报错。
- 需要修复某个 PR 上的 TypeScript 类型错误。
- 需要在不重构业务逻辑的前提下,让 PR 通过 lint 与类型检查。
限制与注意事项
- 只修复明确的 linting 或 TypeScript 问题,不要重构逻辑。
- 如果某个 TypeScript 错误需要非平凡的代码改动,应先向用户说明并询问后再继续。
- 如果因 fork 权限导致
gh pr checkout失败,应告知用户——他们可能需要授予对该 fork 的写权限,或由维护者直接推送。 - 推送后,与用户确认 CI 是否通过。