Sistema completo e robusto para auditoria de dependências, análise de código, monitoramento de pipelines, detecção de vulnerabilidades e compliance desenvolvido em Java 17 com Spring Boot 3.
- 7 Linguagens Suportadas: Python, Node.js, Java, C#, Go, Rust e PHP
- Múltiplos Gerenciadores: pip, npm, yarn, maven, gradle, nuget, go mod, cargo, composer
- Detecção Automática: Identifica arquivos de dependências automaticamente
- Análise Transitiva: Mapeia dependências indiretas com árvores hierárquicas
- Integração Completa: Usa Trivy CLI para detecção de vulnerabilidades
- Classificação de Severidade: Critical, High, Medium, Low
- Informações Detalhadas: CVE, CVSS Score, Exploit Maturity, Referências
- Relatórios Avançados: PDF, JSON, CSV com análises detalhadas
- Classificação Inteligente: Open source, proprietárias, restritivas e desconhecidas
- Validação de Compliance: Verifica compatibilidade de licenças
- Base de Dados Atualizada: Licenças SPDX e customizadas
- Verificação de Versões: Compara versões atuais com as mais recentes
- Múltiplos Registros: Consulta APIs de todos os gerenciadores de pacotes
- Classificação Inteligente: Distingue entre obsoletas e desatualizadas
- 4 Plataformas: Slack, Discord, Microsoft Teams e APIs genéricas
- 8 Eventos: Início, conclusão, falha, vulnerabilidades, licenças proprietárias, etc.
- Formatação Inteligente: Mensagens otimizadas para cada plataforma
- Retry Automático: Sistema robusto de tentativas e recuperação
- Coleta Automática: Monitoramento em tempo real de execuções de pipeline
- Métricas de Performance: Tempo médio de build, análise estatística (P95, P99)
- Métricas de Qualidade: Taxa de sucesso, análise de falhas, estabilidade
- Score de Saúde: Pontuação geral (0-100) com alertas e recomendações
- Endpoints RESTful: CRUD completo para todos os recursos
- Documentação Automática: Swagger/OpenAPI com documentação interativa
- Autenticação: Suporte a API Key e JWT
- Rate Limiting: Proteção contra abuso com limites configuráveis
- Paginação: Suporte a paginação em todas as listagens
- Java: 17 ou superior
- Maven: 3.8+ ou Gradle 8+
- Memória: 1GB RAM
- Disco: 500MB para instalação
- Rede: Conexão com GitHub API
- Java: 21+
- Memória: 4GB+ RAM
- Disco: 2GB+ para cache e logs
- Banco de Dados: PostgreSQL 15+
- GitHub: Token de acesso (obrigatório)
- Trivy CLI: Para análise de vulnerabilidades (opcional mas recomendado)
- PostgreSQL: Para ambiente de produção (opcional, H2 em memória por padrão)
# Clone o repositório
git clone https://github.com/seu-usuario/code-compliance-java.git
cd code-compliance-java
# Configure as variáveis de ambiente
cp application.yml.example application.yml
# Edite application.yml com suas configurações
# Compile o projeto
mvn clean package
# Execute a aplicação
mvn spring-boot:run# Clone o repositório
git clone https://github.com/seu-usuario/code-compliance-java.git
cd code-compliance-java
# Configure as variáveis de ambiente
cp application.yml.example application.yml
# Edite application.yml com suas configurações
# Construa a imagem Docker
docker build -t code-compliance-java .
# Execute o container
docker run -p 8080:8080 -v $(pwd)/application.yml:/app/application.yml code-compliance-java# Clone o repositório
git clone https://github.com/seu-usuario/code-compliance-java.git
cd code-compliance-java
# Configure as variáveis de ambiente
cp application.yml.example application.yml
# Edite application.yml com suas configurações
# Compile o projeto
./gradlew build
# Execute a aplicação
./gradlew bootRun# application.yml
app:
github:
token: seu_token_aqui
organization: sua_organizacao
base-url: https://api.github.com
trivy:
enabled: true
severity-threshold: LOW
timeout: 300
security:
jwt:
secret: mySecretKey
expiration: 86400000
api-key:
key: your_api_key# Via Maven
mvn spring-boot:run
# Via Gradle
./gradlew bootRun
# Via JAR
java -jar target/code-compliance-java-1.0.0.jar# Health check
curl http://localhost:8080/api/v1/system/health
# Documentação Swagger
open http://localhost:8080/swagger-ui.html
# Auditoria de repositório
curl -X POST -H "X-API-Key: your_api_key" \
"http://localhost:8080/api/v1/repositories/audit?owner=owner&name=repo"
# Listar repositórios
curl -H "X-API-Key: your_api_key" \
"http://localhost:8080/api/v1/repositories"
# Listar dependências
curl -H "X-API-Key: your_api_key" \
"http://localhost:8080/api/v1/dependencies"
# Listar vulnerabilidades
curl -H "X-API-Key: your_api_key" \
"http://localhost:8080/api/v1/vulnerabilities"GET /repositories- Listar repositóriosGET /repositories/{id}- Obter repositório específicoPOST /repositories/{id}/audit- Auditar repositórioPOST /repositories/audit- Auditar por nome e proprietárioPOST /repositories/audit/organization/{organization}- Auditar organizaçãoDELETE /repositories/{id}- Deletar repositório
GET /dependencies- Listar dependênciasGET /dependencies/{id}- Obter dependência específicaGET /dependencies/repository/{repositoryId}- Dependências por repositórioGET /dependencies/vulnerable- Dependências vulneráveisGET /dependencies/obsolete- Dependências obsoletasGET /dependencies/outdated- Dependências desatualizadas
GET /vulnerabilities- Listar vulnerabilidadesGET /vulnerabilities/{id}- Obter vulnerabilidade específicaGET /vulnerabilities/cve/{cveId}- Buscar por CVEGET /vulnerabilities/repository/{repositoryId}- Vulnerabilidades por repositórioGET /vulnerabilities/severity/{severity}- Filtrar por severidadePOST /vulnerabilities/test/trivy- Testar Trivy em projetoPOST /vulnerabilities/install-trivy- Instalar Trivy
GET /audit-reports- Listar relatóriosGET /audit-reports/{id}- Obter relatório específicoGET /audit-reports/repository/{repositoryId}- Relatórios por repositórioGET /audit-reports/recent- Relatórios mais recentesGET /audit-reports/best-scores- Melhores scoresGET /audit-reports/worst-scores- Piores scores
GET /webhooks- Listar eventos de webhookGET /webhooks/{id}- Obter evento específicoGET /webhooks/failed- Eventos falhadosGET /webhooks/pending- Eventos pendentesPOST /webhooks/send/slack- Enviar webhook SlackPOST /webhooks/send/discord- Enviar webhook DiscordPOST /webhooks/send/teams- Enviar webhook TeamsPOST /webhooks/retry-failed- Retry de webhooks falhados
GET /system/health- Health checkGET /system/info- Informações do sistemaGET /system/stats- Estatísticas do sistemaGET /system/config- Configurações do sistemaGET /system/metrics- Métricas de performanceGET /system/github/connectivity- Testar conectividade GitHubGET /system/trivy/status- Status do TrivyPOST /system/trivy/install- Instalar TrivyPOST /system/cache/clear- Limpar cache
code-compliance-java/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── compliance/
│ │ │ ├── CodeComplianceApplication.java
│ │ │ ├── controller/
│ │ │ │ ├── RepositoryController.java
│ │ │ │ ├── DependencyController.java
│ │ │ │ ├── VulnerabilityController.java
│ │ │ │ ├── AuditReportController.java
│ │ │ │ ├── WebhookController.java
│ │ │ │ └── SystemController.java
│ │ │ ├── model/
│ │ │ │ ├── Repository.java
│ │ │ │ ├── Dependency.java
│ │ │ │ ├── Vulnerability.java
│ │ │ │ ├── AuditReport.java
│ │ │ │ ├── WebhookEvent.java
│ │ │ │ ├── PipelineExecution.java
│ │ │ │ ├── CodeAnalysis.java
│ │ │ │ ├── CodeIssue.java
│ │ │ │ ├── Ticket.java
│ │ │ │ ├── MlAnomaly.java
│ │ │ │ └── LicenseCompliance.java
│ │ │ ├── repository/
│ │ │ │ ├── RepositoryRepository.java
│ │ │ │ ├── DependencyRepository.java
│ │ │ │ ├── VulnerabilityRepository.java
│ │ │ │ ├── AuditReportRepository.java
│ │ │ │ ├── WebhookEventRepository.java
│ │ │ │ ├── PipelineExecutionRepository.java
│ │ │ │ └── LicenseComplianceRepository.java
│ │ │ └── service/
│ │ │ ├── AuditService.java
│ │ │ ├── GitHubService.java
│ │ │ ├── DependencyAnalyzerService.java
│ │ │ ├── VulnerabilityAnalyzerService.java
│ │ │ ├── LicenseAnalyzerService.java
│ │ │ ├── ObsoleteDetectorService.java
│ │ │ └── WebhookService.java
│ │ └── resources/
│ │ ├── application.yml
│ │ └── application-prod.yml
│ └── test/
│ └── java/
│ └── com/
│ └── compliance/
│ └── CodeComplianceApplicationTests.java
├── pom.xml
├── build.gradle
├── Dockerfile
├── docker-compose.yml
└── README-JAVA.md
- Java 17: Linguagem de programação
- Spring Boot 3.2.0: Framework principal
- Spring Data JPA: Acesso a dados
- Spring Web: API REST
- Spring Security: Segurança e autenticação
- Spring Actuator: Monitoramento e métricas
- Spring Mail: Envio de emails
- Spring Cache: Cache de dados
- Spring Quartz: Agendamento de tarefas
- H2 Database: Banco de dados em memória (desenvolvimento)
- PostgreSQL: Banco de dados (produção)
- GitHub API: Integração com GitHub
- Trivy: Análise de vulnerabilidades
- Swagger/OpenAPI: Documentação da API
- Apache POI: Geração de relatórios Excel
- iText PDF: Geração de relatórios PDF
- Jackson: Processamento JSON
- JWT: Autenticação
- Maven: Gerenciamento de dependências
- API Key: Autenticação por chave de API
- JWT: Tokens de autenticação
- Rate Limiting: Proteção contra abuso
- CORS: Controle de origens
- Validação: Validação automática de dados
- LGPD: Conformidade com lei de proteção de dados
- GDPR: Adequação ao regulamento europeu
- SOX: Suporte a auditoria financeira
- ISO 27001: Alinhamento com padrões de segurança
- Fork o repositório
- Crie uma branch para sua feature (
git checkout -b feature/nova-funcionalidade) - Commit suas mudanças (
git commit -am 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/nova-funcionalidade) - Abra um Pull Request
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
Para suporte e dúvidas:
- Abra uma issue no GitHub
- Entre em contato pelo email: compliance@example.com
- Consulte a documentação completa em: https://docs.example.com
- Interface web para visualização
- Dashboard em tempo real
- Integração com SonarQube
- Suporte a mais linguagens de programação
- Machine Learning para detecção de anomalias
- Análise de código em tempo real
- Integração com mais ferramentas de CI/CD
- SDK para integrações
- Marketplace de plugins
- Kubernetes native
- Multi-tenancy
- Advanced analytics
- Spring Framework Team
- GitHub API Team
- Trivy Team
- Open Source Community
Desenvolvido com ❤️ em Java com Spring Boot