La API está en su primera versión. Estamos ampliando funcionalidades según el feedback; ¡cuéntanos qué endpoints necesitas!
- Disponibilidad: Solo para equipos Enterprise
- Estado: Alpha (las estructuras y los campos de la respuesta pueden cambiar)
Autenticación
URL base
Límites de uso
- 5 solicitudes por minuto por equipo y por endpoint
Parámetros de consulta
Parámetro | Tipo | Obligatorio | Descripción | |
---|---|---|---|---|
startDate | string | date | No | Cadena de fecha ISO, el literal “now” o días relativos como “7d” (equivale a ahora - 7 días). Predeterminado: ahora - 7 días |
endDate | string | date | No | Cadena de fecha ISO, el literal “now” o días relativos como “0d”. Predeterminado: ahora |
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 único 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 el consumo por API.
Semántica y cómo se calculan las métricas
- Origen: “TAB” representa las completions en línea aceptadas; “COMPOSER” representa diffs aceptados desde Composer
- Métricas de líneas: tabLinesAdded/Deleted y composerLinesAdded/Deleted se cuentan por separado; nonAiLinesAdded/Deleted se calculan como max(0, totalLines - AI lines)
- Modo de privacidad: Si está habilitado en el cliente, puede omitirse cierta metadata (como fileName)
- Información de la rama: isPrimaryBranch es true cuando la rama actual es igual a 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, paginadas)
Respuesta
Campos de AiCommitMetric
Campo | Tipo | Descripción | |
---|---|---|---|
commitHash | string | Hash del commit de Git | |
userId | string | ID de usuario codificado (p. ej., user_abc123) | |
userEmail | string | Dirección de correo electrónico del usuario | |
repoName | string | null | Nombre del repositorio |
branchName | string | null | Nombre de la rama |
isPrimaryBranch | boolean | null | Indica si es la rama principal |
totalLinesAdded | number | Total de líneas añadidas en el commit | |
totalLinesDeleted | number | Total de líneas eliminadas en el commit | |
tabLinesAdded | number | Líneas añadidas mediante autocompletado con TAB | |
tabLinesDeleted | number | Líneas eliminadas mediante autocompletado con TAB | |
composerLinesAdded | number | Líneas añadidas mediante Composer | |
composerLinesDeleted | number | Líneas eliminadas mediante Composer | |
nonAiLinesAdded | number | null | Líneas no generadas por IA añadidas |
nonAiLinesDeleted | number | null | Líneas no generadas por 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) |
Ejemplo de respuesta
Ejemplos de solicitudes
Descargar métricas de commits con IA (CSV, streaming)
Respuesta
- Content-Type: text/csv; charset=utf-8
Columnas del CSV
Columna | Tipo | Descripción |
---|---|---|
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 | 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 con autocompletado por TAB |
tab_lines_deleted | number | Líneas eliminadas con autocompletado por TAB |
composer_lines_added | number | Líneas añadidas con Composer |
composer_lines_deleted | number | Líneas eliminadas con 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) |
Ejemplo de salida CSV
Ejemplo de solicitud
Obtener métricas de cambios de IA (JSON, paginadas)
Respuesta
Campos de AiCodeChangeMetric
Campo | Tipo | Descripción | |
---|---|---|---|
changeId | string | ID determinista del cambio | |
userId | string | ID de usuario codificado (p. ej., user_abc123) | |
userEmail | string | Dirección de correo del usuario | |
source | ”TAB" | "COMPOSER” | Origen del cambio generado por IA |
model | string | null | Modelo de IA usado |
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 el modo de privacidad) |
Respuesta de ejemplo
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
Columna | Tipo | Descripción |
---|---|---|
change_id | string | ID determinista del cambio |
user_id | string | ID de usuario codificado |
user_email | string | Dirección de correo 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 agregadas |
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 analizar los campos entre comillas
Salida de ejemplo en CSV
Ejemplo de solicitud
Consejos
- Usa el parámetro
user
para filtrar rápido a un solo usuario en todos los endpoints - Para extracciones de datos grandes, prefiere los endpoints CSV: hacen streaming en páginas de 10.000 registros del lado del servidor
isPrimaryBranch
puede serundefined
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- Algunos campos pueden estar ausentes cuando el modo de privacidad está habilitado en el cliente
Registro de cambios
- Versión alfa: Endpoints iniciales para commits y cambios. Las formas de las respuestas pueden evolucionar según el feedback