Presença
Registro de presença na sessão com o código informado pelo instrutor.
coleta fechada
Híbrido · 20 h · 07/12/2026 a 11/12/2026 · Instrutor: Gustavo Costa
| Sessão | Data | Horário | Módulos |
|---|---|---|---|
| s1 | 07/12/2026 | 09:00–13:00 | Plataforma GitLab: organização, visibilidade e papéis; Repositório Git na plataforma GitLab: branches, tags e proteção |
| s2 | 08/12/2026 | 09:00–13:00 | Merge requests e revisão de código; Fundamentos de pipelines GitLab CI/CD |
| s3 | 09/12/2026 | 09:00–13:00 | Fundamentos de pipelines GitLab CI/CD; Variáveis, artefatos, cache e relatórios de teste |
| s4 | 10/12/2026 | 09:00–13:00 | Controle de execução: rules, workflow, needs e paralelismo; Identidade, tokens e segredos em CI/CD |
| oficina | 11/12/2026 | 09:00–13:00 | Merge requests e revisão de código; Fundamentos de pipelines GitLab CI/CD |
Registro de presença na sessão com o código informado pelo instrutor.
coleta fechada
Questionário antes do primeiro módulo (mede o conhecimento inicial).
coleta fechada
O mesmo questionário ao final da turma (mede a evolução).
coleta fechada
Pesquisa anônima sobre a turma, o instrutor e os laboratórios.
coleta fechada
| Tópico | Tier | Fonte |
|---|---|---|
| Grupos, subgrupos (até 20 níveis de aninhamento) e projetos | Free | documentação |
| Visibilidade private, internal e public; visibilidade do projeto igual ou mais restritiva que a do grupo pai | Free | documentação |
| Visibilidade internal disponível apenas em GitLab Self-Managed e GitLab Dedicated | Free | documentação |
| Papéis padrão (Minimal Access, Guest, Planner, Reporter, Developer, Maintainer, Owner) e prevalência do papel mais alto na herança | Free | documentação |
| Papel Security Manager (beta desde 18.11) | Free | documentação |
| Membros de projeto e de grupo, membros herdados e diretos | Free | documentação |
Pré-requisitos: Plataforma GitLab: organização, visibilidade e papéis
| Tópico | Tier | Fonte |
|---|---|---|
| Branch padrão protegida por padrão; regras em Settings > Repository > Branch rules | Free | documentação |
| Allowed to merge, Allowed to push and merge (inclusive No one), Allowed to force push, regras com curinga | Free | documentação |
| Branches protegidas no nível de grupo; grupos e usuários individuais nas listas de permissão | Premium | documentação |
| Tags protegidas: controle de criação e bloqueio de atualização e exclusão | Free | documentação |
| Push rules (pre-receive hooks): expressões RE2 até 511 caracteres, mensagem de commit, autor, commits assinados | Premium | documentação |
| Branches: criação, comparação e exclusão | Free | documentação |
Pré-requisitos: Repositório Git na plataforma GitLab: branches, tags e proteção
| Tópico | Tier | Fonte |
|---|---|---|
| Padrão de fechamento (Closes, Fixes, Resolves, Implements) em commit ou descrição do MR | Free | documentação |
| Métodos de merge: merge commit, merge commit com histórico semilinear, fast-forward; squash | Free | documentação |
| Auto-merge e verificação Pipelines must succeed | Free | documentação |
| Aprovações opcionais no Free (papel Developer ou superior) | Free | documentação |
| Regras de aprovação obrigatórias e aprovações em nível de grupo e instância | Premium | documentação |
| Code Owners: arquivo CODEOWNERS (raiz, docs/ ou .gitlab/) e aprovação obrigatória em branch protegida | Premium | documentação |
| Configurações de aprovação: impedir aprovação pelo autor (padrão), por quem adicionou commits, remover aprovações em novos commits | Premium | documentação |
Pré-requisitos: Repositório Git na plataforma GitLab: branches, tags e proteção
| Tópico | Tier | Fonte |
|---|---|---|
| Estrutura do .gitlab-ci.yml: palavras-chave globais (default, include, stages, variables, workflow) e de job | Free | documentação |
| Stages padrão (.pre, build, test, deploy, .post); job sem stage vai para test | Free | documentação |
| Jobs, script, before_script, after_script, image, jobs ocultos iniciados por ponto | Free | documentação |
| when (on_success padrão, on_failure, always, manual, delayed, never) e allow_failure | Free | documentação |
| Pipeline editor e validação de configuração (CI Lint) | Free | documentação |
| Tipos e estados de pipeline | Free | documentação |
Pré-requisitos: Fundamentos de pipelines GitLab CI/CD
| Tópico | Tier | Fonte |
|---|---|---|
| Variáveis no .gitlab-ci.yml e na interface (projeto, grupo, instância); variáveis predefinidas | Free | documentação |
| Visibilidade Visible, Masked (padrão) e Masked and hidden; requisitos de mascaramento (linha única, 8 caracteres ou mais) | Free | documentação |
| Variáveis protegidas (apenas branches e tags protegidas) e variáveis do tipo arquivo | Free | documentação |
| Precedência de variáveis e restrição de pipeline variables por papel mínimo | Free | documentação |
| Artefatos: paths, expire_in (padrão da instância, 30 dias), manter artefatos mais recentes, dependencies | Free | documentação |
| Cache: key, fallback keys, policy pull/push; cache x artefatos; branches protegidas e não protegidas não compartilham cache por padrão | Free | documentação |
| Relatórios de testes unitários JUnit (arquivo até 30 MB, total até 100 MB por job) | Free | documentação |
| Cobertura: palavra-chave coverage (percentual) e artifacts:reports:coverage_report (Cobertura ou JaCoCo) | Free | documentação |
Pré-requisitos: Fundamentos de pipelines GitLab CI/CD
| Tópico | Tier | Fonte |
|---|---|---|
| rules: avaliação em ordem, primeira correspondência, job fora do pipeline sem correspondência | Free | documentação |
| workflow:rules e CI_PIPELINE_SOURCE == merge_request_event | Free | documentação |
| needs (até 50 jobs por padrão), needs: [] e grafo acíclico dirigido | Free | documentação |
| parallel (1 a 200) e parallel:matrix (até 200 permutações) | Free | documentação |
| interruptible e auto-cancelamento de pipelines redundantes; retry e timeout | Free | documentação |
Pré-requisitos: Fundamentos de pipelines GitLab CI/CD
| Tópico | Tier | Fonte |
|---|---|---|
| Prefixos de token (glpat-, glrt-, glcbt-, gldt-, glptt-, glagent-, entre outros) | Free | documentação |
| Personal access tokens: expiração padrão de 365 dias e limite máximo configurável pelo administrador | Free | documentação |
| CI/CD job token e allowlist de projetos e grupos | Free | documentação |
| ID tokens (JWT) com id_tokens e claim aud | Free | documentação |
| Segredos do HashiCorp Vault em jobs (autenticação JWT com ID token) | Premium | documentação |
| GitLab Secrets Manager (beta público desde 19.0; disponibilidade limitada no GitLab.com desde 19.3; consome GitLab Credits) | Premium | documentação |
| Papéis customizados baseados em papel padrão | Ultimate | documentação |
Cada aluno recebe um subgrupo com os projetos dos exercícios; a correção é automática, pela API da plataforma GitLab.
| Exercício | Título | Objetivo | Tier | Duração |
|---|---|---|---|---|
| lab-repositorio-01 | Proteger a branch main e as tags de release | Configurar branch protegida sem push direto e tags protegidas por curinga. | Free | 30 min |
| lab-repositorio-02 | Push rule de mensagem de commit | Configurar push rule que exige padrão de mensagem de commit. | Premium | 20 min |
| lab-mr-01 | Fluxo issue, branch, merge request e merge | Fechar uma issue automaticamente pelo merge de um merge request com revisão registrada. | Free | 30 min |
| lab-ci-01 | Primeiro pipeline com stages e jobs | Criar .gitlab-ci.yml com build e teste e executar o pipeline em main. | Free | 45 min |
| lab-ci-02 | Diagnosticar pipeline quebrado | Corrigir erro de sintaxe YAML e erro de script sem remover testes. | Free | 40 min |
| lab-ci-03 | Relatório de testes, cobertura e artefatos | Publicar relatório JUnit, percentual de cobertura e artefato com expiração. | Free | 50 min |
| lab-ci-04 | Variável protegida e mascarada | Usar credencial em job de branch protegida sem expor o valor no log. | Free | 30 min |
| lab-ci-05 | Pipelines de merge request, rules, needs e matrix | Controlar quando o pipeline e cada job rodam e reduzir o tempo total com DAG. | Free | 50 min |
| lab-segredos-01 | CI/CD job token entre projetos e ID token | Autorizar acesso entre projetos pela allowlist do job token e declarar ID token com audiência. | Free | 45 min |