2015-08-16 117 views
2

我是github组织的所有者,我可以访问所有存储库。其中一些是私人的,另一些是公共的。我试图设置Jenkins以在向组织的任何存储库提出请求时触发构建。问题是,我有一个外部系统,通过github webhooks进行通知,只要发出拉取请求。我必须将詹金斯与这个系统结合起来,这是一项要求。该系统还可以通过API请求向Jenkins发送通知。 (https://python-jenkins.readthedocs.org/en/latest/examples.html如何在Jenkins作业中克隆github组织的私人存储库

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

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

要求

  1. 詹金斯建立控制台输出是公开的,因此登录相关信息不应该存在的输出的内部。

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

什么是最好/更干净的方式来实现它?

回答

3

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

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