需要设置一个只暴露一个分支的 bitbucket 仓库的 gitlab 镜像

Need to setup a gitlab mirror of a bitbucket repo with only ONE branch exposed

我只需要将我的 bitbucket 存储库中的一个分支公开到一个新的 gitlab 存储库。我的学生正在使用 gitlab.com 世界,我的所有教学资料都在 bitbucket 存储库中。我想为特定的 类.

设置特定的分支

例如:

Bitbucket 有回购 APCSA 与分支机构: 掌握 每1 每2 每3 开发

我想在不同的 gitlab 组下对 gitlab 进行不同的 repo 设置。

所以在一组中我想让他们只看到:

APCSA:per1 分支(我很想弄清楚如何反映这一点)

我尝试了很多镜像组合,但它总是镜像整个仓库,所有分支。

您可以创建 GitLab CI/CD pipeline 来克隆或拉取单个分支。您的管道可以 运行 在不同的分支上,以避免冲突等。

使用网络 ui、

  • 创建一个名为 mirror
  • 的新分支
  • 在“设置”中,填充 CI/CD 变量:您的上游、要镜像的分支以及您的回购地址
  • mirror 分支中创建一个名为 .gitlab-ci.yml 的新文件
    • 管道将在(每次)提交时触发,您将能够检查它是否正常工作
  • 创建一个 scheduled pipeline 以按所需频率更新您的存储库

这是我的 .gitlab-ci.yml 镜像上游分支:

job:
    script:
        - git remote show writable || git remote add writable $WRITABLE_URL
        - git checkout $UPSTREAM_BRANCH || git checkout -b $UPSTREAM_BRANCH
        - git pull $UPSTREAM_URL $UPSTREAM_BRANCH
        - git push writable $UPSTREAM_BRANCH
    only:
        - mirror

变量是:

  • WRITABLE_URL = 目的地,即:'git@gitlab.myplace.local:upstream/ansible.git'
  • UPSTREAM_URL = 来源,即:'https://github.com/ansible/ansible.git'
  • UPSTREAM_BRANCH = 即:'stable-2.8'

您将需要使用命令行来安装 gitlab-runner, if you don't have one already. You will also need to create a deploy key (Settings / Repository) in order to allow push to work (or use deploy token,但写入权限在部署令牌的免费计划中不可用。