A API está na primeira versão. A gente está expandindo as capacidades com base no feedback — conta pra gente quais endpoints você precisa!
- Disponibilidade: Somente para equipes enterprise
- Status: Alpha (estruturas e campos de resposta podem mudar)
Autenticação
URL base
Limites de requisições
- 5 requisições por minuto por equipe, por endpoint
Parâmetros de Query
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 (com base 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 e-mail (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_. Isso é estável para consumo via API.
Semântica e como as métricas são calculadas
- Fontes: “TAB” representa completações inline aceitas; “COMPOSER” representa diffs aceitos do Composer
- Métricas de linhas: tabLinesAdded/Deleted e composerLinesAdded/Deleted são contadas 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
- Info de branch: isPrimaryBranch é true quando a branch atual é igual à branch padrão do repositório; pode ser undefined se as infos do repositório não estiverem disponíveis
Endpoints
Obter métricas de commits com IA (JSON, paginado)
Resposta
Campos de AiCommitMetric
Field | Type | Description | |
---|---|---|---|
commitHash | string | Hash do commit do Git | |
userId | string | ID de usuário codificado (por exemplo, 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 | Se esta é a branch principal |
totalLinesAdded | number | Total de linhas adicionadas no commit | |
totalLinesDeleted | number | Total de linhas excluídas no commit | |
tabLinesAdded | number | Linhas adicionadas via completações com TAB | |
tabLinesDeleted | number | Linhas excluídas via completações com TAB | |
composerLinesAdded | number | Linhas adicionadas via Composer | |
composerLinesDeleted | number | Linhas excluídas via Composer | |
nonAiLinesAdded | number | null | Linhas sem IA adicionadas |
nonAiLinesDeleted | number | null | Linhas sem IA excluídas |
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 requisições
Baixar métricas de commits com IA (CSV, streaming)
Resposta
- Content-Type: text/csv; charset=utf-8
Colunas do 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 | Indica se é 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 autocompletar com TAB |
tab_lines_deleted | number | Linhas removidas via autocompletar 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 | Timestamp do commit (formato ISO) |
created_at | string | Timestamp de ingestão (formato ISO) |
Exemplo de saída CSV
Exemplo de requisição
Obter métricas de mudanças de código com IA (JSON, paginado)
Resposta
Campos de AiCodeChangeMetric
Campo | Tipo | Descrição | |
---|---|---|---|
changeId | string | ID determinístico da mudança | |
userId | string | ID de usuário codificado (ex.: user_abc123) | |
userEmail | string | Endereço de e-mail do usuário | |
source | ”TAB" | "COMPOSER” | Origem da mudança de IA |
model | string | null | Modelo de IA usado |
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 código com IA (CSV, streaming)
Resposta
- Content-Type: text/csv; charset=utf-8
Colunas do CSV
Column | Type | Description |
---|---|---|
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 removidas |
created_at | string | Timestamp de ingestão (formato ISO) |
metadata_json | string | Array de metadados convertido em string JSON |
Notas
- metadata_json é um array de metadados convertido em string JSON (pode omitir fileName no modo de privacidade)
- Ao consumir CSV, garante que os campos entre aspas sejam analisados corretamente
Exemplo de saída CSV
Exemplo de solicitação
Dicas
- Usa o parâmetro
user
pra filtrar rapidamente um único usuário em todos os endpoints - Pra extrações grandes de dados, dá preferência aos endpoints CSV — eles fazem streaming em páginas de 10.000 registros no servidor
isPrimaryBranch
pode ser indefinido se o cliente não conseguir resolver a branch padrãocommitTs
é o carimbo de data/hora do commit;createdAt
é o horário de ingestão nos nossos servidores- Alguns campos podem estar ausentes quando o modo de privacidade estiver habilitado no cliente
Changelog
- Lançamento alfa: Endpoints iniciais para commits e alterações. Os formatos de resposta podem evoluir com base no feedback