Pointer — página inicial do catálogo
Pré-requisitos · PR-MIG-01 · oferta PS-MIG-01

Pré-requisitos: Migração GitLab para GitLab self-managed

Checklist de prontidão

Marcações ficam salvas somente neste navegador.

  • Preflight automático
  • Preflight automático
  • Preflight automático
  • Preflight automático
  • Preflight automático
  • Preflight automático
  • Preflight automático
  • Preflight automático
  • Preflight automático
  • Preflight automático
  • Reunião de prontidão
  • Reunião de prontidão
  • Reunião de prontidão
  • Reunião de prontidão
  • Reunião de prontidão
  • Reunião de prontidão
  • Reunião de prontidão
  • Reunião de prontidão
  • Cliente
  • Cliente
  • Cliente
  • Cliente

Documento enviado ao cliente depois da escolha do serviço PS-MIG-01 — Migração GitLab para GitLab self-managed. Lista o que o cliente provisiona, as credenciais que entrega, as informações a enviar à Pointer, o checklist de prontidão e a matriz do que é migrado. O prazo de devolução das informações e do checklist é definido no kick-off.

Os itens do checklist marcados como Preflight automático são conferidos pelo pipeline Pointer contra a origem e o destino reais antes da primeira onda; os demais são conferidos na reunião de prontidão ou pelo próprio cliente. Nenhuma onda é executada com erro no preflight.

  1. Origem e destino suportados
  2. Configuração da instância de destino
  3. Preparação da instância de origem
  4. Host de migração
  5. Runner do engajamento
  6. Rede
  7. Usuários e contribuições
  8. Governança da migração
  9. Critérios de aceite por onda
  10. Método por arquivo: diferenças em relação ao Direct Transfer
  11. Entrega das credenciais
  12. Credenciais que o cliente entrega à Pointer
  13. Informações a enviar
  14. Matriz de itens migrados
  15. Checklist de prontidão

1. Origem e destino suportados

ItemSuportado
OrigemGitLab.com; GitLab self-managed
DestinoSomente GitLab self-managed do cliente, inclusive instância implantada pela Pointer
Método padrãoDirect Transfer orquestrado pelo GitLab Congregate
Versões no Direct TransferOrigem e destino na versão 16.8 ou superior; origem no máximo duas versões minor anteriores ao destino. Fora da regra o preflight reprova; origem mais nova que o destino gera alerta
Método alternativo por arquivoExportação e importação de projetos, quando o Direct Transfer não é possível (rede ou versão). Destino na mesma versão da origem ou posterior; a instância de destino importa exportações de até duas versões minor anteriores. Exige token de administrador na origem e no destino
Nível de assinaturaRecursos pagos (por exemplo épicos, regras de aprovação, push rules, wiki de grupo) só migram com o nível correspondente no destino; o nível da origem é informado no plano
Destinos fora do escopoGitLab.com e GitLab Dedicated como destino: roadmap
Outras origensGitHub (PS-MIG-02), Azure DevOps (PS-MIG-03), Bitbucket Cloud (PS-MIG-04); Bitbucket Server/Data Center e AWS CodeCommit: roadmap
  • Documentação GitLab: a migração de projetos por Direct Transfer está em disponibilidade geral desde a versão 18.3; o mapeamento de contribuições para usuários placeholder, desde a versão 18.4 (habilitado em GitLab self-managed a partir da 17.7).
  • O runbook do GitLab Congregate exige destino GitLab self-managed 17.7 ou superior, por causa de um defeito anterior que impedia atualizar permissões depois da reatribuição de usuários.
  • O preflight confere as versões só no Direct Transfer; no método por arquivo a regra de versões é conferida na reunião de prontidão.

2. Configuração da instância de destino

