# 🚀 Gitea Actions - StackWorkflow v2.2

Sistema completo de auditoria automatizada via CI/CD pipeline integrado com Gemini e Cursor.

## 📁 Workflows Disponíveis

### 1. ⚡ Quick Security Scan
**Arquivo**: `quick-audit.yml`
**Trigger**: Push e Pull Request
**Duração**: ~30 segundos
**Foco**: Vulnerabilidades críticas

```yaml
# Executa em:
- Push (exceto README, docs)
- Pull Request (exceto README, docs)

# Detecta:
- SQL Injection crítico
- XSS direto
- Eval() perigoso
- Secrets expostos
```

**Quality Gate**: Bloqueia se > 5 vulnerabilidades críticas

### 2. 🛡️ Automated Security & Quality Audit
**Arquivo**: `automated-audit.yml`
**Trigger**: Push/PR para main, manual, agendado
**Duração**: ~2-5 minutos
**Foco**: Análise completa com scores

```yaml
# Executa em:
- Push/PR para main/master/develop
- Agendado diário (02:00 UTC)
- Manual (workflow_dispatch)

# Análise:
- Pre-scan de vulnerabilidades
- Auditoria de segurança completa
- Auditoria de qualidade completa
- Relatório consolidado
```

**Quality Gates**:
- Segurança ≥ 70/100
- Qualidade ≥ 60/100

### 3. 📊 Manual Audit
**Arquivo**: `scheduled-audit.yml` (renomeado para manual)
**Trigger**: Manual (workflow_dispatch apenas)
**Duração**: ~3-7 minutos
**Foco**: Análise completa sob demanda

```yaml
# Executa:
- Manual: workflow_dispatch (botão Gitea)
- Via comando `/avaliar` StackWorkflow
- Sem agendamentos automáticos

# Features:
- Análise de tendências (commits, contributors)
- Métricas históricas
- Issues automáticas se score < 50
- Retenção de 90 dias
```

## 🎯 Fluxo Completo de CI/CD

```mermaid
graph TD
    A[Git Push] --> B{Tipo?}
    B -->|Push Qualquer| C[⚡ Quick Scan]
    B -->|Push Main| D[🛡️ Full Audit]
    B -->|PR| E[⚡ Quick + Comment]

    C --> F{Críticas > 5?}
    F -->|Sim| G[🔴 Block Build]
    F -->|Não| H[✅ Continue]

    D --> I[Pre-scan]
    I --> J[Security Audit]
    I --> K[Quality Audit]
    J --> L[Consolidate]
    K --> L
    L --> M[PR Comment]

    N[📊 Manual Trigger] --> O[Comprehensive Audit]
    O --> P{Score < 50?}
    P -->|Sim| Q[📋 Create Issue]
    P -->|Não| R[📊 Archive Report]
```

## 📊 Sistema de Scoring

### Segurança (0-100)
```bash
Score = 100 - (SQL_Issues × 20) - (XSS_Issues × 15) - (Secrets × 25) - (PublicEndpoints × 10)
```

### Qualidade (0-100)
```bash
Score = 100 - (LongFunctions × 5) - (NestedLoops × 10) - (TODOs × 2)
```

### Classificação
- **🟢 90-100**: Excelente
- **🟡 70-89**: Bom
- **🟠 50-69**: Médio
- **🔴 0-49**: Crítico

## 📋 Artifacts Gerados

### Quick Scan
- `quick-scan-report`: Relatório rápido (7 dias)

### Full Audit
- `security-audit-report`: Análise de segurança (30 dias)
- `quality-audit-report`: Análise de qualidade (30 dias)
- `consolidated-audit-report`: Relatório consolidado (90 dias)

### Manual Audit
- `manual-audit-report-[run_number]`: Análise completa com tendências (90 dias)

## 🔧 Configuração

