SmartCodeRevision
Uma extensão avançada para o Azure DevOps que realiza revisão de código em Pull Requests utilizando IA, fornecendo feedback detalhado sobre qualidade, segurança e performance.
Visão Geral
O SmartCodeRevision é uma extensão do Azure DevOps para revisão de Pull Requests que aprimora a análise de código com recursos avançados. A extensão utiliza a API do Azure OpenAI para analisar diffs de código e fornecer feedback detalhado, incluindo:
- Detecção de erros específicos
- Sugestões de correção
- Métricas de qualidade de código
- Verificação de requisitos críticos
Funcionalidades Principais
1. Seleção de Tipos de Revisão
Permite selecionar quais tipos de revisão devem ser realizados:
- Qualidade de Código: Identifica code smells, duplicações e problemas de manutenibilidade
- Segurança: Detecta vulnerabilidades e práticas inseguras
- Performance: Identifica gargalos e oportunidades de otimização
- Arquitetura: Verifica aderência aos princípios SOLID e padrões de design
- Testes: Avalia testabilidade e cobertura de testes
- Documentação: Verifica comentários e documentação de API
2. Configuração de Percentil de Aceite
- Define um percentil mínimo para que o código passe na revisão
- Implementa um sistema de pontuação para cada tipo de revisão
- Calcula uma pontuação geral com base nos tipos selecionados
- Fornece feedback visual sobre a pontuação
3. Requisitos Não Tolerados
- Permite definir requisitos críticos que não devem ser tolerados
- Rejeita automaticamente o PR se requisitos críticos forem encontrados
- Fornece feedback detalhado sobre os problemas críticos
4. Detecção de Erros e Sugestões
- Identifica erros específicos no código
- Indica em quais arquivos os erros foram encontrados
- Fornece o percentual de qualidade do código
- Oferece sugestões detalhadas de como corrigir os problemas
- Executa a validação apenas quando o aprovador de pull request aprovar o PR
- Adiciona comentários detalhados ao PR com os resultados da análise
Instalação
- Instale a extensão a partir do Azure DevOps Marketplace
- Configure uma conexão de serviço para o Azure OpenAI
- Adicione a tarefa SmartCodeRevision ao seu pipeline de build
Configuração
Configurações Básicas
- API Key: Chave de API do Azure OpenAI
- Endpoint: URL do endpoint do serviço Azure OpenAI
- Máximo de tokens: Número máximo de tokens para a resposta da API
- Temperatura: Temperatura para geração de texto (0-2)
Filtros de Arquivo
- Extensões de arquivo: Lista de extensões a serem analisadas
- Arquivos a excluir: Padrões glob para arquivos a serem excluídos
Tipos de Revisão
- Tipos habilitados: Lista de tipos de revisão a serem realizados
- Pesos: Peso para cada tipo de revisão (0-100)
Limiar de Aceitação
- Limiar de aceitação: Percentil mínimo para que o código seja aprovado (0-100)
Requisitos Críticos
- Segurança como requisito crítico: Tratar problemas de segurança como críticos
- Performance como requisito crítico: Tratar problemas de performance como críticos
- Arquitetura como requisito crítico: Tratar problemas de arquitetura como críticos
Exemplos de Uso
Pipeline YAML
steps:
- task: SmartCodeRevision@1
displayName: 'Análise de Código com SmartCodeRevision'
inputs:
api_key: '$(AZURE_OPENAI_API_KEY)'
aoi_endpoint: '$(AZURE_OPENAI_ENDPOINT)'
aoi_tokenMax: '4000'
aoi_temperature: '0'
file_extensions: '.cs,.ts,.js,.py,.java'
file_excludes: 'node_modules/**,**/bin/**,**/obj/**'
enabled_review_types: 'code_quality,security,performance'
acceptance_threshold: '70'
security_critical: true
performance_critical: false
Resultados
A extensão adiciona comentários detalhados ao PR com os resultados da análise, incluindo:
- Resumo geral da análise
- Pontuação geral e por arquivo
- Detalhes dos problemas encontrados
- Sugestões de correção
- Status de aprovação/reprovação
Requisitos
- Azure DevOps Services ou Azure DevOps Server 2019+
- Acesso ao serviço Azure OpenAI
- Permissões para comentar em Pull Requests
Notas de Segurança
- A extensão requer acesso ao código fonte e permissões para comentar em PRs
- As credenciais do Azure OpenAI devem ser armazenadas de forma segura
- Recomenda-se revisar os comentários gerados pela IA antes de aplicar as sugestões
Suporte
Para problemas, sugestões ou dúvidas, abra uma issue no repositório do projeto.
Licença
Este projeto é licenciado sob a licença MIT.