ItemEspecificaçãoObrigatório
Direct Transfer habilitadoAdmin → Settings → General → Import and export settings → Allow migrating GitLab groups and projects by direct transfer. O preflight reprova se estiver desligadoSim (Direct Transfer)
Grupo paiGrupo existente, privado ou interno, que recebe a migração. Destino de cada item = grupo pai + caminho do item na origem. O preflight reprova grupo inexistente ou públicoSim
Reatribuição sem confirmação de cada usuárioSkip confirmation when administrators reassign placeholder users: decisão do administrador da instância. Ligada, a reatribuição em lote é imediata; desligada, cada usuário aceita o pedido de reatribuição antes de contribuições e memberships aparecerem. O preflight alerta se estiver desligada com a reatribuição no planoCondicional: reatribuição em lote no plano
Sidekiq e espaço temporárioSidekiq configurado para importações; espaço livre em /tmp para criar e extrair os arquivos da migração (documentação GitLab)Sim (Direct Transfer)
Object storageItens da origem em object storage: proxy_download habilitado na origem ou acesso da instância de destino ao object storage da origem (documentação GitLab)Condicional: origem com object storage
Exclusão imediata no destinoPermissão de exclusão imediata de grupos e projetos no destino, para rollback com exclusão permanente e remigração no mesmo caminho (preparativos da documentação do GitLab Congregate)Condicional: rollback permanente
Registry de destinoEndereço do container registry de destino e certificado confiável pelo Docker do host de migraçãoCondicional: cópia de imagens
Nível de assinaturaNível que cubra os recursos pagos usados na origemCondicional: recursos pagos na origem
  • Método por arquivo: a fonte de importação exigida no destino não é conferida pelo preflight; conferência na reunião de prontidão.
  • Rate limits da origem e do destino ajustados para a migração, inclusive temporariamente, e, opcionalmente, ajustes de memória e filas do Sidekiq no destino constam dos preparativos da documentação do GitLab Congregate.

3. Preparação da instância de origem

  • Origem GitLab self-managed: Direct Transfer habilitado também na origem por um administrador. A documentação GitLab exige a opção nas duas instâncias; o preflight confere só o destino.
  • Default minimum role required to create projects diferente de No one: com No one, grupos com projetos não são importados (documentação GitLab).
  • Snippets habilitados no projeto de origem para que os snippets sejam importados.
  • Espaço livre em /tmp na origem self-managed e, com object storage, proxy_download habilitado.
  • Nível de assinatura da origem (Free, Premium ou Ultimate) informado no formulário.
  • Preparativos da documentação do GitLab Congregate: limpar repositórios (exportação abaixo de 5 GB por projeto) e tags de registry sem uso; consolidar usuários (remover, pular ou migrar inativos); congelamento de escrita comunicado por broadcast message e, opcionalmente, modo de manutenção.

4. Host de migração

ItemEspecificaçãoObrigatório
MáquinaLinux x86_64 dedicada ao engajamento, sem outros serviços: o usuário do runner participa do grupo docker, o que equivale a root no host. Um host por clienteSim
Recursos de partida4 vCPU, 16 GB de RAM e 100 GB de disco SSD (imagem do GitLab Congregate com cerca de 3,3 GB; o banco MongoDB da ferramenta cresce com a listagem da origem). A documentação do GitLab Congregate (página Migration Workflows) pede, no mínimo, ambiente com Docker e 4 CPU, 8 GB de RAM e 20 GB de discoSim
ContêineresDocker Engine e Docker Compose v2; a ausência reprova o início de cada jobSim
Swap2 GB de swap, conforme a documentação do GitLab CongregateNão
Disco para imagensEspaço para a maior imagem de contêiner da origem (cópia tag a tag, com remoção local depois de cada envio)Condicional: cópia de imagens
CertificadosCertificados válidos na origem e no destino. CA corporativa em arquivo no host (arquivo inexistente reprova o job), somada às raízes do contêiner do GitLab CongregateCondicional: CA interna
CA para cópia de imagensDocker do host confiando na CA do registry e da instância GitLab de destino, instalada no repositório de certificados do sistema (update-ca-certificates ou update-ca-trust) e Docker reiniciado; só /etc/docker/certs.d/<registry>/ca.crt não basta, porque o envio autentica em https://<instância de destino>/jwt/authCondicional: cópia de imagens com CA interna
ProxyProxy de saída informado no plano de migração e configurado também no daemon DockerCondicional: proxy corporativo
AcompanhamentoA interface do GitLab Congregate e o Flower ficam só em 127.0.0.1 do host; o acompanhamento é por túnel SSH (usuário@host)Não
  • A documentação do GitLab Congregate orienta dimensionar o disco para as exportações de grupos e projetos e para o pull das imagens de registry.
  • No encerramento, o pipeline remove a stack e todos os dados do engajamento no host (listagens, logs e resultados).

5. Runner do engajamento

