推送到CI服务器内的GitLab存储库(部署密钥)

推送到CI服务器内的GitLab存储库(部署密钥),git,permissions,jenkins,tagging,gitlab,Git,Permissions,Jenkins,Tagging,Gitlab,GitLab有一个很好的“部署密钥”功能,对于CI服务器来说非常有用,因为它们通常不需要更多的权限就可以读取和拉取存储库。但是,我需要创建一个标记并将其推送到存储库,以标记从“主”分支构建的每个版本 更具体地说,我有一个Jenkins工作,每次触发构建时,它都会从“主”分支构建一个发布版本。如果作业成功,我想在“主”分支头上标记发布号,以供将来参考 我相信我无法使用“部署密钥”功能实现这一点。那我该怎么做呢?我不确定我是否可以创建一个额外的用户,只是为了这个,并让他访问该项目。。。因为每个具有G

GitLab有一个很好的“部署密钥”功能,对于CI服务器来说非常有用,因为它们通常不需要更多的权限就可以读取和拉取存储库。但是,我需要创建一个标记并将其推送到存储库,以标记从“主”分支构建的每个版本

更具体地说,我有一个Jenkins工作,每次触发构建时,它都会从“主”分支构建一个发布版本。如果作业成功,我想在“主”分支头上标记发布号,以供将来参考

我相信我无法使用“部署密钥”功能实现这一点。那我该怎么做呢?我不确定我是否可以创建一个额外的用户,只是为了这个,并让他访问该项目。。。因为每个具有GitLab访问权限的用户都绑定到LDAP


有什么建议吗?

2017年更新:自GitLab 8.16(2017年1月)以来,您现在可以添加具有写访问权限的部署密钥


原始答案(2013):部署密钥没有(也不会)对项目的写访问权(如中所述)是正确的

这就给你留下了:

  • 创建LDAP通用帐户(如果这些帐户在您的组织中获得授权)
  • 在单独的LDAP服务器中创建虚拟帐户(但不支持多个LDAP声明)

如果我创建了一个单独的SSH密钥(只是为了不让它与我自己的密钥混淆),并将其添加到每个人的帐户(即应该有权访问该项目的每个人)中,它会起作用吗。这样,如果我离开,我的帐户被删除,它会继续工作。。。或者这不起作用?@RicardoAmaral它可以,但那将涉及共享一个私有ssh密钥,这是一个很大的禁忌。特别是对于具有写访问权限的帐户。是的,我知道。这就是为什么我开始创建一个独立于我自己的。只有负责设置Jenkins系统的开发团队才能共享。我看到的另一个问题是,使用此SSH密钥推送会将提交关联到某个开发人员,最好是来自“Jenkins CI”用户或类似用户,以区分他们。@RicardoAmaral我同意(因此建议为Jenkins创建通用LDAP帐户),我们也这样做。我们在LDAP中有一个
svcjenkins
帐户(
svc
前缀表示服务帐户),该用户是具有开发人员权限的所有组的成员