为了让Jenkins能够访问同一台服务器上的多个存储库,我将.ssh/config
设置如下:
Host a.github.com
HostName github.com
User git
IdentityFile ~/.ssh/project-a-id_rsa
# same for other repos
并将Jenkins作业的源代码管理(SCM)设置为git
和git@a.github.com:user/repo_a.git
。它工作正常。
问题
我希望在推送事件中触发这些作业,因此我在github,.i.e, Jenkins(GitHub插件)中设置webhook服务。从webhook收到的请求是“POST https://github.com/user/repo_a”,这是与SCM中设置的主机不同的主机,.i.e,a.github.com
。
因为它们不同,所以作业不会自动构建。
丑陋的解决方案
通过将SCM设置为github.com
并使用a.github.com
克隆项目的git配置的远程URL,我得到了一些运行。所以SCM会匹配webhook,而jenkins在运行git push
时会使用.ssh/config
信息。
问题
我还可以做些什么 ?是否有更好,更容易实现的方法来实现这一目标?
答案 0 :(得分:0)
我停止使用deploy key
并在jenkins上添加了我自己的帐户凭据,以便能够处理所有存储库,而无需使用.ssh/config
更改主机。