# REPO-INTEGRATIONS-CORE O `repo-integrations-core` é o serviço responsável por gerenciar o ciclo de vida de integrações com provedores de controle de versão (Git). ## 📋 Visão Geral Este serviço atua como um middleware inteligente entre a plataforma e provedores externos (GitHub, GitLab, Bitbucket), normalizando fluxos de autenticação (OAuth) e ingestão de eventos (Webhooks). ### Arquitetura ```mermaid graph LR User[Usuário] -->|OAuth Flow| API[Repo Integrations] API -->|Exchange Code| GitHub[GitHub API] API -->|Store Token| DB[(Encrypted DB)] GitHub -->|Webhook| API API -->|Normalize| EventBus[Event Bus / Queue] ``` ## 🚀 Estrutura do Projeto O projeto é escrito em **Go** e estrutura-se da seguinte forma: | Diretório | Descrição | | :--- | :--- | | `cmd/api` | Entrypoint. | | `internal/oauth` | Fluxos de autenticação. | | `internal/webhooks` | Processamento e validação de webhooks. | | `internal/provider` | Abstrações para diferentes providers (GitHub, GitLab). | ## 🛠️ Tecnologias e Otimizações - **Linguagem**: Go 1.23. - **Database**: PostgreSQL (tokens criptografados). - **Segurança**: Criptografia AES-GCM para tokens de acesso. - **Containerização**: - Base `gcr.io/distroless/static:nonroot`. - Build estático. ## 💻 Como Executar ### Docker (Recomendado) ```bash # Build docker build -t repo-integrations-core . # Run docker run -p 8080:8080 --env-file .env repo-integrations-core ``` Disponível na porta `8080`. ### Desenvolvimento 1. **Setup**: ```bash cp .env.example .env go mod tidy ``` 2. **App GitHub**: Você precisará criar um GitHub App e configurar `GITHUB_CLIENT_ID` e `GITHUB_SECRET`. 3. **Executar**: ```bash go run ./cmd/api ``` ## 🔧 Detalhes do Dockerfile O `Dockerfile` segue o padrão de otimização da plataforma: - **Builder**: `golang:1.23-alpine`. - **Runtime**: `distroless/static` (sem shell, non-root). - **Compilação**: Flags `-w -s` para redução de binário.