10 min leitura • Guide 746 of 877
Integração de Controle de Versão com GitScrum
Desenvolvimento e gerenciamento de projetos devem estar conectados, não isolados. O GitScrum integra com sistemas de controle de versão para fornecer rastreabilidade do código à tarefa.
Benefícios da Integração
Por Que Conectar VCS ao GitScrum
VALOR DA INTEGRAÇÃO DE CONTROLE DE VERSÃO:
┌─────────────────────────────────────────────────────────────┐
│ │
│ SEM INTEGRAÇÃO: │
│ │
│ "Qual código mudou para essa feature?" │
│ → Buscar através dos commits manualmente │
│ │
│ "Essa tarefa está realmente pronta?" │
│ → Perguntar ao desenvolvedor, checar repo manualmente │
│ │
│ "Quem pode revisar isso?" │
│ → Tarefa no GitScrum, PR no GitHub, sem conexão │
│ │
│ "Qual o status desse PR?" │
│ → Checar GitHub, depois atualizar GitScrum manualmente │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ COM INTEGRAÇÃO: │
│ │
│ RASTREABILIDADE: │
│ Tarefa ↔ Branch ↔ Commits ↔ PR ↔ Deploy │
│ Trilha de auditoria completa │
│ │
│ AUTOMAÇÃO: │
│ PR aberto → Tarefa move para "Em Review" │
│ PR mergeado → Tarefa move para "Done" │
│ │
│ CONTEXTO: │
│ Da tarefa, veja todo código relacionado │
│ Do PR, veja contexto e requisitos da tarefa │
│ │
│ VISIBILIDADE: │
│ Progresso real baseado no estado atual do código │
│ Não apenas o que pessoas dizem que fizeram │
└─────────────────────────────────────────────────────────────┘
Configurando Integração
Integração com GitHub
CONECTANDO GITHUB:
┌─────────────────────────────────────────────────────────────┐
│ │
│ PASSOS DE SETUP: │
│ │
│ 1. Vá para GitScrum Settings → Integrations │
│ 2. Selecione GitHub │
│ 3. Autorize GitScrum a acessar seus repos │
│ 4. Selecione repositórios para conectar │
│ 5. Configure regras de automação │
│ │
│ OPÇÕES DE AUTOMAÇÃO: │
│ │
│ ☑ Vincular commits contendo task ID │
│ ☑ Vincular branches contendo task ID │
│ ☑ Vincular PRs contendo task ID │
│ ☑ Mover tarefa para "In Review" quando PR aberto │
│ ☑ Mover tarefa para "Done" quando PR mergeado │
│ ☐ Criar tarefa a partir de GitHub issue │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ PADRÕES DE TASK ID: │
│ │
│ Reconhecido em: │
│ • Mensagens de commit: "fix: resolve login issue PROJ-123"│
│ • Nomes de branch: feature/PROJ-123-add-export │
│ • Títulos de PR: "[PROJ-123] Add export feature" │
│ • Corpo do PR: "Closes PROJ-123" │
│ │
│ Formato: PROJETO-NÚMERO (ex: PROJ-123, API-456) │
└─────────────────────────────────────────────────────────────┘
Convenção de Nomenclatura de Branch
BOAS PRÁTICAS DE NOMENCLATURA DE BRANCH:
┌─────────────────────────────────────────────────────────────┐
│ │
│ FORMATO: │
│ tipo/TASK-ID-descricao-curta │
│ │
│ EXEMPLOS: │
│ feature/PROJ-123-add-export-csv │
│ bugfix/PROJ-456-fix-login-timeout │
│ hotfix/PROJ-789-security-patch │
│ chore/PROJ-101-update-dependencies │
│ │
│ TIPOS: │
│ feature/ - Nova funcionalidade │
│ bugfix/ - Correção de bug │
│ hotfix/ - Correção urgente de produção │
│ chore/ - Tarefa de manutenção │
│ docs/ - Documentação │
│ refactor/ - Refatoração de código │
│ │
│ VINCULAÇÃO AUTOMÁTICA GITSCRUM: │
│ │
│ Branch: feature/PROJ-123-add-export │
│ ↓ │
│ Automaticamente vincula à tarefa PROJ-123 │
│ ↓ │
│ Visível na tarefa: "Branch criado" │
│ ↓ │
│ PR linkado automaticamente quando criado │
└─────────────────────────────────────────────────────────────┘
Integração com GitLab
CONECTANDO GITLAB:
┌─────────────────────────────────────────────────────────────┐
│ │
│ PASSOS DE SETUP: │
│ │
│ 1. Vá para GitScrum Settings → Integrations │
│ 2. Selecione GitLab │
│ 3. Gere um Personal Access Token no GitLab │
│ 4. Cole o token no GitScrum │
│ 5. Selecione projetos para conectar │
│ 6. Configure webhooks (automático ou manual) │
│ │
│ PERMISSÕES NECESSÁRIAS: │
│ │
│ Token precisa de: │
│ ├── api (acesso completo à API) │
│ ├── read_repository │
│ ├── write_repository (para status) │
│ └── read_user │
│ │
│ CONFIGURAÇÃO DE WEBHOOK: │
│ │
│ GitLab Project → Settings → Webhooks │
│ URL: [fornecida pelo GitScrum] │
│ Triggers: │
│ ├── Push events │
│ ├── Merge request events │
│ └── Pipeline events (opcional) │
└─────────────────────────────────────────────────────────────┘
Workflow Integrado
Fluxo Completo de Desenvolvimento
WORKFLOW INTEGRADO:
┌─────────────────────────────────────────────────────────────┐
│ │
│ 1. CRIAÇÃO DA TAREFA: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ PROJ-123: Implementar exportação CSV ││
│ │ Status: To Do ││
│ │ Assignee: Maria ││
│ └─────────────────────────────────────────────────────────┘│
│ ↓ │
│ 2. CRIAR BRANCH: │
│ git checkout -b feature/PROJ-123-export-csv │
│ │
│ → GitScrum: "Branch criado para PROJ-123" │
│ → Status automaticamente: In Progress │
│ ↓ │
│ 3. DESENVOLVIMENTO E COMMITS: │
│ git commit -m "feat: add CSV export PROJ-123" │
│ git commit -m "test: add export tests PROJ-123" │
│ │
│ → GitScrum: Commits listados na tarefa │
│ → Timeline atualizada automaticamente │
│ ↓ │
│ 4. ABRIR PR: │
│ PR Title: [PROJ-123] Add CSV export functionality │
│ PR Body: Closes PROJ-123 │
│ │
│ → GitScrum: "PR #45 aberto para PROJ-123" │
│ → Status automaticamente: In Review │
│ ↓ │
│ 5. CODE REVIEW: │
│ Reviewers comentam no GitHub │
│ │
│ → GitScrum: Link direto para o PR │
│ → Contexto disponível para reviewer │
│ ↓ │
│ 6. MERGE: │
│ PR mergeado na main │
│ │
│ → GitScrum: "PR #45 mergeado" │
│ → Status automaticamente: Done │
│ → Tempo de ciclo calculado │
└─────────────────────────────────────────────────────────────┘
Visibilidade para Todo o Time
O QUE CADA PESSOA VÊ
════════════════════
DESENVOLVEDOR:
─────────────────────────────────────
Na tarefa GitScrum:
├── Requisitos claros
├── Critérios de aceitação
├── Histórico de decisões
├── Seus commits listados
├── Status do PR
└── Feedback do review
No GitHub/GitLab:
├── Link de volta para tarefa
├── Contexto do que implementar
├── Quem está esperando
└── Definition of Done
PRODUCT OWNER:
─────────────────────────────────────
No GitScrum:
├── Status real (baseado em código)
├── Quem está trabalhando no que
├── Progresso do sprint
├── O que foi deployado
└── Histórico completo
Não precisa perguntar:
├── "Está pronto?"
├── "Quando termina?"
├── "Quem está fazendo?"
└── Tudo visível no board
TECH LEAD:
─────────────────────────────────────
Visão de:
├── PRs pendentes
├── Tarefas bloqueadas
├── Cycle time por tarefa
├── Throughput do time
├── Código linkado para auditoria
└── Padrões de desenvolvimento
Configurações Avançadas
Automações Customizadas
REGRAS DE AUTOMAÇÃO
═══════════════════
GATILHOS DISPONÍVEIS:
─────────────────────────────────────
├── Commit pushed
├── Branch created
├── PR opened
├── PR approved
├── PR changes requested
├── PR merged
├── PR closed (sem merge)
└── Build status changed
AÇÕES DISPONÍVEIS:
─────────────────────────────────────
├── Mover tarefa para coluna
├── Adicionar label
├── Remover label
├── Atribuir a pessoa
├── Adicionar comentário
├── Enviar notificação
└── Atualizar campo customizado
EXEMPLOS DE REGRAS:
─────────────────────────────────────
Regra 1:
SE: PR opened
ENTÃO: Mover tarefa para "In Review"
Regra 2:
SE: PR changes requested
ENTÃO: Mover tarefa de volta para "In Progress"
Adicionar label "needs-revision"
Regra 3:
SE: PR merged para main
ENTÃO: Mover tarefa para "Done"
Remover todas as labels de WIP
Regra 4:
SE: Build failed
ENTÃO: Adicionar label "build-failed"
Notificar assignee
Múltiplos Repositórios
GERENCIANDO MÚLTIPLOS REPOS
═══════════════════════════
CENÁRIO:
─────────────────────────────────────
Projeto com:
├── repo-frontend (React)
├── repo-backend (Node.js)
├── repo-mobile (React Native)
└── repo-infra (Terraform)
CONFIGURAÇÃO:
─────────────────────────────────────
GitScrum Project → Integrations:
├── Conectar todos os repos
├── Mesmo padrão de task ID
├── Automações por repo se necessário
└── Visão unificada na tarefa
USO:
─────────────────────────────────────
Tarefa PROJ-123 pode ter:
├── Branch no frontend
├── Branch no backend
├── PR no frontend
├── PR no backend
└── Todos listados na mesma tarefa
VISIBILIDADE:
─────────────────────────────────────
Na tarefa GitScrum:
┌─────────────────────────────────┐
│ PROJ-123: Nova funcionalidade │
│ │
│ Branches: │
│ • frontend: feature/PROJ-123 │
│ • backend: feature/PROJ-123 │
│ │
│ Pull Requests: │
│ • frontend PR #45 ✓ merged │
│ • backend PR #89 🔄 in review │
│ │
│ Status: Aguardando backend PR │
└─────────────────────────────────┘
Métricas e Relatórios
Métricas de Desenvolvimento
MÉTRICAS DA INTEGRAÇÃO
══════════════════════
CYCLE TIME:
─────────────────────────────────────
Tarefa criada → PR mergeado
├── Dados reais do Git
├── Não estimativa
├── Por tarefa/tipo/desenvolvedor
└── Tendência ao longo do tempo
LEAD TIME:
─────────────────────────────────────
Backlog → Produção
├── Inclui tempo de espera
├── Visibilidade de gargalos
├── Comparação entre sprints
└── Identificar melhorias
PR METRICS:
─────────────────────────────────────
├── Tempo até primeira review
├── Tempo até merge
├── Número de revisões
├── PRs pendentes por pessoa
└── Tamanho médio de PR
DEPLOYMENT FREQUENCY:
─────────────────────────────────────
Se integrado com CI/CD:
├── Deploys por dia/semana
├── Taxa de sucesso
├── Tempo de rollback
└── Features deployadas
Dashboard de Desenvolvimento
VISUALIZAÇÃO INTEGRADA
══════════════════════
SPRINT VIEW:
─────────────────────────────────────
┌───────────────────────────────────────────────────────┐
│ Sprint 15 - Development Status │
├───────────────────────────────────────────────────────┤
│ │
│ Tasks: 12 total │
│ ■■■■■■■■□□□□ 8 Done 3 In Progress 1 To Do │
│ │
│ Pull Requests: │
│ • 5 merged │
│ • 2 in review (Maria, João) │
│ • 1 changes requested (Carlos) │
│ │
│ Average Cycle Time: 2.3 days │
│ PRs Waiting Review: 2 (> 24h: 0) │
│ │
│ Commits This Sprint: 47 │
│ Top Contributors: Maria (18), João (15), Carlos (14)│
└───────────────────────────────────────────────────────┘
DEVELOPER VIEW:
─────────────────────────────────────
┌─────────────────────────────────┐
│ Maria - Sprint 15 │
├─────────────────────────────────┤
│ Tasks: 4 │
│ ├── 2 Done │
│ ├── 1 In Review (PR #45) │
│ └── 1 In Progress │
│ │
│ PRs: 3 created, 2 merged │
│ Reviews: 5 completed │
│ Commits: 18 │
│ Avg cycle time: 1.8 days │
└─────────────────────────────────┘
Solução de Problemas
Problemas Comuns
TROUBLESHOOTING
═══════════════
COMMITS NÃO LINKANDO:
─────────────────────────────────────
Verificar:
├── Task ID no formato correto?
├── Integração ativa?
├── Repo conectado?
├── Webhook configurado?
└── Permissões corretas?
Solução:
├── Conferir padrão: PROJ-123
├── Reconectar integração
├── Verificar logs de webhook
└── Testar com novo commit
PR NÃO MOVENDO TAREFA:
─────────────────────────────────────
Verificar:
├── Task ID no título ou body?
├── Automação configurada?
├── Coluna destino existe?
├── Tarefa pode mover para lá?
└── Permissões de webhook?
Solução:
├── Adicionar ID no PR
├── Verificar regras de automação
├── Mover manualmente se urgente
└── Debug webhook response
DUPLICAÇÃO DE EVENTOS:
─────────────────────────────────────
Causa: Múltiplos webhooks
Solução:
├── Remover webhooks duplicados
├── Um webhook por repo
├── Verificar GitLab/GitHub settings
└── Limpar e reconfigurar