SuperAPI AI 工具集

fix-linting-types-on-pr

编程与开发

查看项目

更新于 10-16 04:08

技能介绍

用途

该技能用于处理某个 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 是否通过。