该 API 为首个发布版本。我们会根据反馈持续扩展功能——告诉我们你需要哪些端点!
- 可用性: 仅面向企业团队
- 状态: Alpha(响应结构和字段可能变更)
身份验证
基础 URL
速率限制
- 每个团队、每个端点:每分钟最多 5 次请求 ---MDX_CONTENTEND---
查询参数
参数 | 类型 | 必填 | 描述 | |
---|---|---|---|---|
startDate | string | date | 否 | ISO 日期字符串、字面量 “now”,或类似 “7d” 的相对天数(表示 now - 7 天)。默认:now - 7 天 |
endDate | string | date | 否 | ISO 日期字符串、字面量 “now”,或类似 “0d” 的相对天数。默认:now |
page | number | 否 | 页码(从 1 开始)。默认:1 | |
pageSize | number | 否 | 每页结果数。默认:100,最大:1000 | |
user | string | 否 | 按单个用户进行可选过滤。接受邮箱(例如 developer@company.com)、编码 ID(例如 user_abc123…)或数值 ID(例如 42) |
响应会把 userId 返回为带有前缀 user_ 的外部编码 ID。这个值在 API 消费场景下是稳定的。
语义与指标的计算方式
- 来源: “TAB” 表示已接受的行内补全;“COMPOSER” 表示来自 Composer 的已接受 diff
- 行数指标:tabLinesAdded/Deleted 和 composerLinesAdded/Deleted 分别统计;nonAiLinesAdded/Deleted 通过 max(0, totalLines - AI lines) 得出
- 隐私模式:如果在客户端启用,部分元数据(如 fileName)可能会被省略
- 分支信息:当当前分支等于仓库的默认分支时,isPrimaryBranch 为 true;如果仓库信息不可用,可能为 undefined
端点
获取 AI 提交指标(JSON,分页)
响应
AiCommitMetric 字段
字段 | 类型 | 描述 | |
---|---|---|---|
commitHash | string | Git 提交哈希 | |
userId | string | 编码的用户 ID(例如:user_abc123) | |
userEmail | string | 用户邮箱地址 | |
repoName | string | null | 仓库名称 |
branchName | string | null | 分支名称 |
isPrimaryBranch | boolean | null | 是否为主分支 |
totalLinesAdded | number | 提交中新增加的总行数 | |
totalLinesDeleted | number | 提交中删除的总行数 | |
tabLinesAdded | number | 通过 TAB 补全新增的行数 | |
tabLinesDeleted | number | 通过 TAB 补全删除的行数 | |
composerLinesAdded | number | 通过 Composer 新增的行数 | |
composerLinesDeleted | number | 通过 Composer 删除的行数 | |
nonAiLinesAdded | number | null | 非 AI 新增行数 |
nonAiLinesDeleted | number | null | 非 AI 删除行数 |
message | string | null | 提交消息 |
commitTs | string | null | 提交时间戳(ISO 格式) |
createdAt | string | 采集时间戳(ISO 格式) |
示例响应
示例请求
下载 AI 提交指标(CSV,流式)
响应
- Content-Type: text/csv; charset=utf-8
CSV 列
Column | Type | Description |
---|---|---|
commit_hash | string | Git 提交哈希 |
user_id | string | 编码的用户 ID |
user_email | string | 用户邮箱地址 |
repo_name | string | 仓库名称 |
branch_name | string | 分支名称 |
is_primary_branch | boolean | 是否为主分支 |
total_lines_added | number | 提交中新增的总行数 |
total_lines_deleted | number | 提交中删除的总行数 |
tab_lines_added | number | 通过 TAB 补全新增的行数 |
tab_lines_deleted | number | 通过 TAB 补全删除的行数 |
composer_lines_added | number | 通过 Composer 新增的行数 |
composer_lines_deleted | number | 通过 Composer 删除的行数 |
non_ai_lines_added | number | 非 AI 新增行数 |
non_ai_lines_deleted | number | 非 AI 删除行数 |
message | string | 提交消息 |
commit_ts | string | 提交时间戳(ISO 格式) |
created_at | string | 写入时间戳(ISO 格式) |
示例 CSV 输出
示例请求
获取 AI 代码变更指标(JSON,分页)
响应
AiCodeChangeMetric 字段
Field | Type | Description | |
---|---|---|---|
changeId | string | 该变更的确定性 ID | |
userId | string | 编码的用户 ID(例如 user_abc123) | |
userEmail | string | 用户邮箱地址 | |
source | ”TAB" | "COMPOSER” | AI 变更来源 |
model | string | null | 使用的 AI 模型 |
totalLinesAdded | number | 新增的总行数 | |
totalLinesDeleted | number | 删除的总行数 | |
createdAt | string | 写入时间戳(ISO 格式) | |
metadata | Array | 文件元数据(隐私模式下可能省略 fileName) |
示例响应
示例请求
下载 AI 代码变更指标(CSV,流式)
响应
- Content-Type: text/csv; charset=utf-8
CSV 列
Column | Type | Description |
---|---|---|
change_id | string | 该变更的确定性 ID |
user_id | string | 编码的用户 ID |
user_email | string | 用户邮箱地址 |
source | string | AI 变更来源(TAB 或 COMPOSER) |
model | string | 使用的 AI 模型 |
total_lines_added | number | 新增行总数 |
total_lines_deleted | number | 删除行总数 |
created_at | string | 写入时间戳(ISO 格式) |
metadata_json | string | 元数据条目的 JSON 字符串数组 |
备注
- metadata_json 是元数据条目的 JSON 字符串数组(在隐私模式下可能省略 fileName)
- 处理 CSV 时,请务必解析带引号的字段
示例 CSV 输出
示例请求
提示
- 使用
user
参数可在所有端点中快速筛选单个用户 - 对于大规模数据导出,优先使用 CSV 端点——它们在服务器端以每页 10,000 条记录的方式进行流式输出
- 如果客户端无法解析默认分支,
isPrimaryBranch
可能为 undefined commitTs
为提交时间戳;createdAt
为我们服务器上的摄入时间- 当客户端启用隐私模式时,某些字段可能不会返回
更新日志
- Alpha 版本发布:提供用于提交和更改的初始接口。响应结构可能会根据反馈进行调整