L’API est en première release. On élargit les capacités selon vos retours — dis-nous quels endpoints il te faut !
- Disponibilité: Réservée aux équipes Enterprise
- Statut: Alpha (les schémas de réponse et les champs peuvent changer)
Authentification
URL de base
Limites de débit
- 5 requêtes par minute et par équipe, par endpoint
Paramètres de requête
Parameter | Type | Required | Description | |
---|---|---|---|---|
startDate | string | date | No | Chaîne de date ISO, le littéral “now”, ou des jours relatifs comme “7d” (équivaut à maintenant - 7 jours). Par défaut : maintenant - 7 jours |
endDate | string | date | No | Chaîne de date ISO, le littéral “now”, ou des jours relatifs comme “0d”. Par défaut : maintenant |
page | number | No | Numéro de page (base 1). Par défaut : 1 | |
pageSize | number | No | Résultats par page. Par défaut : 100, max. : 1000 | |
user | string | No | Filtre optionnel par utilisateur unique. Accepte un e-mail (p. ex. : developer@company.com), un ID encodé (p. ex. : user_abc123…), ou un ID numérique (p. ex. : 42) |
Les réponses renvoient userId en tant qu’ID externe encodé avec le préfixe user_. Ce format est stable pour la consommation via l’API.
Sémantique et calcul des métriques
- Sources : « TAB » représente les complétions en ligne acceptées ; « COMPOSER » représente les diffs acceptés depuis Composer
- Métriques de lignes : tabLinesAdded/Deleted et composerLinesAdded/Deleted sont comptées séparément ; nonAiLinesAdded/Deleted sont calculées comme max(0, totalLines - AI lines)
- Mode confidentialité : s’il est activé côté client, certaines métadonnées (comme fileName) peuvent être omises
- Infos de branche : isPrimaryBranch est true lorsque la branche actuelle est identique à la branche par défaut du dépôt ; peut être undefined si les infos du dépôt ne sont pas disponibles
Endpoints
Récupérer les métriques de commits IA (JSON, paginé)
Réponse
Champs AiCommitMetric
Field | Type | Description | |
---|---|---|---|
commitHash | string | Hash du commit Git | |
userId | string | ID utilisateur encodé (p. ex., user_abc123) | |
userEmail | string | Adresse e-mail de l’utilisateur | |
repoName | string | null | Nom du dépôt |
branchName | string | null | Nom de la branche |
isPrimaryBranch | boolean | null | Indique s’il s’agit de la branche principale |
totalLinesAdded | number | Nombre total de lignes ajoutées dans le commit | |
totalLinesDeleted | number | Nombre total de lignes supprimées dans le commit | |
tabLinesAdded | number | Lignes ajoutées via des complétions TAB | |
tabLinesDeleted | number | Lignes supprimées via des complétions TAB | |
composerLinesAdded | number | Lignes ajoutées via Composer | |
composerLinesDeleted | number | Lignes supprimées via Composer | |
nonAiLinesAdded | number | null | Lignes non IA ajoutées |
nonAiLinesDeleted | number | null | Lignes non IA supprimées |
message | string | null | Message de commit |
commitTs | string | null | Horodatage du commit (format ISO) |
createdAt | string | Horodatage d’ingestion (format ISO) |
Exemple de réponse
Exemples de requêtes
Télécharger les métriques de commits IA (CSV, streaming)
Réponse
- Content-Type: text/csv; charset=utf-8
Colonnes CSV
Colonne | Type | Description |
---|---|---|
commit_hash | string | Hachage de commit Git |
user_id | string | ID utilisateur encodé |
user_email | string | Adresse e-mail de l’utilisateur |
repo_name | string | Nom du dépôt |
branch_name | string | Nom de la branche |
is_primary_branch | boolean | Indique s’il s’agit de la branche principale |
total_lines_added | number | Nombre total de lignes ajoutées dans le commit |
total_lines_deleted | number | Nombre total de lignes supprimées dans le commit |
tab_lines_added | number | Lignes ajoutées via les complétions TAB |
tab_lines_deleted | number | Lignes supprimées via les complétions TAB |
composer_lines_added | number | Lignes ajoutées via Composer |
composer_lines_deleted | number | Lignes supprimées via Composer |
non_ai_lines_added | number | Lignes non IA ajoutées |
non_ai_lines_deleted | number | Lignes non IA supprimées |
message | string | Message de commit |
commit_ts | string | Horodatage du commit (format ISO) |
created_at | string | Horodatage d’ingestion (format ISO) |
Exemple de sortie CSV
Exemple de requête
Obtenir les métriques de modifications de code IA (JSON, paginé)
Réponse
Champs AiCodeChangeMetric
Champ | Type | Description | |
---|---|---|---|
changeId | string | ID déterministe de la modification | |
userId | string | ID utilisateur encodé (p. ex., user_abc123) | |
userEmail | string | Adresse e-mail de l’utilisateur | |
source | ”TAB" | "COMPOSER” | Source de la modification IA |
model | string | null | Modèle IA utilisé |
totalLinesAdded | number | Nombre total de lignes ajoutées | |
totalLinesDeleted | number | Nombre total de lignes supprimées | |
createdAt | string | Horodatage d’ingestion (format ISO) | |
metadata | Array | Métadonnées de fichier (fileName peut être omis en mode confidentialité) |
Exemple de réponse
Exemples de requêtes
Télécharger les métriques de modifications de code IA (CSV, streaming)
Réponse
- Content-Type: text/csv; charset=utf-8
Colonnes CSV
Column | Type | Description |
---|---|---|
change_id | string | ID déterministe de la modification |
user_id | string | ID utilisateur encodé |
user_email | string | Adresse e-mail de l’utilisateur |
source | string | Source de la modification IA (TAB ou COMPOSER) |
model | string | Modèle IA utilisé |
total_lines_added | number | Nombre total de lignes ajoutées |
total_lines_deleted | number | Nombre total de lignes supprimées |
created_at | string | Horodatage d’ingestion (format ISO) |
metadata_json | string | Tableau de métadonnées sérialisé en JSON |
Notes
- metadata_json est un tableau de métadonnées sérialisé en JSON (peut omettre fileName en mode confidentialité)
- Lors de la lecture du CSV, pense à parser les champs entre guillemets
Exemple de sortie CSV
Exemple de requête
Conseils
- Utilise le paramètre
user
pour filtrer rapidement un seul utilisateur sur tous les endpoints - Pour les extractions de données volumineuses, préfère les endpoints CSV — ils diffusent côté serveur par pages de 10 000 enregistrements
isPrimaryBranch
peut être indéfini si le client n’a pas pu déterminer la branche par défautcommitTs
est l’horodatage du commit ;createdAt
est l’horodatage d’ingestion sur nos serveurs- Certains champs peuvent être absents lorsque le mode confidentialité est activé côté client
Journal des modifications
- Version alpha : Premiers endpoints pour les commits et les modifications. Les formats de réponse pourront évoluer selon les retours