Ferramenta automática que integra Jira, Azure DevOps e IA para gerar documentação técnica e code reviews de Pull Requests.
- ✅ Busca automática de issues do Jira
- ✅ Análise de Pull Requests do Azure DevOps
- ✅ Geração de documentação técnica com IA
- ✅ Code review automático detalhado
- ✅ Prompts personalizáveis
- ✅ Suporte para Claude, OpenAI GPT-4 e Ollama (local)
git clone <repository-url>
cd Hackforimpactpip install -r requirements.txtCria um ficheiro .env na raiz do projeto:
# Jira (opcional)
JIRA_URL=https://your-company.atlassian.net
JIRA_EMAIL=your-email@company.com
JIRA_API_TOKEN=your_jira_api_token
# Azure DevOps
AZDO_ORGANIZATION=your-organization
AZDO_PROJECT=your-project
AZDO_PAT=your_personal_access_token
# IA - Escolhe UMA das opções:
# Opção 1: Claude (Anthropic)
ANTHROPIC_API_KEY=your_anthropic_key
# Opção 2: OpenAI GPT-4
OPENAI_API_KEY=your_openai_key
# Opção 3: Ollama (local - não requer chave)
# Basta instalar Ollama: https://ollama.com/downloadEdita o ficheiro main.py com os teus dados:
# Dados obrigatórios do PR
REPO = "repository"
PR_ID = 14097
# Dados opcionais da issue (ou None)
ISSUE_KEY = "28446"
# O que gerar
GENERATE_DOCUMENTATION = True
GENERATE_CODE_REVIEW = Truepython main.pyISSUE_KEY = None
REPO = "MeuRepo"
PR_ID = 123GENERATE_DOCUMENTATION = True
GENERATE_CODE_REVIEW = FalseGENERATE_DOCUMENTATION = False
GENERATE_CODE_REVIEW = TrueCUSTOM_CODE_REVIEW_PROMPT = """
Analisa o código com foco em:
- Segurança
- Performance
- Boas práticas
"""
CUSTOM_DOCUMENTATION_PROMPT = """
Gera documentação no formato OpenAPI/Swagger
"""Após a execução, são criados os seguintes ficheiros:
| Ficheiro | Descrição |
|---|---|
issue_data.json |
Dados da issue do Jira |
pr_commits.json |
Commits do Pull Request |
pr_files_content.json |
Ficheiros alterados no PR |
DOCUMENTATION.md |
📝 Documentação técnica gerada por IA |
CODE_REVIEW.md |
🔍 Code review detalhado |
Cliente para integração com Jira API
- Busca issues
- Extrai summary e description
Cliente para Azure DevOps API
- Busca Pull Requests
- Extrai commits e diff de ficheiros
- Obtém linhas adicionadas
Analisador com IA (Claude, OpenAI ou Ollama)
- Gera documentação técnica
- Gera code reviews detalhados
- Suporta prompts personalizados
Orquestrador principal
- Une todos os módulos
- Executa workflow completo
- Configuração centralizada
- Acede a Atlassian API Tokens
- Cria um novo token
- Adiciona ao
.env
- Acede ao teu Azure DevOps
- User Settings → Personal Access Tokens
- Cria um token com permissões de
Code (Read) - Adiciona ao
.env
- Acede a Anthropic Console
- Cria uma API key
- Adiciona ao
.env
- Acede a OpenAI Platform
- Cria uma API key
- Adiciona ao
.env
- Instala Ollama: ollama.com/download
- Executa:
ollama pull llama3.2 - Inicia:
ollama serve - Não requer configuração no
.env
- Verifica se tens uma das API keys configuradas no
.env - Ou instala e executa Ollama localmente
- Confirma que o
JIRA_EMAILeJIRA_API_TOKENestão corretos - Verifica se o token tem permissões adequadas
- Confirma que o
AZDO_PATtem permissões de leitura de código - Verifica se o nome do repositório e PR ID estão corretos
- Certifica-te de que estás a usar a versão atualizada do código
- Os métodos internos devem ser
_generate_documentation()e_generate_code_review()
## 📋 Resumo
Implementação de autenticação OAuth2...
## 🔧 Detalhes Técnicos
- Endpoint: POST /api/auth/login
- Parâmetros: email, password
...## 1. Resumo das Alterações
- Implementado sistema de cache Redis
- Melhorada performance em 40%
## 2. Análise de Qualidade
✅ Código bem estruturado
⚠️ Falta tratamento de erro em...
## 3. Sugestões
- Adicionar testes unitários para...
...- Fork o projeto
- Cria uma branch (
git checkout -b feature/nova-funcionalidade) - Commit as mudanças (
git commit -m 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/nova-funcionalidade) - Abre um Pull Request
Este projeto está sob a licença MIT.
Desenvolvido para automatizar análise de Pull Requests e documentação técnica.
💡 Dica: Para melhores resultados, usa prompts personalizados específicos para o teu contexto de projeto!