ItemEspecificaçãoObrigatório
GitLab RunnerInstalado no host de migração, executor shell, registrado no projeto do engajamento na GitLab.com da Pointer com o token de registro criado nesse projetoSim
ConfiguraçãoRunner de projeto com a tag do engajamento; Run untagged jobs desmarcado; Protected e Lock to current projects marcados; tempo máximo de job de 8 horas ou maisSim
Usuário do runnergitlab-runner no grupo docker; em Ubuntu, remover /home/gitlab-runner/.bash_logout (o clear_console encerra jobs shell)Sim
EncerramentoRunner removido do projeto e desinstalado do hostSim

6. Rede

ConexãoProtocolo e observaçãoObrigatório
Host de migração → instância de origemHTTPS (porta da origem)Sim
Host de migração → instância de destinoHTTPSSim
Host de migração → gitlab.comHTTPS: runner e projeto do engajamentoSim
Host de migração → registry.gitlab.comHTTPS: imagens do GitLab Congregate e da plataforma Pointer. Para pull de registry.gitlab.com, a documentação da GitLab.com lista também *.storage.googleapis.com e *.cdn.registry.gitlab-static.netSim
Host de migração → Docker HubHTTPS: imagens do MongoDB e do RedisSim
Instância de destino → instância de origemHTTPS. O Direct Transfer é executado pela instância de destino e exige HTTPS; firewalls sem bloqueio entre origem e destinoSim (Direct Transfer); não no método por arquivo
Host de migração → registries de origem e de destinoPorta de cada registryCondicional: cópia de imagens
Estação do engenheiro → host de migraçãoSSH, para o túnel de acompanhamentoNão
  • O host de migração só faz conexões de saída. Espelhos internos equivalentes podem substituir gitlab.com, registry.gitlab.com e Docker Hub.
  • No método por arquivo basta o host alcançar a origem e o destino.
  • Operação sem acesso à internet (air-gapped) está no roadmap.

7. Usuários e contribuições

  • Direct Transfer: usuários nunca são criados pela migração; contribuições e memberships vão para usuários placeholder mesmo quando existe no destino um usuário com o mesmo e-mail (documentação GitLab).
  • Criação de usuários pelo GitLab Congregate (opcional): exige token de administrador na origem e no destino; o administrador da origem é criado como <usuário>_migrated quando o nome já existe.
  • Usuários já provisionados no destino (LDAP ou SAML): só a reatribuição em lote, sem criação.
  • Correspondência origem → destino: por e-mail (padrão, pela API de administrador da origem), por username ou por planilha origem → destino, que vale antes das outras duas. Reatribuição com origem GitLab.com: sob consulta; escopo e condições definidos em proposta específica, com execução piloto.
  • Reatribuição dos usuários placeholder: pedida pelo Owner do grupo de topo; com a opção de reatribuição sem confirmação ligada no destino, é imediata.
  • Método por arquivo: não há usuários placeholder. Autoria e memberships são mapeados na importação pelo e-mail público da origem igual ao e-mail primário no destino; usuário inexistente no destino nesse momento fica com a autoria na conta da importação, sem reatribuição depois. Por isso os usuários são criados ou provisionados antes da primeira onda. Membros com papel Owner são importados como Maintainer.
  • A conta dona do token do destino é a conta da importação: recebe as contribuições sem usuário correspondente.

8. Governança da migração

  • Aprovador de cada onda e do rollback, do lado do cliente.
  • Janela de manutenção de cada onda e congelamento de escrita na origem durante a janela.
  • Responsável pelos usuários placeholder sem correspondente (Owner do grupo de topo) e prazo.
  • Responsável pela revisão e aprovação dos merge requests de reescrita de referências.
  • Momento do corte (arquivamento da origem) e comunicação aos usuários.
  • Responsável por cada item de tratamento manual da matriz.

9. Critérios de aceite por onda

  • Relatório da onda sem erro: todo item existe no destino, número de projetos igual ao da origem, Direct Transfer finished, branches, tags, issues e merge requests iguais na contagem independente.
  • Falhas de relação e divergências de contagem (alertas) analisadas e aceitas ou corrigidas, com registro no registro de decisões. Sem usuários no destino, é esperado que regras de aprovação fiquem sem aprovadores e que contribuições e memberships fiquem em usuários placeholder.
  • Com reatribuição: todos os usuários reatribuídos (ou aguardando aceite, se o destino exigir confirmação), aprovadores das regras reaplicados e autoria em placeholder e membros iguais na contagem.
  • Bytes de LFS menores logo após a migração podem ser atraso das estatísticas do destino: nova conferência antes de abrir chamado.
  • Validação funcional pelo cliente nos projetos críticos da onda: clone, merge requests, issues e pipelines.

