Uma ferramenta de migração automatizada usando Gitlab API.
- 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
- Migração do conteúdo dos repositórios*
- Migração das variáveis de ambiente para seus devidos projetos*
- Transferência de usuários*
- Nome
- Usuário
- Email ([email protected])
* Salva seus respectivos arquivos em seus diretórios propriamente criados.
- 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
-
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)
- 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 .
- Rodando em Docker:
docker run -it gitlab-export bash
- Executando a migração:
python3 get-all.py && \
python3 post-all.py
- Caso queira deletar todos os projetos:
python3 delete-projects.py