【问题标题】:Gitlab: Accessing a fork of a private repositoryGitlab:访问私有存储库的分支
【发布时间】:2017-01-11 20:36:36
【问题描述】:

我们正在尝试将 Gitlab 的私有部署用于大学模块。以下是我们正在尝试做的事情:

  • 每个课程作业都将托管在一个私人 git 存储库中(在一个组中)
  • 注册课程的所有学生都可以访问该存储库
  • 学生将 fork 私有存储库,将其克隆到本地并开始工作
  • 学生将他的解决方案推送到他的存储库
  • 工作人员将提取所有学生的提交内容并对其进行评分(希望通过自动评分)

一切都很好,除了我们无法访问学生分叉的私有存储库。我们有一个好主意,让每个学生在他们的个人资料中添加一个公共 SSH 密钥,但是唉! It is not possible since SSH keys have to be unique to each user .. 有什么解决方法吗?

【问题讨论】:

  • 部署密钥不是意味着所有学生都可以看到彼此的存储库吗?这似乎是不可取的。

标签: git gitlab


【解决方案1】:

Gitlab 确实有一个名为“部署密钥”的功能,它授予对项目的只读访问权限,学生需要手动将公钥添加到他们的项目中,但它会为您提供对他们工作的访问权限。

我认为它不会有与标准用户密钥相同的限制。

引用他们的文档“部署密钥允许使用单个 SSH 密钥对多个项目进行只读访问。”

更多详情 (https://docs.gitlab.com/ce/ssh/README.html#deploy-keys)

【讨论】:

  • 谢谢!实际上,我们曾考虑过该选项,但认为它行不通。在我重新访问它之后,事实证明,在你分叉一个私人回购之后,可以选择从一个分叉的回购中添加一个部署密钥..所以它确实有效:)(虽然让学生添加密钥有点不方便每次练习...)
  • 我同意这有点不方便,但我很高兴它对你有用。
【解决方案2】:

对于那些现在看到这个的人,我们设法按照@jdow 的建议使用部署密钥和组的组合来完成这项工作。但是,这个解决方案有点笨拙,并且有一些缺点,包括:

  • 员工无权访问存储库
  • 学生必须为每个分叉存储库手动启用部署密钥

因此,我提出了一个名为“gitlab 教室”的新功能,我拥有detailed here

【讨论】:

    猜你喜欢
    • 2023-03-16
    • 2014-08-19
    • 2019-11-04
    • 2021-09-02
    • 2015-11-01
    • 2015-07-24
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多