Skip to content

Automation for migrating Gitlab SaaS to a corporate Gitlab

Notifications You must be signed in to change notification settings

caiolombello/Gitlab-Migration-Tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Migração Gitlab

Uma ferramenta de migração automatizada usando Gitlab API.

Funcionalidades

Estrutura

  • Transferência de grupos*
  • Transferência de subgrupos*
  • Transferência de projetos*
  • Exclusão de projetos
  • Mantém a mesma organização estrutural do ambiente

Conteúdo

  • Migração do conteúdo dos repositórios*
  • Migração das variáveis de ambiente para seus devidos projetos*

Usuários

* Salva seus respectivos arquivos em seus diretórios propriamente criados.

Requisitos

Client-side

  • Token de acesso de ambos ambientes no Gitlab
  • Função de usuário do Gitlab como Dono
  • Espaço para armazenamento de arquivos dos repositórios
  • Git
  • Python >= 3.8
    • colorama
    • requests
    • urllib3
    • chardet

Rodando em Docker

  1. Exporte e Importe seus Grupos

  2. Variáveis precisam ser definidas:

export SOURCE_ID=# id do grupo raiz do ambiente antigo
export OLD_ORIGIN_USER=# usuário do ambiente antigo
export OLD_ORIGIN_API=# api do ambiente antigo. exemplo: https://gitlab.com/api/v4/
export OLD_ORIGIN_TOKEN= # token de acesso do ambiente antigo (https://gitlab.com/-/profile/personal_access_tokens)
export ORIGIN_USER= # usuário do novo ambiente
export ORIGIN_API=# api do novo ambiente. exemplo: http://localhost:8080/api/v4/projects
export ORIGIN_TOKEN=# token de acesso do novo ambiente (http://localhost/-/profile/personal_access_tokens)
  1. Construindo imagem Docker:
docker build \
--build-arg SOURCE_ID=$SOURCE_ID \
--build-arg OLD_ORIGIN_USER=$OLD_ORIGIN_USER \
--build-arg OLD_ORIGIN_API=$OLD_ORIGIN_API \
--build-arg OLD_ORIGIN_TOKEN=$OLD_ORIGIN_TOKEN \ 
--build-arg ORIGIN_USER=$ORIGIN_USER \ 
--build-arg ORIGIN_API=$ORIGIN_API \
--build-arg ORIGIN_TOKEN=$ORIGIN_TOKEN \
-t gitlab-export .
  1. Rodando em Docker:
docker run -it gitlab-export bash
  1. Executando a migração:
python3 get-all.py && \
python3 post-all.py
  1. Caso queira deletar todos os projetos:
python3 delete-projects.py

About

Automation for migrating Gitlab SaaS to a corporate Gitlab

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published