### Variáveis de Ambiente
```yaml
# .gitea/workflows/automated-audit.yml
env:
  MIN_SECURITY_SCORE: 70    # Mínimo segurança
  MIN_QUALITY_SCORE: 60     # Mínimo qualidade
  REPORTS_DIR: reports       # Diretório relatórios

# .gitea/workflows/quick-audit.yml
env:
  CRITICAL_THRESHOLD: 5      # Máximo vulnerabilidades críticas
```

### Personalização por Projeto
Edite os thresholds nos workflows conforme necessário:

```yaml
# Para projetos mais restritivos
MIN_SECURITY_SCORE: 90
CRITICAL_THRESHOLD: 0

# Para projetos em desenvolvimento
MIN_SECURITY_SCORE: 50
CRITICAL_THRESHOLD: 10
```

## 🎯 Integração com StackWorkflow

### Fluxo Recomendado
1. **Push código** → Actions executam automaticamente
2. **Review relatórios** nos artifacts
3. **Se aprovado** → Merge para main
4. **Se reprovado** → Executar `/avaliar` local para correções
5. **Push correções** → Re-executar Actions

### Comandos Locais
```bash
# Após receber relatório de falha
/avaliar  # Lê relatórios + implementa correções

# Para auditoria manual
cd .gemini && gemini
> /avaliar

# Cursor audit
Ctrl+Alt+A
```

## 📈 Monitorização e Tendências

### Métricas Tracked
- **Scores históricos** (segurança/qualidade)
- **Vulnerabilidades por tipo** ao longo do tempo
- **Atividade de desenvolvimento** (commits, contributors)
- **Tempo de resolução** de issues críticas

### Relatórios de Tendências
- **Manual**: Execução sob demanda via `/avaliar`
- **On-Demand**: Análise quando necessário
- **Triggered**: Baseado em eventos de desenvolvimento

## 🚨 Alertas e Notificações

### Issues Automáticas
Criadas quando score manual < 50:
- **Labels**: `security`, `quality`, `critical`, `automated-audit`
- **Assignees**: Automático baseado em CODEOWNERS
- **Priority**: Alta (críticas)

### PR Comments
- **Quick scan**: Status rápido com breakdown
- **Full audit**: Análise completa com next steps
- **Links**: Diretos para artifacts

## 🔐 Segurança das Actions

### Permissões Mínimas
```yaml
permissions:
  contents: read       # Ler código
  pull-requests: write # Comentar PRs
  issues: write        # Criar issues críticas
```

### Dados Sensíveis
- **Secrets não expostos**: Apenas nomes de arquivos, não conteúdo
- **Logs sanitizados**: Credenciais mascaradas automaticamente
- **Artifacts seguros**: Apenas relatórios, não código

## ⚙️ Troubleshooting

### Actions Falhando
```bash
# Verificar logs específicos
1. Ir para Actions tab no Gitea
2. Selecionar execução falhada
3. Expandir step com erro
4. Verificar output detalhado
```

### Falsos Positivos
```bash
# Ajustar thresholds temporariamente
MIN_SECURITY_SCORE: 50  # Baixar temporariamente
CRITICAL_THRESHOLD: 10  # Aumentar temporariamente
```

### Performance Issues
```bash
# Excluir pastas pesadas do scan
! -path "./large_folder/*"
! -path "./data/*"
! -path "./uploads/*"
```

## 🎉 Melhores Práticas

### Para Desenvolvedores
1. **Executar quick scan local** antes de push
2. **Revisar artifacts** antes de mergear PRs
3. **Corrigir vulnerabilidades críticas** imediatamente
4. **Usar `/avaliar`** para correções automáticas

### Para DevOps
1. **Executar audits manuais** quando necessário via `/avaliar`
2. **Ajustar thresholds** baseado no projeto
3. **Configurar notificações** para issues críticas
4. **Arquivar relatórios** históricos importantes

---
**Powered by**: StackWorkflow v2.2 Adversarial System
**Integration**: Gitea Actions + Gemini CLI + Cursor AI
**Documentation**: Complete workflow automation