3

为了让 Jenkins 能够访问同一服务器上的多个存储库,我设置.ssh/config如下:

Host a.github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/project-a-id_rsa

# same for other repos

并将 Jenkins 作业的源代码管理(SCM) 设置为gitgit@a.github.com:user/repo_a.git。它工作正常。

问题
我希望在推送事件上触发这些作业,所以我在 github 中设置了一个 webhook 服务,即Jenkins (GitHub 插件)。从 webhook 收到的请求是“POST for https://github.com/user/repo_a ”,它与 SCM 中设置的主机不同,即a.github.com.
因为它们不同,所以作业不会自动构建。

丑陋的解决方案
我通过将 SCM 设置为github.com并覆盖项目的 git config 的远程 url 来运行一些东西,一旦使用a.github.com. 因此 SCM 将匹配 webhook,并且 jenkins 在运行时git push将使用该.ssh/config信息。

问题
我还能做什么?有没有更好、更容易自动化的方法来实现这一目标?

4

1 回答 1

0

我停止使用deploy key并在 jenkins 上添加了我自己的帐户凭据,以便能够处理所有存储库,而无需使用.ssh/config.

于 2016-01-20T09:09:51.307 回答