La API está en su primera versión. Estamos ampliando las capacidades según tus comentarios: ¡cuéntanos qué endpoints necesitas!
- Disponibilidad: Solo para equipos Enterprise
- Estado: Alpha (las estructuras y los campos de las respuestas pueden cambiar)
Autenticación
URL base
Límites de uso
- 5 solicitudes por minuto por equipo y por endpoint
Parámetros de consulta
Parameter | Type | Required | Description | |
---|---|---|---|---|
startDate | string | date | No | Cadena de fecha ISO, el literal “now” o días relativos como “7d” (equivale a now - 7 days). Predeterminado: now - 7 days |
endDate | string | date | No | Cadena de fecha ISO, el literal “now” o días relativos como “0d”. Predeterminado: now |
page | number | No | Número de página (base 1). Predeterminado: 1 | |
pageSize | number | No | Resultados por página. Predeterminado: 100, máx.: 1000 | |
user | string | No | Filtro opcional por un solo usuario. Acepta email (p. ej., developer@company.com), ID codificado (p. ej., user_abc123…), o ID numérico (p. ej., 42) |
Las respuestas devuelven userId como un ID externo codificado con el prefijo user_. Esto es estable para consumo vía API.
Semántica y cómo se calculan las métricas
- Fuentes: “TAB” representa las completions en línea aceptadas; “COMPOSER” representa los diffs aceptados desde Composer
- Métricas de líneas: tabLinesAdded/Deleted y composerLinesAdded/Deleted se cuentan por separado; nonAiLinesAdded/Deleted se derivan como max(0, totalLines - AI lines)
- Modo de privacidad: Si está habilitado en el cliente, puede omitirse parte de los metadatos (como fileName)
- Información de la rama: isPrimaryBranch es true cuando la rama actual coincide con la rama predeterminada del repo; puede ser undefined si la info del repo no está disponible
Endpoints
Obtener métricas de commits con IA (JSON, paginado)
Respuesta
Campos de AiCommitMetric
Field | Type | Description | |
---|---|---|---|
commitHash | string | Hash del commit de Git | |
userId | string | ID de usuario codificado (p. ej., user_abc123) | |
userEmail | string | Correo electrónico del usuario | |
repoName | string | null | Nombre del repositorio |
branchName | string | null | Nombre de la rama |
isPrimaryBranch | boolean | null | Si es la rama principal |
totalLinesAdded | number | Total de líneas agregadas en el commit | |
totalLinesDeleted | number | Total de líneas eliminadas en el commit | |
tabLinesAdded | number | Líneas agregadas mediante completados con TAB | |
tabLinesDeleted | number | Líneas eliminadas mediante completados con TAB | |
composerLinesAdded | number | Líneas agregadas mediante Composer | |
composerLinesDeleted | number | Líneas eliminadas mediante Composer | |
nonAiLinesAdded | number | null | Líneas no IA agregadas |
nonAiLinesDeleted | number | null | Líneas no IA eliminadas |
message | string | null | Mensaje del commit |
commitTs | string | null | Marca de tiempo del commit (formato ISO) |
createdAt | string | Marca de tiempo de ingesta (formato ISO) |
Respuesta de ejemplo
Ejemplos de solicitudes
Descargar métricas de commits con IA (CSV, streaming)
Respuesta
- Content-Type: text/csv; charset=utf-8
Columnas del CSV
Column | Type | Description |
---|---|---|
commit_hash | string | Hash del commit de Git |
user_id | string | ID de usuario codificado |
user_email | string | Dirección de correo electrónico del usuario |
repo_name | string | Nombre del repositorio |
branch_name | string | Nombre de la rama |
is_primary_branch | boolean | Indica si es la rama principal |
total_lines_added | number | Total de líneas añadidas en el commit |
total_lines_deleted | number | Total de líneas eliminadas en el commit |
tab_lines_added | number | Líneas añadidas mediante autocompletado con TAB |
tab_lines_deleted | number | Líneas eliminadas mediante autocompletado con TAB |
composer_lines_added | number | Líneas añadidas mediante Composer |
composer_lines_deleted | number | Líneas eliminadas mediante Composer |
non_ai_lines_added | number | Líneas no generadas por IA añadidas |
non_ai_lines_deleted | number | Líneas no generadas por IA eliminadas |
message | string | Mensaje del commit |
commit_ts | string | Marca de tiempo del commit (formato ISO) |
created_at | string | Marca de tiempo de ingesta (formato ISO) |
Salida CSV de ejemplo
Ejemplo de solicitud
Obtener métricas de cambios de código con IA (JSON, paginadas)
Respuesta
Campos de AiCodeChangeMetric
Field | Type | Description | |
---|---|---|---|
changeId | string | ID determinista del cambio | |
userId | string | ID de usuario codificado (p. ej., user_abc123) | |
userEmail | string | Dirección de correo electrónico del usuario | |
source | ”TAB" | "COMPOSER” | Origen del cambio de IA |
model | string | null | Modelo de IA utilizado |
totalLinesAdded | number | Total de líneas añadidas | |
totalLinesDeleted | number | Total de líneas eliminadas | |
createdAt | string | Marca de tiempo de ingesta (formato ISO) | |
metadata | Array | Metadatos del archivo (fileName puede omitirse en modo de privacidad) |
Ejemplo de respuesta
Ejemplos de solicitudes
Descargar métricas de cambios de código con IA (CSV, streaming)
Respuesta
- Content-Type: text/csv; charset=utf-8
Columnas del CSV
Column | Type | Description |
---|---|---|
change_id | string | ID determinístico del cambio |
user_id | string | ID de usuario codificado |
user_email | string | Correo electrónico del usuario |
source | string | Origen del cambio de IA (TAB o COMPOSER) |
model | string | Modelo de IA utilizado |
total_lines_added | number | Total de líneas añadidas |
total_lines_deleted | number | Total de líneas eliminadas |
created_at | string | Marca de tiempo de ingesta (formato ISO) |
metadata_json | string | Arreglo de entradas de metadatos serializado en JSON |
Notas
- metadata_json es un arreglo de entradas de metadatos serializado en JSON (puede omitir fileName en modo de privacidad)
- Al consumir CSV, asegúrate de parsear los campos entrecomillados
Salida CSV de ejemplo
Solicitud de ejemplo
Consejos
- Usa el parámetro
user
para filtrar rápidamente a un solo usuario en todos los endpoints - Para extracciones de datos grandes, prefiere los endpoints CSV: envían datos en páginas de 10.000 registros desde el servidor
isPrimaryBranch
puede ser undefined si el cliente no pudo resolver la rama predeterminadacommitTs
es la marca de tiempo del commit;createdAt
es la hora de ingesta en nuestros servidores- Es posible que falten algunos campos cuando el modo de privacidad está habilitado en el cliente
Registro de cambios
- Versión alfa: Endpoints iniciales para commits y cambios. Las estructuras de las respuestas pueden evolucionar según el feedback