gitlab远程镜像存储库

时间:2018-06-14 09:42:25

标签: gitlab gitlab-api

我已经设置了两个gitlab服务器,一个主服务器和一个服务器来镜像我的所有项目存储库。 我正在寻找一个命令行工具/方法来配置"远程镜像存储库"每个项目的设置,这是可能的,如何?

感谢您的支持。

3 个答案:

答案 0 :(得分:1)

我手动配置了所有内容。

答案 1 :(得分:0)

存储库镜像

支持使用某些版本的Gitlab进行Repository Mirroring。 您可以通过存储库的设置或导入存储库来启用它 Settings> Pull from a remote repository> Mirror repository

以下是文档:https://docs.gitlab.com/ee/workflow/repository_mirroring.html

Gitlab CI

如果您无法使用,则可以设置Gitlab CI来执行此操作。
在存储库的根目录中创建一个gitlab-ci.yml文件,该文件可能如下所示:

mirror:
  script: 
  - git clone http://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.mycompany.home/developers/master_project.git &> /dev/null
  - git config --global user.name "${GITLAB_USER_NAME}"
  - git config --global user.email "${GITLAB_USER_EMAIL}"
  - git add --all
  - git commit -m "Push to mirrored repo"
  - git push http://${YOUR_USERNAME}:${PERSONAL_ACCESS_TOKEN}@gitlab.mycompany.home/developers/mirrored_project.git HEAD:master

您可以在Settings>中设置变量CI / CD> Variables

我还没有对此进行测试,它只是为了引导您走向可能的方向。

以下是CI的文档:https://docs.gitlab.com/ee/ci/yaml/README.html#jobs

答案 2 :(得分:0)

从GitLab 12.9(2020年3月)开始,您可以使用GitLab API配置“远程镜像”;参见https://docs.gitlab.com/ee/api/remote_mirrors.html#create-a-remote-mirror

curl --request POST --data "url=https://username:token@example.com/gitlab/example.git" --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/42/remote_mirrors"