Pointer
DATAPREV
Turma fundamentals-t2

GitLab with Git Fundamentals — turma 2

Remoto ao vivo · 8 h · 13/04/2027 a 15/04/2027 · Instrutor: Gustavo Costa

← Todas as turmas

Agenda

SessãoDataHorárioMódulos
s113/04/202709:00–11:00Plataforma GitLab: organização, visibilidade e papéis; Planejamento com itens de trabalho, labels, milestones e boards
s213/04/202711:00–13:00Gestão de portfólio: épicos, roadmaps, iterações e pesos; Repositório Git na plataforma GitLab: branches, tags e proteção
s315/04/202709:00–11:00Merge requests e revisão de código; Fundamentos de pipelines GitLab CI/CD
s415/04/202711:00–13:00Container registry e package registry; Varreduras de segurança no pipeline: SAST, segredos, dependências, contêiner e IaC

Formulários

Presença

Registro de presença na sessão com o código informado pelo instrutor.

coleta fechada

Responder

Avaliação pré

Questionário antes do primeiro módulo (mede o conhecimento inicial).

coleta fechada

Responder

Avaliação pós

O mesmo questionário ao final da turma (mede a evolução).

coleta fechada

Responder

Satisfação

Pesquisa anônima sobre a turma, o instrutor e os laboratórios.

coleta fechada

Responder

Módulos

Plataforma GitLab: organização, visibilidade e papéis · Básico · 2 h

Objetivos

  • Criar grupo, subgrupo e projeto na hierarquia de um grupo de nível superior.
  • Configurar a visibilidade de grupo e projeto respeitando a restrição do grupo pai.
  • Atribuir papéis padrão a membros e identificar o papel efetivo herdado.
  • Distinguir as permissões dos papéis Guest, Planner, Reporter, Developer, Maintainer e Owner.

Conteúdo

TópicoTierFonte
Grupos, subgrupos (até 20 níveis de aninhamento) e projetosFreedocumentação
Visibilidade private, internal e public; visibilidade do projeto igual ou mais restritiva que a do grupo paiFreedocumentação
Visibilidade internal disponível apenas em GitLab Self-Managed e GitLab DedicatedFreedocumentação
Papéis padrão (Minimal Access, Guest, Planner, Reporter, Developer, Maintainer, Owner) e prevalência do papel mais alto na herançaFreedocumentação
Papel Security Manager (beta desde 18.11)Freedocumentação
Membros de projeto e de grupo, membros herdados e diretosFreedocumentação
Planejamento com itens de trabalho, labels, milestones e boards · Básico · 2 h

Objetivos

  • Criar issues e tasks e relacioná-las em hierarquia.
  • Organizar itens de trabalho com labels e milestones.
  • Configurar um issue board com listas por label.
  • Identificar os recursos de planejamento disponíveis por tier.

Pré-requisitos: Plataforma GitLab: organização, visibilidade e papéis

Conteúdo

TópicoTierFonte
Tipos de itens de trabalho: issue, epic, task, objetivos e resultados-chave, casos de testeFreedocumentação
Lista unificada Plan > Work items (disponível de forma geral desde 18.10)Freedocumentação
Labels; scoped labels com sintaxe chave::valor mutuamente exclusivasPremiumdocumentação
Milestones e percentual concluídoFreedocumentação
Gráficos burndown e burnup de milestonePremiumdocumentação
Issue boards e múltiplos boardsFreedocumentação
Boards configuráveis (milestone, labels, responsável, peso, iteração) e listas por responsávelPremiumdocumentação
Gestão de portfólio: épicos, roadmaps, iterações e pesos · Intermediário · 2 h

Objetivos

  • Criar épicos com datas e itens filhos em grupo.
  • Configurar cadência de iterações e atribuir issues à iteração.
  • Interpretar o roadmap de épicos e milestones.
  • Registrar pesos em itens de trabalho para acompanhamento de progresso.

Pré-requisitos: Planejamento com itens de trabalho, labels, milestones e boards

Conteúdo

TópicoTierFonte
Épicos e hierarquia de itens de trabalhoPremiumdocumentação
Épicos filhos (épico pai de outros épicos)Ultimatedocumentação
Roadmap (linha do tempo de épicos e milestones)Premiumdocumentação
Iterações e cadências de iteraçãoPremiumdocumentação
Peso de itens de trabalho (inclui épicos desde 18.11)Premiumdocumentação
Repositório Git na plataforma GitLab: branches, tags e proteção · Básico · 2 h

Objetivos

  • Criar branches e tags e integrar alterações pela interface e pela linha de comando Git.
  • Configurar regras de branch protegida (Allowed to merge, Allowed to push and merge, force push).
  • Configurar tags protegidas por nome ou curinga.
  • Configurar push rules de mensagem de commit e de autoria.

Pré-requisitos: Plataforma GitLab: organização, visibilidade e papéis

Conteúdo

TópicoTierFonte
Branch padrão protegida por padrão; regras em Settings > Repository > Branch rulesFreedocumentação
Allowed to merge, Allowed to push and merge (inclusive No one), Allowed to force push, regras com curingaFreedocumentação
Branches protegidas no nível de grupo; grupos e usuários individuais nas listas de permissãoPremiumdocumentação
Tags protegidas: controle de criação e bloqueio de atualização e exclusãoFreedocumentação
Push rules (pre-receive hooks): expressões RE2 até 511 caracteres, mensagem de commit, autor, commits assinadosPremiumdocumentação
Branches: criação, comparação e exclusãoFreedocumentação
Merge requests e revisão de código · Básico · 2 h

Objetivos

  • Executar o fluxo issue, branch, merge request e merge com fechamento automático da issue.
  • Configurar métodos de merge e verificações de merge (pipeline com sucesso, threads resolvidas).
  • Configurar regras de aprovação e arquivo CODEOWNERS.
  • Identificar as configurações de aprovação que implementam separação de funções.