10. Método por arquivo: diferenças em relação ao Direct Transfer

  • Merge requests: só o último diff é preservado; só o último pipeline do merge request fica visível.
  • Pipelines importados ficam arquivados; agendamentos chegam inativos e atribuídos ao usuário que fez a importação.
  • Membros com papel Owner são importados como Maintainer. Membros herdados viram membros diretos quando a exportação é feita pelo Owner do grupo de topo; com o grupo de topo não migrado, a importação por arquivo adiciona como membros diretos do projeto os membros herdados desse grupo.
  • Níveis de acesso de branches e tags protegidas voltam para Maintainer, salvo quando quem importa é Owner do grupo de topo ou administrador.
  • Não exportados: tokens de trigger, logs e artefatos de jobs, container registry, variáveis de CI/CD, allowlist do job token, webhooks, tokens criptografados, número de aprovações exigidas, limites de tamanho de repositório, deploy keys com push em branch protegida, secure files, políticas de segurança, links entre issues e itens vinculados, links para merge requests relacionados e variáveis de agendamentos.
  • Regras de aprovação: só Approvals for protected branches e Eligible approvers.
  • Deploy keys não são importadas pela exportação; o pós-importação do GitLab Congregate as recria.
  • Exportação por arquivo de grupos está descontinuada pela GitLab. No pipeline, onda só de subgrupos roda com opção própria, e onda que mistura grupo de topo e subgrupo solto é recusada: grupo de topo e subgrupo avulso ficam em ondas separadas.
  • O usuário que fez o merge de um merge request mergeado não é preservado.

11. Entrega das credenciais

Cada credencial é cadastrada como variável de CI/CD do projeto do engajamento, com as opções Protected e Masked and hidden e escopo restrito ao ambiente de migração, que é protegido e exige aprovação para a migração e o rollback de cada onda. O pipeline lista, sem valores, as variáveis exigidas pelo plano, e o preflight reprova se faltar alguma. A configuração do GitLab Congregate com os tokens só existe durante cada job no host de migração.

Tokens nunca são colados em chat, issue ou arquivo; se isso ocorrer, o token é revogado e outro é emitido. No encerramento, os tokens usados na origem e no destino são revogados e as contas de administrador criadas para o engajamento são desativadas.

12. Credenciais que o cliente entrega à Pointer

Nenhum valor secreto é enviado por e-mail, chat, issue ou arquivo. Cada credencial é cadastrada como variável de CI/CD protegida no projeto do engajamento, com escopo do ambiente, e revogada no encerramento.

CredencialFinalidadePermissõesFormato e validadeObrigatório
Token de acesso pessoal da instância de destinoUsado pelo GitLab Congregate (importação e pós-importação), pela verificação e contagem no destino, pela reatribuição de usuários, pelo rollback, pela reescrita de referências (merge request por projeto) e pelo envio de imagens ao registry de destino.Escopo api, e também admin_mode quando o Admin Mode estiver habilitado na instância. Usuário administrador da instância: sem administrador o preflight alerta e não confere as configurações de importação; com criação de usuários, reprova. A conta dona do token recebe as contribuições sem usuário correspondente. Personal access token da instância GitLab de destino, cadastrado como variável de CI/CD PS_MIG_DESTINO_TOKEN (Protected, Masked and hidden, escopo do ambiente de migração)
Expiração na data estimada da última onda, conforme a documentação do GitLab Congregate; o preflight alerta com menos de 7 dias. Revogado no encerramento.
Sim
Token de acesso da instância de origemUsado pelo GitLab Congregate (listagem e Direct Transfer ou exportação), pelo preflight, pela contagem independente, pelo login no registry de origem (cópia de imagens), pela correspondência de usuários por e-mail, pela reaplicação de aprovadores e pelo arquivamento e desarquivamento da origem no corte.Escopo api (inclui container registry e package registry, conforme a documentação GitLab). Direct Transfer: papel Owner nos grupos migrados ou administrador; o preflight reprova sem Owner no grupo de topo da origem. Método por arquivo, criação de usuários e correspondência por e-mail: administrador da origem. Personal access token da instância de origem (em GitLab.com: token de acesso de grupo com papel Owner e escopo api), cadastrado como variável de CI/CD PS_MIG_ORIGEM_TOKEN (Protected, Masked and hidden, escopo do ambiente de migração)
Expiração na data estimada da última onda. Revogado no encerramento.
Sim

