2015-08-16 111 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存儲庫。