Pré-requisitos: Repositório Git na plataforma GitLab: branches, tags e proteção

Conteúdo

TópicoTierFonte
Padrão de fechamento (Closes, Fixes, Resolves, Implements) em commit ou descrição do MRFreedocumentação
Métodos de merge: merge commit, merge commit com histórico semilinear, fast-forward; squashFreedocumentação
Auto-merge e verificação Pipelines must succeedFreedocumentação
Aprovações opcionais no Free (papel Developer ou superior)Freedocumentação
Regras de aprovação obrigatórias e aprovações em nível de grupo e instânciaPremiumdocumentação
Code Owners: arquivo CODEOWNERS (raiz, docs/ ou .gitlab/) e aprovação obrigatória em branch protegidaPremiumdocumentação
Configurações de aprovação: impedir aprovação pelo autor (padrão), por quem adicionou commits, remover aprovações em novos commitsPremiumdocumentação
Fundamentos de pipelines GitLab CI/CD · Básico · 3 h

Objetivos

  • Criar um arquivo .gitlab-ci.yml com stages e jobs e validá-lo no pipeline editor.
  • Executar um pipeline e interpretar o log e o status de cada job.
  • Configurar execução condicional básica com when e allow_failure.
  • Diagnosticar falhas de sintaxe e de script em pipelines.

Pré-requisitos: Repositório Git na plataforma GitLab: branches, tags e proteção

Conteúdo

TópicoTierFonte
Estrutura do .gitlab-ci.yml: palavras-chave globais (default, include, stages, variables, workflow) e de jobFreedocumentação
Stages padrão (.pre, build, test, deploy, .post); job sem stage vai para testFreedocumentação
Jobs, script, before_script, after_script, image, jobs ocultos iniciados por pontoFreedocumentação
when (on_success padrão, on_failure, always, manual, delayed, never) e allow_failureFreedocumentação
Pipeline editor e validação de configuração (CI Lint)Freedocumentação
Tipos e estados de pipelineFreedocumentação
Container registry e package registry · Intermediário · 2 h

Objetivos

  • Construir e publicar imagem no container registry a partir do pipeline.
  • Autenticar no registry com CI_REGISTRY_USER, CI_REGISTRY_PASSWORD ou CI_JOB_TOKEN.
  • Publicar pacote genérico no package registry.
  • Configurar política de limpeza do container registry.

Pré-requisitos: ci-variaveis-artefatos

Conteúdo

TópicoTierFonte
Nome de imagem <registry>/<namespace>/<projeto>[/caminho] com até dois níveis adicionaisFreedocumentação
Autenticação no pipeline com CI_REGISTRY_USER/CI_REGISTRY_PASSWORD ou CI_JOB_TOKENFreedocumentação
Política de limpeza (name_regex e name_regex_keep)Freedocumentação
Package registry: formatos (Maven, npm, NuGet, PyPI, Terraform, entre outros)Freedocumentação
Pacotes genéricos: PUT /projects/:id/packages/generic/:nome/:versão/:arquivoFreedocumentação
Varreduras de segurança no pipeline: SAST, segredos, dependências, contêiner e IaC · Intermediário · 3 h

Objetivos

  • Habilitar SAST, detecção de segredos no pipeline, varredura de contêiner e de IaC com templates CI/CD.
  • Habilitar secret push protection e identificar as formas de ignorá-la e o registro em auditoria.
  • Habilitar dependency scanning por SBOM.
  • Identificar os resultados de varredura disponíveis por tier.

Pré-requisitos: Fundamentos de pipelines GitLab CI/CD

Conteúdo

TópicoTierFonte
SAST com analisadores open source, relatório JSON; exige stage test e runner Linux com executor Docker ou KubernetesFreedocumentação
GitLab Advanced SAST e resultados de SAST no merge requestUltimatedocumentação
Detecção de segredos no pipeline (template Jobs/Secret-Detection.gitlab-ci.yml)Freedocumentação
Secret push protection (GA 17.5): bloqueio do push, [skip secret push protection], push option secret_push_protection.skip_all, evento de auditoriaUltimatedocumentação
Dependency scanning por SBOM CycloneDX (GA 19.0; template Jobs/Dependency-Scanning.v2.gitlab-ci.yml); Gemnasium depreciado em 17.9Ultimatedocumentação
Container scanning com Trivy (template Jobs/Container-Scanning.gitlab-ci.yml, variável CS_IMAGE)Freedocumentação
Varredura de IaC com KICS (template Jobs/SAST-IaC.gitlab-ci.yml)Freedocumentação

Laboratórios

Cada aluno recebe um subgrupo com os projetos dos exercícios; a correção é automática, pela API da plataforma GitLab.

ExercícioTítuloObjetivoTierDuração
lab-plataforma-01Estruturar grupo, subgrupo e projeto com papéisCriar a hierarquia de um time e atribuir papéis padrão a membros.Free40 min
lab-planejamento-01Milestone, labels, board e tasksOrganizar um incremento de trabalho em milestone e board por label.Free40 min
lab-repositorio-01Proteger a branch main e as tags de releaseConfigurar branch protegida sem push direto e tags protegidas por curinga.Free30 min
lab-mr-01Fluxo issue, branch, merge request e mergeFechar uma issue automaticamente pelo merge de um merge request com revisão registrada.Free30 min
lab-ci-01Primeiro pipeline com stages e jobsCriar .gitlab-ci.yml com build e teste e executar o pipeline em main.Free45 min
lab-seg-01Habilitar SAST, detecção de segredos, container scanning e IaC scanningAdicionar varreduras de segurança ao pipeline com os templates CI/CD.Free50 min