13. Informações a enviar

Informações sem sigilo, devolvidas pelo cliente antes da reunião de prontidão. Os campos marcados como obrigatórios são conferidos pela validação automática do pipeline.

Origem

InformaçãoExemploObrigatórioObservação
Tipo de origemGitLab self-managedSimGitLab.com ou GitLab self-managed.
URL da instância de origemhttps://gitlab.antigo.exemplo.gov.brSimEndereço HTTPS; http:// gera alerta.
Versão e edição da origem19.2, Enterprise EditionSimConfere a regra de versões do método.
Nível de assinatura da origemPremiumSimFree, Premium ou Ultimate. Com o nível errado, itens pagos são ignorados sem erro.
Grupo de topo (escopo) na origemtiCondicional: origem GitLab.comDefine o escopo da listagem; obrigatório na GitLab.com.
Endereço do container registry de origemregistry.gitlab.antigo.exemplo.gov.brCondicional: cópia de imagensHost e porta, sem protocolo.
MétodoDirect TransferNãoDirect Transfer (padrão) ou por arquivo.

Destino

InformaçãoExemploObrigatórioObservação
URL da instância de destinohttps://gitlab.exemplo.gov.brSim
Versão e nível de assinatura do destino19.4.1, UltimateSim
Grupo pai no destinomigradosSimGrupo privado ou interno existente.
Endereço do container registry de destinoregistry.gitlab.exemplo.gov.brCondicional: cópia de imagensHost e porta, sem protocolo.
Reatribuição sem confirmação habilitadaSimCondicional: reatribuição em loteDecisão do administrador do destino.

Host de migração e rede

InformaçãoExemploObrigatórioObservação
Nome e sistema operacional do host de migraçãohost-migracao.exemplo.gov.br, Ubuntu 24.04Sim
Proxy de saídahttps: http://proxy.exemplo.gov.br:3128; exceções: .exemplo.gov.brCondicional: proxy corporativoHTTPS, HTTP e exceções.
Caminho da CA corporativa no host/etc/pki/ca-trust/source/anchors/ac-exemplo.pemCondicional: CA internaCaminho absoluto de arquivo existente no host.
Diretório da stack no host/opt/pointer-ps/migracaoNãoPadrão /opt/pointer-ps/migracao.
Acesso SSH para acompanhamentousuario@host-migracao.exemplo.gov.brNãoTúnel para a interface do GitLab Congregate.
Confirmação de conectividade destino → origem por HTTPSSimCondicional: Direct Transfer

Usuários

InformaçãoExemploObrigatórioObservação
Política de usuáriosUsuários provisionados por LDAP; reatribuição em loteSimCriar pelo GitLab Congregate, usar usuários já provisionados ou manter em usuários placeholder.
Campo de correspondência origem → destinoE-mailNãoE-mail (padrão) ou username.
Planilha de correspondência de usuáriosusuarios-mapa.csv (colunas origem, destino)NãoUsername na origem → username no destino; vale antes do campo de correspondência.
Incluir usuários inativosNãoCondicional: criação de usuários
Senha dos usuários criadosSenha aleatóriaCondicional: criação de usuáriosSenha aleatória (padrão) ou redefinição de senha pelo usuário.
Responsável pelos placeholders sem correspondente e prazoOwner do grupo de topo; 10 diasCondicional: Direct Transfer

Ondas

InformaçãoExemploObrigatórioObservação
Planilha de ondasondas.csv (colunas onda, grupo, projeto)SimGrupo inteiro (com subgrupos e projetos) ou projeto avulso, pelo caminho na origem; o mesmo item não se repete entre ondas. O inventário da origem serve de modelo.
Nome, data e descrição de cada ondapiloto; 10/11/2026; projetos de baixo riscoSimA primeira onda é a piloto.
Janela de manutenção de cada onda10/11/2026, 19h às 23hSim
Aprovador de cada onda e do rollbackNome e cargoSim
Janela de rollback24 horasNãoDe 1 a 720 horas; padrão 24.
Confirmação do congelamento de escrita na origem durante a janelaSimSim

Pós-migração e corte

