SuperAPI AI 工具集

pr review

编程与开发

查看项目

更新于 10-17 03:40

技能介绍

用途

PR Review 技能用于对 oc 仓库(OpenShift CLI,基于 kubectl 提供 kubectl 命令及 OpenShift 特有功能)的 Pull Request 执行综合审查。当用户要评审一个 PR、请求审查代码变更,或调用 /pr-review 或类似命令时使用。

主要能力与审查流程

按以下顺序执行:

  1. 依赖验证:运行 go mod tidy -diff,确保 go.mod 与 go.sum 同模块源码一致。
  2. 构建验证:运行 make oc 确认代码可编译;若构建失败,报告错误并停止审查;成功后进入测试。文档说明使用 make oc 而非 make build,以避免为所有架构构建。
  3. 代码验证:运行 make verify,其中包含 verify-gofmt(Go 格式检查)、verify-golint(lint 检查)、verify-govet(Go vet 检查)、verify-cli-conventions(CLI 约定检查)、verify-generated-completions(生成代码验证),并报告错误与警告及需处理的模式。
  4. 测试执行:运行 make test,报告失败详情;关键测试失败需立即关注;即使部分测试失败也继续并记录。文档注明 github.com/openshift/oc/pkg/cli 中的 kubeconfig 错误测试失败可忽略。
  5. 代码评审与 Go 风格应用:通过 git diff 加载相对基线分支的变更(默认 main,可通过 [base-git-branch] 参数覆盖),理解变更范围后评审。包括:应用 Effective Go 原则、gofmt 格式、Go 命名约定(MixedCaps/mixedCaps,不用下划线)、错误处理(不忽略错误)、惯用 Go 模式;oc 特有考量:保持 kubectl 兼容性、OpenShift 特有命令遵循既有模式、CLI 输出格式一致、标志定义符合 kubectl 约定;破坏性变更检查:命令行 API 向后兼容、CLI 标志移除或重命名、命令行参数变化;代码质量:竞态条件、资源泄漏(未关闭文件、连接、goroutine 泄漏),并列出 goroutine 泄漏模式(无 context 取消处理、缺少 ctx.Done() 的 select、无超时的无界 channel 操作、缺少生命周期管理的 go func()),建议用 errgroup 或 sync.WaitGroup 协调 goroutine,验证 context 传播与日志级别;文档:导出函数/类型应有文档注释,CLI 命令帮助文本清晰完整,复杂逻辑有解释性注释。
  6. 应用修复:安全时自动修复 lint 问题,应用 gofmt 与 goimports 格式,建议或实现惯用 Go 改进,记录需人工审查的问题。
  7. 总结:输出结构化总结,包含构建状态、测试结果(通过/失败数)、lint 状态、代码质量观察、已应用变更、需关注问题。

关键检查

由于 oc 构建于 kubectl 之上:验证上游 kubectl 兼容性、正确使用 kubectl 库、OpenShift 特有功能清晰分离、CLI 行为符合 kubectl 约定。

适用场景

适用于 oc 仓库 PR 的自动化审查与 Go 代码风格改进,尤其适合需要同时验证构建、测试、lint 与 CLI 兼容性的场景。

限制

评审范围限定于 oc 仓库及其 Go 代码;部分测试失败(如 pkg/cli 的 kubeconfig 错误)已知可忽略;需人工审查的问题仅在总结中记录,不自动处理。具体收费、平台支持等信息资料未提供。