DTA-CODE-REVIEW-BOT
Projeto voltado para uso do DTA-PROXY. Baseado em vários outros repositórios que usam o mesmo conceito, a ideia é utilizar o Pipeline do Azure DevOps para gerar code review automatizado de códigos que estão indo para produção.
Exemplo de uso


A ideia é usar toda a capacidade do DTA-PROXY para consumir vários modelos utilizando a mesma estrutura de API da OpenAI, gerenciando a parte de geração de revisões de código.
📌 O code review é gerado em português.
Como Ativar
Para ativar, basta configurar o trigger no pipeline e adicionar a task:
trigger: none
resources:
repositories:
- repository: self
jobs:
- job: CodeReview
pool:
name: Default
steps:
- checkout: self
persistCredentials: true
- task: DTA-CODE-REVIEW-BOT@0
inputs:
api_key: '$(OpenAI_ApiKey)'
api_endpoint: 'seu proxy, aqui usando o DTA'
ai_model: 'gpt-4o'
bugs: true
performance: true
best_practices: true
Parâmetros Disponíveis
| Parâmetro |
Tipo |
Padrão |
Descrição |
api_key |
String |
— |
API Key da OpenAI ou do endpoint Azure OpenAI. Obrigatório. |
api_endpoint |
String |
null |
Endpoint do Azure OpenAI / DTA-PROXY. Ex: seu proxy, aqui usando o DTA |
api_version |
String |
null |
Versão da API Azure OpenAI. Ex: 2024-10-21. Opcional. |
ai_model |
String |
o4-mini |
Modelo de IA a ser utilizado. Ex: gpt-4o, o3-mini, gpt-4. |
bugs |
Booleano |
false |
Ativa a verificação de bugs durante a revisão de código. |
performance |
Booleano |
false |
Ativa verificações de performance durante a revisão de código. |
best_practices |
Booleano |
false |
Ativa verificações de boas práticas durante a revisão de código. |
modified_lines_only |
Booleano |
true |
Revisa apenas as linhas modificadas no diff. |
file_extensions |
String |
null |
Lista de extensões de arquivo separadas por vírgula. Ex: .ts,.js,.cs |
file_extension_excludes |
String |
null |
Lista de extensões de arquivo a excluir da revisão. |
file_includes |
String |
null |
Lista de arquivos (suporte a glob) a incluir na revisão. |
file_excludes |
String |
null |
Lista de arquivos (suporte a glob) a excluir da revisão. |
additional_prompts |
String |
null |
Prompts adicionais separados por vírgula para aprimorar a revisão. |
comment_line_correction |
Booleano |
true |
Corrige automaticamente o número de linha e offset dos comentários. |
allow_requeue |
Booleano |
false |
Permite revisão ao recolocar na fila sem novas alterações. |
confidence_mode |
Booleano |
false |
Filtra comentários abaixo do score de confiança mínimo. |
confidence_minimum |
String |
9 |
Score mínimo de confiança (1–10) para exibir um comentário. |
dedupe_across_files |
Booleano |
false |
Impede que o mesmo comentário apareça em vários arquivos. |
dedupe_across_files_threshold |
String |
10 |
Total de comentários no PR antes de aplicar a deduplicação. |
generate_pr_description |
Booleano |
false |
Gera automaticamente uma descrição em português para o PR com base nos diffs. |
🔐 Pré-requisito — Permissões no Repositório
É necessário conceder permissões à conta de serviço do pipeline no repositório. Sem isso, a task não consegue postar comentários nem atualizar o PR.
Passo a passo
Acesse o Azure DevOps e vá em:
Project Settings → Repositories
Localize o repositório que possui o pipeline configurado e clique nele
Clique na aba Security (Segurança)
Na lista de usuários/grupos, localize:
[Nome do Projeto] Build Service ([Nome da Organização])
Também pode aparecer como Project Collection Build Service Accounts
Conceda as seguintes permissões como Allow (Permitir):
| Permissão |
Motivo |
| Contribute to pull requests |
Necessário para postar e atualizar comentários no PR |
| Read |
Necessário para ler os arquivos e iterações do PR |
| Contribute |
Necessário para atualizar a descrição do PR |
Clique em Save changes
Caminho visual resumido
Azure DevOps
└── Project Settings
└── Repos → Repositories
└── [Seu Repositório]
└── Security
└── [Projeto] Build Service ([Organização])
├── ✅ Read → Allow
├── ✅ Contribute → Allow
└── ✅ Contribute to pull requests → Allow
⚠️ Se essa permissão não for concedida, o pipeline executará sem erros, mas nenhum comentário será postado no PR.
⚠️ Este projeto é voltado para estudos e experimentação com o DTA-PROXY. Nada além disto.