InformaçãoExemploObrigatórioObservação
Cópia das imagens de contêinerSimSimCopiar pelo pipeline ou reconstruir no destino.
Reescrita de referências à origemRelatório e merge request por projetoSimSó relatório (padrão) ou merge request por projeto; revisor dos merge requests.
Arquivamento da origem no corteSim, 5 dias após cada ondaSimSim ou não, e momento.
Itens de pós-importação a não recriarAmbientesNãoPor padrão todos são recriados.
Responsáveis pelos itens de tratamento manualRunners e integrações: equipe de plataformaSimConforme a matriz.

Contatos

InformaçãoExemploObrigatórioObservação
PatrocinadorNome, e-mail, telefoneSim
Ponto focal técnicoNome, e-mail, telefoneSim
Administrador da instância de origemNome, e-mailCondicional: origem self-managed
Administrador da instância de destinoNome, e-mailSim
Infraestrutura, rede e segurançaNome, e-mailSimHost, firewall, proxy e certificados.

14. Matriz de itens migrados

Nativo Migrado pelo método oficial (Direct Transfer ou, no método alternativo, importação por arquivo), disparado pelo pipelinePipeline Pointer Tratado pelo pipeline Pointer após a importação (pós-importação do GitLab Congregate ou cópia de imagens pelo host de migração)Ajuste manual Exige ajuste manual após a migração (com responsável definido no plano)Não migra Não é migrado; recriação fora do escopo, salvo acordo

O tratamento de cada item segue a documentação oficial do método de migração e é conferido na onda piloto do engajamento.

Grupos

ItemTratamentoObservação
SubgruposNativoSubgrupos a menos no destino reprovam a onda na contagem independente.
Configurações do namespaceNativo
Badges de grupoNativoA documentação GitLab lista badges como migrados; o runbook do GitLab Congregate orienta recriá-los. Adotado: migra, com conferência na onda piloto.
Uploads do grupoNativo
Wiki de grupoNativoPremium ou superior.
Membros do grupoNativoChegam em usuários placeholder e são reatribuídos em lote quando a reatribuição está no plano; convites pendentes não migram.
Grupo compartilhado com outros gruposPipeline PointerRecriado pelo pós-importação do GitLab Congregate. O Direct Transfer mapeia memberships compartilhadas como diretas; o compartilhamento só é preservado se a estrutura de grupos for migrada antes.
Webhooks de grupoPipeline PointerRecriados pelo pós-importação só com origem Premium ou superior; o token secreto não sai pela API e é redefinido no destino.
Deploy tokens de grupoAjuste manualExcluídos do Direct Transfer.
Convites de membros pendentesNão migraNão suportado pelo Direct Transfer.
Eventos de auditoria (grupo e projeto)Não migraNão migrados pela exportação por arquivo, pelo Direct Transfer nem pelo GitLab Congregate.

Issues, épicos e planejamento

ItemTratamentoObservação
Épicos, com boards e listas de épicosNativoPremium ou superior.
Labels de grupoNativoPrioridades de labels de grupo não são mantidas na importação (documentação GitLab).
Milestones de grupo e de releaseNativoTítulo igual a milestone já existente no destino recebe sufixo único.
Boards e listas de grupoNativo
Iterações e cadências de iteraçãoNativoAs configurações das cadências não são migradas (ver notas).
Issues (comentários, eventos de estado, milestone e iteração, time tracking)NativoIssues a menos no destino reprovam a onda.
Labels e milestones do projetoNativo
Boards de issuesNativo
DesignsNativo
Issues vinculadas (linked items)Não migraA documentação GitLab lista como não suportado no Direct Transfer; a matriz do GitLab Congregate lista como suportado. Adotada a documentação GitLab, com conferência na onda piloto.

Repositório

ItemTratamentoObservação
Repositório Git (commits, branches, tags)NativoArquivos com nome acima de 255 caracteres não migram. Branches e tags a menos no destino reprovam a onda.
Branches e tags protegidasNativoBranches importadas seguem a proteção padrão de branch do grupo de destino: branch desprotegida na origem pode chegar protegida.
Branch padrãoNativoMigrada pelo Direct Transfer e reaplicada pelo pós-importação do GitLab Congregate.
Push rules do projetoNativoPremium ou superior; também reaplicadas pelo pós-importação. Se a origem tem push rules de grupo, nenhuma push rule de projeto é importada (documentação GitLab).
Comentários de commitNativo
Objetos LFSNativoNão são baixados se o .lfsconfig apontar lfs.url para outro host. As estatísticas do destino podem atrasar.
Snippets do projetoNativoExige snippets habilitados no projeto de origem.
Wiki do projetoNativo
Comentários de wikiNão migraNão suportado pelo Direct Transfer.
Releases e evidências de releaseNativo
Espelhos remotos (push)Ajuste manualNão suportado pelo Direct Transfer.
Espelhamento pullAjuste manualProjetos com espelho pull são apontados como ação manual pelo Levantamento da Plataforma.

