這個 API 是首個版本。我們會依照回饋擴充功能——告訴我們你需要哪些 endpoints!
- 可用性: 僅限企業版團隊
- 狀態: Alpha(回應結構與欄位可能調整)
驗證
基礎 URL
速率限制
- 每個團隊、每個端點:每分鐘 5 次請求
查詢參數
Parameter | Type | Required | Description | |
---|---|---|---|---|
startDate | string | date | No | ISO 日期字串、字面值 “now”,或相對天數(如 “7d”,表示 now - 7 天)。預設:now - 7 天 |
endDate | string | date | No | ISO 日期字串、字面值 “now”,或相對天數(如 “0d”)。預設:now |
page | number | No | 頁碼(從 1 起算)。預設:1 | |
pageSize | number | No | 每頁結果數。預設:100,最大:1000 | |
user | string | No | 以單一使用者篩選的可選參數。可用 email(例如 developer@company.com)、編碼 ID(例如 user_abc123…),或數字 ID(例如 42) |
回應中的 userId 會以帶有前綴 user_ 的外部編碼 ID 回傳;這對 API 使用而言是穩定的。
語意與度量計算方式
- 來源:「TAB」代表接受的行內補全;「COMPOSER」代表從 Composer 接受的差異
- 行數度量:tabLinesAdded/Deleted 與 composerLinesAdded/Deleted 會分別計數;nonAiLinesAdded/Deleted 由 max(0, totalLines - AI lines) 推導
- 隱私模式:如果在用戶端啟用,部分中介資料(例如 fileName)可能會被省略
- 分支資訊:當目前分支等於版本庫的預設分支時,isPrimaryBranch 為 true;若無法取得版本庫資訊,則可能為 undefined
端點
取得 AI Commit 指標(JSON,分頁)
回應
AiCommitMetric 欄位
欄位 | 類型 | 說明 | |
---|---|---|---|
commitHash | string | Git commit 雜湊值 | |
userId | string | 編碼後的使用者 ID(例如:user_abc123) | |
userEmail | string | 使用者的電子郵件地址 | |
repoName | string | null | 儲存庫名稱 |
branchName | string | null | 分支名稱 |
isPrimaryBranch | boolean | null | 是否為主要分支 |
totalLinesAdded | number | 此次 commit 新增的總行數 | |
totalLinesDeleted | number | 此次 commit 刪除的總行數 | |
tabLinesAdded | number | 透過 TAB 自動補全新增的行數 | |
tabLinesDeleted | number | 透過 TAB 自動補全刪除的行數 | |
composerLinesAdded | number | 透過 Composer 新增的行數 | |
composerLinesDeleted | number | 透過 Composer 刪除的行數 | |
nonAiLinesAdded | number | null | 非 AI 新增的行數 |
nonAiLinesDeleted | number | null | 非 AI 刪除的行數 |
message | string | null | Commit 訊息 |
commitTs | string | null | Commit 時間戳(ISO 格式) |
createdAt | string | 匯入時間戳(ISO 格式) |
回應範例
範例請求
下載 AI Commit 指標(CSV,串流)
回應
- Content-Type: text/csv; charset=utf-8
CSV 欄位
欄位 | 類型 | 說明 |
---|---|---|
commit_hash | string | Git commit 雜湊值 |
user_id | string | 編碼後的使用者 ID |
user_email | string | 使用者的電子郵件地址 |
repo_name | string | 儲存庫名稱 |
branch_name | string | 分支名稱 |
is_primary_branch | boolean | 是否為主要分支 |
total_lines_added | number | 此次 commit 新增的總行數 |
total_lines_deleted | number | 此次 commit 刪除的總行數 |
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 訊息 |
commit_ts | string | Commit 時間戳(ISO 格式) |
created_at | string | 匯入時間戳(ISO 格式) |
範例 CSV 輸出
範例請求
取得 AI 程式碼變更度量(JSON,分頁)
回應
AiCodeChangeMetric 欄位
欄位 | 型別 | 說明 | |
---|---|---|---|
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 欄位
欄位 | 型別 | 說明 |
---|---|---|
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 版本發佈:提供提交(commits)與變更(changes)的初始端點。回應結構可能會根據回饋持續調整