API ini adalah rilis pertama. Kami akan menambah kapabilitas berdasarkan masukan — kasih tahu kami endpoint apa yang kamu butuhin!
- Availability: Hanya untuk tim enterprise
- Status: Alpha (bentuk respons dan field bisa berubah)
Autentikasi
URL Dasar
Batasan Rate
- 5 permintaan per menit per tim, per endpoint
Parameter Kueri
Parameter | Tipe | Wajib | Deskripsi | |
---|---|---|---|---|
startDate | string | date | Tidak | String tanggal ISO, literal “now”, atau hari relatif seperti “7d” (artinya sekarang - 7 hari). Default: sekarang - 7 hari |
endDate | string | date | Tidak | String tanggal ISO, literal “now”, atau hari relatif seperti “0d”. Default: sekarang |
page | number | Tidak | Nomor halaman (1-based). Default: 1 | |
pageSize | number | Tidak | Jumlah hasil per halaman. Default: 100, Maks: 1000 | |
user | string | Tidak | Filter opsional untuk satu pengguna. Menerima email (mis., developer@company.com), ID terenkode (mis., user_abc123…), atau ID numerik (mis., 42) |
Respons mengembalikan userId sebagai external ID terenkripsi dengan prefiks user_. Nilai ini stabil untuk konsumsi API.
Semantik dan Cara Perhitungan Metrik
- Sumber: “TAB” merepresentasikan penyelesaian inline yang diterima; “COMPOSER” merepresentasikan diff yang diterima dari Composer
- Metrik baris: tabLinesAdded/Deleted dan composerLinesAdded/Deleted dihitung terpisah; nonAiLinesAdded/Deleted diturunkan sebagai max(0, totalLines - AI lines)
- Mode privasi: Jika diaktifkan di klien, sebagian metadata (seperti fileName) mungkin dihilangkan
- Info branch: isPrimaryBranch bernilai true ketika branch saat ini sama dengan default branch repo; bisa undefined jika info repo tidak tersedia
Endpoint
Dapatkan Metrik Commit AI (JSON, dipaginasi)
Respons
Field AiCommitMetric
Field | Type | Description | |
---|---|---|---|
commitHash | string | Hash commit Git | |
userId | string | ID pengguna yang terenkode (mis., user_abc123) | |
userEmail | string | Alamat email pengguna | |
repoName | string | null | Nama repositori |
branchName | string | null | Nama branch |
isPrimaryBranch | boolean | null | Apakah ini branch utama |
totalLinesAdded | number | Total baris yang ditambahkan dalam commit | |
totalLinesDeleted | number | Total baris yang dihapus dalam commit | |
tabLinesAdded | number | Baris yang ditambahkan melalui penyelesaian TAB | |
tabLinesDeleted | number | Baris yang dihapus melalui penyelesaian TAB | |
composerLinesAdded | number | Baris yang ditambahkan melalui Composer | |
composerLinesDeleted | number | Baris yang dihapus melalui Composer | |
nonAiLinesAdded | number | null | Baris non-AI yang ditambahkan |
nonAiLinesDeleted | number | null | Baris non-AI yang dihapus |
message | string | null | Pesan commit |
commitTs | string | null | Timestamp commit (format ISO) |
createdAt | string | Timestamp ingestion (format ISO) |
Contoh Respons
Contoh Permintaan
Unduh Metrik Commit AI (CSV, streaming)
Respons
- Content-Type: text/csv; charset=utf-8
Kolom CSV
Kolom | Tipe | Deskripsi |
---|---|---|
commit_hash | string | Hash commit Git |
user_id | string | ID pengguna yang terenkode |
user_email | string | Alamat email pengguna |
repo_name | string | Nama repositori |
branch_name | string | Nama branch |
is_primary_branch | boolean | Apakah ini branch utama |
total_lines_added | number | Total baris yang ditambahkan pada commit |
total_lines_deleted | number | Total baris yang dihapus pada commit |
tab_lines_added | number | Baris yang ditambahkan lewat penyelesaian TAB |
tab_lines_deleted | number | Baris yang dihapus lewat penyelesaian TAB |
composer_lines_added | number | Baris yang ditambahkan lewat Composer |
composer_lines_deleted | number | Baris yang dihapus lewat Composer |
non_ai_lines_added | number | Baris non-AI yang ditambahkan |
non_ai_lines_deleted | number | Baris non-AI yang dihapus |
message | string | Pesan commit |
commit_ts | string | Stempel waktu commit (format ISO) |
created_at | string | Stempel waktu ingest (format ISO) |
Contoh Output CSV
Contoh Permintaan
Dapatkan Metrik Perubahan Kode AI (JSON, terpaginasikan)
Respons
Field AiCodeChangeMetric
Field | Tipe | Deskripsi | |
---|---|---|---|
changeId | string | ID deterministik untuk perubahan | |
userId | string | ID pengguna yang terenkode (mis., user_abc123) | |
userEmail | string | Alamat email pengguna | |
source | ”TAB" | "COMPOSER” | Sumber perubahan AI |
model | string | null | Model AI yang digunakan |
totalLinesAdded | number | Total baris yang ditambahkan | |
totalLinesDeleted | number | Total baris yang dihapus | |
createdAt | string | Stempel waktu ingest (format ISO) | |
metadata | Array | Metadata file (fileName dapat dihilangkan dalam mode privasi) |
Contoh Respons
Contoh Permintaan
Unduh Metrik Perubahan Kode AI (CSV, streaming)
Respons
- Content-Type: text/csv; charset=utf-8
Kolom CSV
Column | Type | Description |
---|---|---|
change_id | string | ID deterministik untuk perubahan |
user_id | string | ID pengguna terenkode |
user_email | string | Alamat email pengguna |
source | string | Sumber perubahan AI (TAB atau COMPOSER) |
model | string | Model AI yang digunakan |
total_lines_added | number | Total baris yang ditambahkan |
total_lines_deleted | number | Total baris yang dihapus |
created_at | string | Timestamp ingestion (format ISO) |
metadata_json | string | Array entri metadata yang diserialisasi ke string JSON |
Catatan
- metadata_json adalah array entri metadata yang diserialisasi ke string JSON (mungkin menghilangkan fileName dalam mode privasi)
- Saat memproses CSV, pastikan untuk mengurai field yang diapit tanda kutip
Contoh Output CSV
Contoh Permintaan
Tips
- Pakai parameter
user
buat cepat nyaring satu user di semua endpoint - Buat ekstraksi data besar, prioritaskan endpoint CSV—mereka nge-stream per halaman 10.000 record di sisi server
isPrimaryBranch
bisa undefined kalau client nggak bisa nge-resolve default branchcommitTs
adalah timestamp commit;createdAt
adalah waktu ingest di server kami- Beberapa field bisa aja nggak ada kalau privacy mode diaktifin di client
Changelog
- Rilis alpha: Endpoint awal untuk commit dan perubahan. Struktur respons bisa berubah berdasarkan masukan