Merge requests

ItemTratamentoObservação
Merge requests (comentários, revisores, aprovadores, responsáveis, eventos, time tracking)NativoMerge requests sem diff ou sem informação de origem não migram. Merge requests a menos no destino reprovam a onda.
Regras de aprovação de merge requestPipeline PointerRecriadas pelo pós-importação com origem Premium ou superior. A instância de destino descarta o aprovador que ainda não é membro; o pipeline reaplica os aprovadores depois da reatribuição. Sem usuários correspondentes no destino, as regras ficam sem aprovadores.
Dependências entre merge requestsNão migraNão suportado pelo Direct Transfer.

CI/CD

ItemTratamentoObservação
Variáveis de CI/CD do projetoPipeline PointerRecriadas pelo pós-importação do GitLab Congregate.
Variáveis de CI/CD de grupoPipeline PointerExcluídas do Direct Transfer por poderem conter informação sensível; recriadas pelo pós-importação.
Histórico de pipelines (status, estágio, horários)NativoPipelines importados de merge requests mantêm o status da origem e podem satisfazer Pipelines must succeed: executar novo pipeline antes do merge de merge request importado.
Pipelines filhas (child pipelines)Não migraNão suportado pelo Direct Transfer.
Logs e artefatos de jobsNão migraExcluídos do Direct Transfer.
Agendamentos de pipelineNativoAs variáveis dos agendamentos são excluídas do Direct Transfer e recriadas pelo pós-importação.
Ambientes, inclusive ambientes protegidosPipeline PointerRecriados pelo pós-importação; ambientes protegidos com Premium ou superior.
Feature flags e listas de usuários de feature flagsPipeline PointerRecriadas pelo pós-importação.
Deploy keysPipeline PointerRecriadas pelo pós-importação.
Allowlist do CI/CD job tokenPipeline PointerRecriada pelo GitLab Congregate só para grupos e projetos da onda que puderem ser resolvidos no destino, com permissões padrão.
Terraform statesPipeline PointerRecriados pelo pós-importação.
Tokens de trigger de pipelineAjuste manualExcluídos do Direct Transfer.
Deploy tokens do projetoAjuste manualExcluídos do Direct Transfer.
Runners (de projeto, de grupo e de instância)Ajuste manualRegistrados no destino na fase de pós-migração.
Agentes para KubernetesAjuste manualNão suportado pelo Direct Transfer.

Pacotes e registries

ItemTratamentoObservação
Pacotes (Package Registry)Pipeline PointerRecriados pelo pós-importação; a matriz do GitLab Congregate lista Maven, PyPI, npm, Generic, Helm, Composer e NuGet.
Imagens de contêiner (Container Registry)Pipeline PointerCopiadas tag a tag pelo pipeline com o Docker do host de migração, quando a cópia de imagens está no plano; o rollback remove antes as imagens.

Configurações, membros e integrações do projeto

ItemTratamentoObservação
Configurações do projeto (propriedades, recursos, Auto DevOps, avatar, badges, política de expiração do registry, Service Desk)Nativo
Membros do projetoNativoChegam em usuários placeholder e são reatribuídos em lote quando a reatribuição está no plano.
Projeto compartilhado com gruposPipeline PointerRecriado pelo pós-importação do GitLab Congregate.
Webhooks do projetoPipeline PointerRecriados pelo pós-importação com origem Premium ou superior; o token secreto não é exposto pela API e é redefinido no destino.
Uploads (anexos)Nativo
Integrações de projeto (por exemplo Jira e Slack)Ajuste manualNão suportadas pelo GitLab Congregate; reconfiguradas no destino na fase de pós-migração.
Relatórios de vulnerabilidadeNativoMigrados desde a versão 17.7, sem o status (documentação GitLab).

Instância

ItemTratamentoObservação
System hooksAjuste manualO GitLab Congregate só migra system hooks com uma opção que o pipeline não habilita.

