如何在Jenkins作业中克隆github组织的私有存储库

时间:2015-08-16 01:09:41

标签: git github jenkins pull-request

我是github组织的所有者,我可以访问所有存储库。其中一些是私人的,另一些是公开的。我正在尝试设置Jenkins,以便在向组织的任何存储库发出拉取请求时触发构建。问题是我有一个外部系统,无论何时发出拉取请求,都会通过github webhooks通知。我必须将Jenkins与这个系统集成,这是一个要求。该系统还可以通过api请求触发Jenkins的通知。 (https://python-jenkins.readthedocs.org/en/latest/examples.html

我可以看到自动Jenkins构建触发器的所有解决方案都与Jenkins的github插件有关。 (https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin)。我目前无法使用它,因为我在github和Jenkins之间有一个新系统的额外间接。

目前,当我的系统收到来自github的通知时,它会发出api请求来构建具有存储库名称和分支的作业。现在,jenkins作业执行一个shell脚本,它执行存储库的git克隆并运行测试。我无法找到一种方法来对组织的私有存储库进行git克隆。

要求

  1. Jenkins构建控制台输出是公共的,因此输出中不应出现与登录相关的信息。

  2. Jenkins是为整个组织而构建的,因此我不想将ssh密钥添加到我的github帐户。

  3. 完成它的最佳/更清洁的方法是什么?

1 个答案:

答案 0 :(得分:3)

您通常会通过创建read-only deploy key来处理此类事情。部署密钥是与单个存储库关联的ssh(公共)密钥,而不是与整个github帐户关联的密钥。默认情况下,部署密钥是只读的(除非您在添加密钥时选中“允许写访问”复选框)。

该链接还提供了一些其他建议,用于管理从自动化进程对github存储库的访问。