L’API est en première release. On étend les capacités selon les retours — dis-nous quels endpoints tu veux !
- Disponibilité: Réservée aux équipes Enterprise
- Statut: Alpha (la structure des réponses 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
Paramètre | Type | Requis | Description | |
---|---|---|---|---|
startDate | string | date | Non | 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 | Non | Chaîne de date ISO, le littéral “now”, ou des jours relatifs comme “0d”. Par défaut : maintenant |
page | number | Non | Numéro de page (indexé à partir de 1). Par défaut : 1 | |
pageSize | number | Non | Résultats par page. Par défaut : 100, max : 1000 | |
user | string | Non | Filtre optionnel par un seul utilisateur. Accepte une adresse 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 comme ID externe encodé avec le préfixe user_. C’est stable pour une consommation via l’API.
Sémantique et calcul des métriques
- Sources : “TAB” correspond aux complétions en ligne acceptées ; “COMPOSER” correspond aux 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 vaut true lorsque la branche actuelle est 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ées)
Réponses
Champs AiCommitMetric
Champ | Type | Description | |
---|---|---|---|
commitHash | string | Hachage 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 AI ajoutées |
nonAiLinesDeleted | number | null | Lignes non AI 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 demandes
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 | Hash 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 par défaut |
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 demande
Obtenir des métriques sur les changements de code IA (JSON, paginées)
Réponses
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” | Origine de la modification par l’IA |
model | string | null | Modèle d’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 demandes
Télécharger les métriques de modifications de code IA (CSV, streaming)
Réponse
- Content-Type: text/csv; charset=utf-8
Colonnes CSV
Colonne | 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 | Origine de la modification par l’IA (TAB ou COMPOSER) |
model | string | Modèle d’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 demande
Conseils
- Utilise le paramètre
user
pour filtrer rapidement un utilisateur donné sur tous les endpoints - Pour de larges extractions de données, privilégie 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’heure 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 en fonction des retours