Этот проект предназначен для автоматической миграции репозиториев из Bitbucket в GitLab. Основные функции включают клонирование репозиториев из Bitbucket, создание соответствующих проектов и групп в GitLab.
- Убедитесь, что у вас установлены Java и Maven.
- Склонируйте репозиторий:
git clone <URL вашего репозитория> cd <имя репозитория>
- Создайте файл
config.properties
вsrc/main/resources
и заполните его следующими параметрами:bitbucket.username=<Ваш Bitbucket логин> bitbucket.password=<Ваш Bitbucket пароль> gitlab.url=<URL вашего GitLab> gitlab.token=<Токен пользователя в гитлаб> gitlab.paths=<Список путей GitLab проектов через запятую> bitbucket.urls=<Список URL Bitbucket репозиториев через запятую>
Запустите приложение из Main-класса или с помощью следующей команды:
mvn compile exec:java -Dexec.mainClass="org.hoffmann.Main"
Main: Точка входа в приложение. Запускает процесс миграции.
Migrator: Основной класс, содержащий логику миграции репозиториев.
Main.main(String[] args): Запускает процесс миграции.
Migrator.migrate(): Основной метод для выполнения миграции.
Migrator.loadConfig(): Загружает конфигурацию из файла config.properties.
Migrator.validateConfig(): Проверяет корректность конфигурации.
Migrator.validateGitlabProjectPath: Проверяет корректность указанных путей в Gitlab.
Migrator.cloneRepositoryFromBitbucket(String bitbucketUrl, String username, String password): Клонирует репозиторий из Bitbucket.
Migrator.createGitLabProject(String gitlabUrl, String gitlabToken, String projectPath): Создает проект в GitLab со всеми необходимыми группами.
Migrator.pushRepositoryToGitLab(Path repoDir, String gitlabRepoUrl, String gitlabToken): Отправляет репозиторий в GitLab.
Migrator.deleteDirectory(File file): Удаляет временную директорию.
Main вызывает метод migrate() класса Migrator для выполнения миграции. Migrator использует библиотеки JGit для работы с Git и gitlab4j-api для взаимодействия с GitLab API.
Java 8 или выше
Maven 3.6.0 или выше
Доступ к Bitbucket и GitLab
Ange Hoffmann