Notas da matriz

  • A confirmar na onda piloto (tratamento não classificado pelo pipeline Pointer; definido no plano de ondas e conferido na onda piloto): configurações das cadências de iteração, push rules de grupo e campos personalizados de grupo e projeto (a documentação GitLab lista os três como não suportados pelo Direct Transfer); domínios do GitLab Pages (não suportados pelo Direct Transfer); tokens de acesso pessoais, de projeto e de grupo e tokens criptografados (a documentação GitLab informa que usuários e os tokens que criam são excluídos da migração); configurações da instância, aparência, broadcast messages e variáveis de instância (fora do Direct Transfer; o GitLab Congregate informa que ainda não suporta).
  • A confirmar na onda piloto (sem tratamento definido nas fontes): módulos Terraform do Infrastructure Registry (a documentação GitLab lista como não suportado pelo Direct Transfer e a matriz do GitLab Congregate como suportado, sem etapa específica no pipeline); relação de fork (suportada segundo a matriz do GitLab Congregate, sem etapa específica no pipeline); chaves SSH e GPG dos usuários criados pelo GitLab Congregate (a documentação do GitLab Congregate orienta verificar as chaves no destino e criar novas se faltarem).
  • Nível de assinatura: com o nível da origem informado errado, o GitLab Congregate ignora sem erro itens pagos como regras de aprovação, webhooks de grupo e de projeto e push rules.
  • O pós-importação do GitLab Congregate desarquiva temporariamente os projetos arquivados na origem e no destino para aplicar os itens e depois os arquiva de novo.
  • URLs em notas e descrições só são reescritas para links do próprio grupo ou projeto migrado; links para outros projetos da origem permanecem (a reescrita de referências nos arquivos dos repositórios é tratada à parte).
  • Após o início da migração de uma onda, alterações na origem podem não ser copiadas para o destino.
  • Método por arquivo: as diferenças em relação a esta matriz estão na seção “Método por arquivo: diferenças em relação ao Direct Transfer”.

15. Checklist de prontidão

Itens conferidos antes da execução. "Preflight automático" indica verificação feita pelo pipeline contra o ambiente real; os demais são conferidos na reunião de prontidão ou pelo cliente.

☐ItemVerificado por
☐Docker Engine e Docker Compose v2 presentes no host; CA informada existente no host (verificado na preparação do host).Preflight automático
☐Variáveis de CI/CD exigidas pelo plano cadastradas.Preflight automático
☐Instância de destino acessível e token do destino válido, com papel de administrador.Preflight automático
☐Token do destino com validade maior que 7 dias.Preflight automático
☐Direct Transfer habilitado no destino.Preflight automático
☐Grupo pai no destino existente e privado ou interno.Preflight automático
☐Origem acessível; versões dentro da regra do Direct Transfer.Preflight automático
☐Grupo de topo da origem encontrado e token da origem com papel Owner nele ou administrador.Preflight automático
☐Reatribuição sem confirmação habilitada no destino, quando a reatribuição em lote está no plano (alerta).Preflight automático
☐Configuração do GitLab Congregate validada.Preflight automático
☐Direct Transfer habilitado também na origem self-managed.Reunião de prontidão
☐Instância de destino alcança a origem por HTTPS.Reunião de prontidão
☐Sidekiq do destino configurado para importações; espaço em /tmp na origem e no destino; proxy_download ou acesso ao object storage da origem.Reunião de prontidão
☐Default minimum role required to create projects diferente de No one e snippets habilitados na origem.Reunião de prontidão
☐Método por arquivo: versões e fonte de importação do destino conferidas; tokens de administrador na origem e no destino.Reunião de prontidão
☐Runner online, com a tag do engajamento, protegido, travado no projeto e com tempo máximo de job de 8 horas ou mais.Reunião de prontidão
☐Plano de ondas com onda piloto, janelas, aprovadores e janela de rollback definidos.Reunião de prontidão
☐Política de usuários definida; no método por arquivo, usuários criados ou provisionados antes da primeira onda.Reunião de prontidão
☐Host de migração provisionado conforme a especificação, com saída HTTPS para origem, destino, gitlab.com, registry.gitlab.com e Docker Hub.Cliente
☐Tokens da origem e do destino emitidos com escopos, papéis e validade exigidos e cadastrados como variáveis protegidas.Cliente
☐Congelamento de escrita comunicado aos usuários da origem para a janela de cada onda.Cliente
☐Com cópia de imagens: Docker do host confiando na CA do registry e da instância de destino, e disco para a maior imagem.Cliente