A API está na primeira versão. A gente está ampliando as capacidades com base no feedback — conta pra gente quais endpoints você precisa!
- Disponibilidade: somente para equipes enterprise
- Status: Alpha (os formatos e campos de resposta podem mudar)
Autenticação
URL base
Limites de uso
- 5 requisições por minuto, por equipe, por endpoint
Parâmetros de consulta
Parâmetro | Tipo | Obrigatório | Descrição | |
---|---|---|---|---|
startDate | string | date | Não | String de data ISO, o literal “now” ou dias relativos como “7d” (equivale a agora - 7 dias). Padrão: agora - 7 dias |
endDate | string | date | Não | String de data ISO, o literal “now” ou dias relativos como “0d”. Padrão: agora |
page | number | Não | Número da página (iniciado em 1). Padrão: 1 | |
pageSize | number | Não | Resultados por página. Padrão: 100, máx.: 1000 | |
user | string | Não | Filtro opcional por um único usuário. Aceita email (por exemplo, developer@company.com), ID codificado (por exemplo, user_abc123…) ou ID numérico (por exemplo, 42) |
As respostas retornam userId como um ID externo codificado com o prefixo user_. Esse valor é estável para consumo via API.
Semântica e como as métricas são calculadas
- Fontes: “TAB” representa completações inline que foram aceitas; “COMPOSER” representa diffs aceitos do Composer
- Métricas de linhas: tabLinesAdded/Deleted e composerLinesAdded/Deleted são contabilizadas separadamente; nonAiLinesAdded/Deleted são derivadas como max(0, totalLines - AI lines)
- Modo de privacidade: Se ativado no cliente, alguns metadados (como fileName) podem ser omitidos
- Informações de branch: isPrimaryBranch é true quando a branch atual é igual à branch padrão do repositório; pode ser undefined se as informações do repositório não estiverem disponíveis
Endpoints
Obter métricas de commit com IA (JSON, paginado)
Resposta
Campos de AiCommitMetric
Campo | Tipo | Descrição | |
---|---|---|---|
commitHash | string | Hash do commit do Git | |
userId | string | ID de usuário codificado (ex.: user_abc123) | |
userEmail | string | Endereço de e-mail do usuário | |
repoName | string | null | Nome do repositório |
branchName | string | null | Nome da branch |
isPrimaryBranch | boolean | null | Indica se é a branch primária |
totalLinesAdded | number | Total de linhas adicionadas no commit | |
totalLinesDeleted | number | Total de linhas removidas no commit | |
tabLinesAdded | number | Linhas adicionadas via completações com TAB | |
tabLinesDeleted | number | Linhas removidas via completações com TAB | |
composerLinesAdded | number | Linhas adicionadas via Composer | |
composerLinesDeleted | number | Linhas removidas via Composer | |
nonAiLinesAdded | number | null | Linhas não geradas por IA adicionadas |
nonAiLinesDeleted | number | null | Linhas não geradas por IA removidas |
message | string | null | Mensagem do commit |
commitTs | string | null | Timestamp do commit (formato ISO) |
createdAt | string | Timestamp de ingestão (formato ISO) |
Exemplo de resposta
Exemplos de solicitações
Baixar métricas de commit com IA (CSV, streaming)
Resposta
- Content-Type: text/csv; charset=utf-8
Colunas CSV
Coluna | Tipo | Descrição |
---|---|---|
commit_hash | string | Hash do commit do Git |
user_id | string | ID de usuário codificado |
user_email | string | Endereço de e-mail do usuário |
repo_name | string | Nome do repositório |
branch_name | string | Nome da branch |
is_primary_branch | boolean | Se esta é a branch principal |
total_lines_added | number | Total de linhas adicionadas no commit |
total_lines_deleted | number | Total de linhas removidas no commit |
tab_lines_added | number | Linhas adicionadas via completações com TAB |
tab_lines_deleted | number | Linhas removidas via completações com TAB |
composer_lines_added | number | Linhas adicionadas via Composer |
composer_lines_deleted | number | Linhas removidas via Composer |
non_ai_lines_added | number | Linhas não geradas por IA adicionadas |
non_ai_lines_deleted | number | Linhas não geradas por IA removidas |
message | string | Mensagem do commit |
commit_ts | string | Carimbo de data e hora do commit (formato ISO) |
created_at | string | Carimbo de data e hora de ingestão (formato ISO) |
Exemplo de saída CSV
Exemplo de solicitação
Obter métricas de alterações de código com IA (JSON, paginadas)
Resposta
Campos de AiCodeChangeMetric
Campo | Tipo | Descrição | |
---|---|---|---|
changeId | string | ID determinístico da alteração | |
userId | string | ID de usuário codificado (por exemplo, user_abc123) | |
userEmail | string | Endereço de e-mail do usuário | |
source | ”TAB" | "COMPOSER” | Origem da alteração gerada por IA |
model | string | null | Modelo de IA utilizado |
totalLinesAdded | number | Total de linhas adicionadas | |
totalLinesDeleted | number | Total de linhas removidas | |
createdAt | string | Timestamp de ingestão (formato ISO) | |
metadata | Array | Metadados do arquivo (fileName pode ser omitido no modo de privacidade) |
Exemplo de resposta
Exemplos de solicitações
Baixar métricas de alterações de IA (CSV, streaming)
Resposta
- Content-Type: text/csv; charset=utf-8
Colunas do CSV
Coluna | Tipo | Descrição |
---|---|---|
change_id | string | ID determinístico da alteração |
user_id | string | ID de usuário codificado |
user_email | string | Endereço de e-mail do usuário |
source | string | Origem da alteração de IA (TAB ou COMPOSER) |
model | string | Modelo de IA usado |
total_lines_added | number | Total de linhas adicionadas |
total_lines_deleted | number | Total de linhas excluídas |
created_at | string | Carimbo de data/hora de ingestão (formato ISO) |
metadata_json | string | Array de metadados serializado em JSON |
Notas
- metadata_json é um array de metadados serializado em JSON (pode omitir fileName no modo de privacidade)
- Ao consumir CSV, lembra de fazer o parse de campos entre aspas
Exemplo de saída em CSV
Exemplo de solicitação
Dicas
- Usa o parâmetro
user
pra filtrar rapidinho um único usuário em todos os endpoints - Pra extrações grandes de dados, prefere os endpoints CSV — eles fazem streaming em páginas de 10.000 registros no lado do servidor
isPrimaryBranch
pode ser indefinido se o cliente não conseguiu resolver a branch padrãocommitTs
é o timestamp do commit;createdAt
é o horário de ingestão nos nossos servidores- Alguns campos podem estar ausentes quando o modo de privacidade tá habilitado no cliente
Changelog
- Versão alpha: Endpoints iniciais para commits e mudanças. Os formatos de resposta podem evoluir com base no feedback