Review your code changes with AI assistants.
npm install cr-asst



English | 中文
让 AI 来评审你的代码改动。
#### 显示帮助
``sh`
npx cr-asst -h
#### 代码评审
`sh`
npx cr-asst --head-ref branch-to-review --base-ref main --model gpt-4 --provider openai --api-key sk-xxx
支持的 AI 服务提供商:
- openai
- deepseek
- xai
- anthropic
- google
`javascript
import { codeReview } from 'cr-asst';
const { reviewReport } = await codeReview({
headRef: 'branch-to-review'
baseRef: 'main',
model: 'gpt-4',
provider: 'openai',
apiKey: 'sk-xxx',
// 其他选项...
});
`
更多选项请参考 CodeReviewOptions。
`markdown整体改动
1. 将代码审查功能中的 completion 相关逻辑提取到单独的文件 completion.ts 中,并通过 createCompletion 和 readCompletionStream 函数进行封装。dryRun
2. 移除了 选项,并简化了 codeReview 函数的实现。usageToString
3. 修改了 和 statsToString 函数的实现,使其与新的 CompletionUsage 和 CompletionStats 类型兼容。
4. 更新了测试文件中的相关代码,以反映这些改动。
1. 代码重构的目的是将 completion 相关的逻辑进行模块化,提升了代码的可读性和可维护性。通过将这部分逻辑提取到独立的文件中,codeReview 函数的职责更加单一,符合单一职责原则。dryRun
2. 移除了 选项,简化了 codeReview 函数的逻辑。这一改动减少了不必要的代码分支,使得函数的行为更加清晰。usageToString
3. 在 和 statsToString 函数中,添加了对 undefined 值的处理,提升了代码的健壮性。
1. src/code_review/completion.tscreateCompletion
1. 新增了 和 readCompletionStream 函数,用于处理 OpenAI 的 completion 流式请求。这些函数的封装使得代码逻辑更加清晰,便于复用和维护。CompletionUsage
2. 引入了 和 CompletionStats 类型,用于记录 completion 的使用情况和性能统计。这些类型的定义使得数据结构更加明确。
2. src/code_review/index.tsdryRun
1. 移除了 选项,简化了 codeReview 函数的逻辑。这一改动使得函数的行为更加直接,减少了不必要的复杂性。createCompletion
2. 使用 函数替代了原有的流式处理逻辑,使得代码更加简洁,且职责更加单一。
3. src/code_review/utils.tsusageToString
1. 修改了 和 statsToString 函数,使其与新的 CompletionUsage 和 CompletionStats 类型兼容。同时,添加了对 undefined 值的处理,提升了代码的健壮性。
4. src/types.tsCodeReviewUsage
1. 移除了 和 CodeReviewStats 类型,改为使用 CompletionUsage 和 CompletionStats 类型。这一改动减少了重复的类型定义,提升了代码的一致性。dryRun
2. 移除了 选项,简化了 CodeReviewOptions 类型的定义。`
cr-asst 会读取以下环境变量:
| 环境变量 | 描述 |
| ----------------------- | ----------------------------------------------------------------------------- |
| CR_PROVIDER | AI 服务提供商(可选值: "openai", "deepseek", "xai", "anthropic", "google")。 |CR_BASE_URL
| | AI 服务的 API 基础 URL。 |CR_API_KEY
| | AI 服务的 API 密钥。 |CR_MODEL
| | 要用于代码评审的 AI 模型。 |CR_HEAD_REF
| | 要进行比较的头引用。 |CR_BASE_REF
| | 要进行比较的基引用。 |CR_INCLUDE
| | 要包含的目录和文件,逗号分隔。 |CR_EXCLUDE
| | 要排除的目录和文件,逗号分隔。 |CR_OUTPUT_FILE
| | 要保存评审结果的文件。 |CR_PROMPT_FILE
| | 自定义提示词文件的路径,或内置的提示词(可选值: "en", "zh-cn")。 |CR_SYSTEM_PROMPT_FILE
| | 自定义系统提示词文件的路径。 |CR_DISABLE_TOOLS
| | 是否禁用工具调用。 |CR_MAX_STEPS
| | 最大 AI 模型调用次数。 |CR_TEMPERATURE
| | AI 模型的 temperature 参数。 |CR_TOP_P
| | AI 模型的 Top P 参数。 |CR_TOP_K
| | AI 模型的 Top K 参数。 |CR_PRINT
| | 是否在标准输出中显示评审结果。 |
另外,cr-asst CLI 还会使用 dotenv 从当前工作目录的 .env 文件加载环境变量。
你可以用 cr-asst-action 来将 cr-asst` 和 Github Actions 集成。
如果你在国内使用与 Github Actions 兼容的自托管 CI/CD 系统(如 Gitea Actions),为了避免网络问题,可以引用在 Gitee 上的这个镜像仓库。
MIT License © 2025-PRESENT mys1024