@coderabbitai/config

中文文档
1.2.0发布于 2026/11/07Apache-2.0TypeScriptES Module近 30 天下载 21.9万

程序(TypeScript)为代码Rabbit配置编写 SDK .

中文使用文档
文档目录8 节
  1. 安装
  2. 使用量
  3. 构造配置
  4. 如何运作
  5. API 密码
  6. 内部 V3 预览
  7. 建造SDK
  8. 许可证

@ coderabbitai/ 配置

类型、程序作者 代码 配置 - 写入您的 .coderabbit.config.ts 以类型脚本代替 .coderabbit.yaml,并自动完成编辑器和作者时间类型检查.

承诺 .coderabbit.yaml 总是优先于 .coderabbit.config.ts。 。 。 .

安装

npm install --save-dev @coderabbitai/config

使用量

创建一个 .coderabbit.config.ts 位于您的仓库根部 :

import { defineConfig } from "@coderabbitai/config"

export default defineConfig({
    language: "en-US",
    reviews: { profile: "chill" },
})

defineConfig 也接受接收仓库/组织的工厂 / 调取请求和引用上下文,所以您的配置可以适应 地点, (中文(简体) ), 什麽, (中文(简体) ), 财务报告和审定财务报表 怎么样 它运行着——一个静态的YAML文件不能做的东西:

import { defineConfig } from "@coderabbitai/config"

export default defineConfig(ctx => ({
    reviews: {
        // Keep local CLI reviews focused; use normal policy in the repository.
        profile: ctx.invocation.source === "cli" ? "chill" : "assertive",
    },
}))

ctx.invocation.source 实值 "cli" 当地 coderabbit review 财务报告和审定财务报表 "review" 通过单一市场管理提供商或另一审查启动的审查 客户端.

对于拉动请求和合并请求, ctx.pr.authorGroups 揭露 作者的提供者组,而不将特定提供者对象放在您的 配置 :

import { defineConfig } from "@coderabbitai/config"

export default defineConfig(ctx => {
    const groups =
        ctx.pr?.authorGroups.status === "resolved" ? ctx.pr.authorGroups.groups : []
    const isUsaPlatform = groups.some(
        group => group.fullPath === "acme/platform-usa",
    )

    return {
        language: isUsaPlatform ? "en-US" : "ko-KR",
    }
})

每个组都有稳定的供应商 id,简称 slug,以及合格供应商 fullPath。 。 。 . status 为:

  • "resolved": 提供者退回完整的可见会员名单; groups 也许是空的.
  • "unavailable": 权限、 超时、 提供者失败或安全约束 阻止了一个完整的检查. groups 已空出,不得视为 证明提交人不属于任何团体.
  • "unsupported": 当前提供者或引用没有作者组 解决者。 目前,地方CLI审查使用这种状态.
  • "stale": 预留未来缓存的成员结果.

GitHub和GitHub Entertainment解决组织团队. GitLab.com 和 (英语) 自行管理的 GitLab 解决 CodeRabbit 可见的直接组成员; GitLab的会籍不包括继承或共享的团体会籍.

仓库主题和 GitHub 自定义属性在 ctx.repo数字 :

import { defineConfig } from "@coderabbitai/config"

export default defineConfig(ctx => {
    const topics =
        ctx.repo.topics.status === "resolved" ? ctx.repo.topics.names : []
    const properties =
        ctx.repo.customProperties.status === "resolved"
            ? ctx.repo.customProperties.values
            : {}

    const isCriticalService =
        topics.includes("critical") && properties.repo_type === "service"

    return {
        reviews: {
            profile: isCriticalService ? "assertive" : "chill",
        },
    }
})

topics.names 是一个排序列表. customProperties.values 由 属性名称; 每个值为字符串、字符串数组,或 null。两个对象 使用同样的 resolved, (中文(简体) ), unavailable, (中文(简体) ), unsupported,并保留 stale 状态为作者组。 解析的收藏可能为空 。 无法获取 收藏是未知的,不能作为权威空来对待.

GitHub 提供话题和自定义属性. 其他提供者和当地的CLI 审查报告 unsupported; GitHub 失败和不支持的 GitHub 企业版本报告 unavailable这些检查使用了安装的 已存在的元数据读取权限, 并仅在 TypeScript 配置时运行 评估.

ctx.pr.changedFiles 显示在 拖动请求或合并请求 diff。 这使得选择审查成为可能 基于变化涉及的领域的政策:

import { defineConfig } from "@coderabbitai/config"

export default defineConfig(ctx => {
    const paths =
        ctx.pr?.changedFiles.status === "resolved" ? ctx.pr.changedFiles.paths : []
    const touchesInfrastructure = paths.some(
        path => path.startsWith("terraform/") || path.endsWith(".tf"),
    )

    return {
        reviews: {
            profile: touchesInfrastructure ? "assertive" : "chill",
        },
    }
})

状态是 "resolved" 仅当 CodeRabbit 拥有完整的路径列表时. 供应商错误、超时、修改或安全限制生产 "unavailable" 带有空列表; 没有完整目录的平台 生产 "unsupported"。从不将这两个状态解释为没有文件的证据 已更改。 重命名既包括上一条路径,也包括当前路径,这样政策就可以 检测进入或离开保护区的文件.

构造配置

mergeConfig 深相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相 (掌声) includeRemote 从您手中取出共享的碎片 联合国 coderabbit 默认寄存器 :

import { defineConfig, mergeConfig, includeRemote } from "@coderabbitai/config"

const orgBase = includeRemote({ path: "base.ts" })

const platformBase = includeRemote({
    repo: "acme/platform-config",
    path: "reviews/base.ts",
    ref: "v1",
})

export default defineConfig(
    mergeConfig(orgBase, platformBase, { reviews: { profile: "assertive" } }),
)

如何运作

您的配置由 CodeRabbit 在一个孤立、无网络的沙盒和 对照同一计划确认a .coderabbit.yaml 用户。 这个软件包是 只有作者时间 - 它给你的类型和自动完成 评估发生在服务器侧面,所以您的配置不管软件包是否有效 已安装。 安装它只会让你的编辑和CI意识到配置 形状.

API 密码

  • defineConfig(config | (ctx) => config) 输入了您配置的身份 .
  • mergeConfig(...fragments) ——深相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相.
  • includeRemote({ repo?, path, ref? }) ——包括一个共享文件. repo 使用该 提供者- 本地寄存器格式和默认为您的 org 格式 coderabbit 仓库.
  • 类型 : CodeRabbitConfig, (中文(简体) ), CodeRabbitContext, (中文(简体) ), CodeRabbitAuthorGroup, (中文(简体) ), CodeRabbitAuthorGroupsContext, (中文(简体) ), CodeRabbitAuthorGroupsStatus, (中文(简体) ), CodeRabbitContextResolutionStatus, (中文(简体) ), CodeRabbitChangedFilesContext, (中文(简体) ), CodeRabbitChangedFilesStatus, (中文(简体) ), CodeRabbitRepositoryContext, (中文(简体) ), CodeRabbitRepositoryTopicsContext, (中文(简体) ), CodeRabbitRepositoryCustomPropertiesContext, (中文(简体) ), CodeRabbitRepositoryCustomPropertyValue, (中文(简体) ), CodeRabbitPullRequestContext, (中文(简体) ), CodeRabbitInvocationContext, (中文(简体) ), CodeRabbitInvocationSource, (中文(简体) ), ResolvedCodeRabbitContext, (中文(简体) ), RemoteInclude。 。 。 .

内部 V3 预览

V2仍然是公共配置合同和 CodeRabbitConfig 类型. CodeRabbitConfigV3 编辑 defineConfig 编号 : mergeConfig 超载支持 a 明确 version: 3 仅用于认证的内部 GitHub Cloud 预览 . 类型不准许运行时间访问:客户、自办和中央V3条目 配置仍然不支持。 YAML 仍然优先于 TypeScript .

import { defineConfig, mergeConfig } from "@coderabbitai/config"

export default defineConfig(ctx =>
    mergeConfig(
        { version: 3, reviews: { behavior: { profile: "chill" } } },
        { fun: { in_progress_fortune: ctx.invocation.source === "review" } },
    ),
)

启动每个 V3 mergeConfig 带有 V3 基础的调用, 包括嵌入式调用 : mergeConfig({ version: 3 }, canonical, legacy)。只有无版本的呼叫 片段保留 V2 合同; 附加 V3 合并不能改变 内线已经结合了它的碎片.

对于一个被承认的主寄存器,目录文档从 与永久仓库修订版相同 .coderabbit.config.ts。导入的碎片 不创建额外的目录发现根。 使用 includeRemote<CodeRabbitConfigV3Fragment>({ path: "base.ts" }) 键入远程 V3片段;没有类型参数的调用保留其V2回放类型. 这个 离线 V2 迁移 CLI 仍然读取明确的 YAML 输入; 它不执行 TypeScript 工厂或 证明他们继承的源图.

建造SDK

从寄存器根运行 pnpm build --filter=@coderabbitai/config。 。 。 . 这使用寄存器共享的CPU-预算启动器进行范围构建. 该建筑通过软件包本地化明确使用稳定的类型Script 7 typescript-native 别名。 TypeScript 6 仍然安装为 typescript 页:1 dts-bundle-generator'JavaScript 编译器 API; a 赤色 tsc 可以选择 旧编译器代替 。 保留编译器和声明生成依赖 ,而不是在根工作空间.

许可证

阿帕奇 - 2.0

版本与发布记录

@coderabbitai/config 共发布 10 个版本,首次发布于 2026/09/15;过去 12 个月发布了 10 个版本。

版本发布日期距今
1.2.0latest2026/11/073 天前
1.1.62026/10/3110 天前
1.1.52026/10/2516 天前
1.1.42026/10/2416 天前
1.1.32026/10/2417 天前
1.1.22026/10/1724 天前

关于 @coderabbitai/config 的常见问题

@coderabbitai/config 是什么?

程序(TypeScript)为代码Rabbit配置编写 SDK .

如何安装 @coderabbitai/config?

在项目目录运行 npm install @coderabbitai/config,或使用 pnpm add / yarn add / bun add。

@coderabbitai/config 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@coderabbitai/config 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@coderabbitai/config 可以商用吗?

@coderabbitai/config 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@coderabbitai/config 的下载量有多少?

根据 npm 官方下载统计,@coderabbitai/config 在 2026/10/10 – 2026/11/08 这 30 天内被下载 219,353 次,日均约 7,312 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@coderabbitai/config 还在维护吗?

最新版本 1.2.0 发布于 2026/11/07(3 天前);至今共发布 10 个版本,其中过去 12 个月发布了 10 个;首次发布于 2026/09/15。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。