如何配置Buildbot来轮询私人git仓库?

时间:2015-12-08 20:35:40

标签: git buildbot

如何配置Buildbot以轮询私有Git存储库?

GitPoller文档没有提及私人回购。我的master/gitpoller-workdir下的文件结构看起来很像一个典型的.git repo文件夹,所以我假设我修改了config文件以包含类似的内容:

[remote "origin"]
    url = git@myprivatehost.com:myuser/myprivateproject.git
    fetch = +refs/heads/*:refs/remotes/origin/* 

那么它应该可以正常工作,假设我的私有SSH密钥被加载到某处。

3 个答案:

答案 0 :(得分:2)

所有配置都应在 master.cfg 文件中。我不认为修改master/gitpoller-workdir会是一个好主意。您可以访问在URL中插入用户名和密码的git存储库:

git clone http://USERNAME:PASSWORD@example.com:foobaz/myrepo.git

以这种方式访问​​将直接访问您的私有存储库。在 master.cfg 文件中,它将如下所示:

c['change_source'].append(changes.GitPoller
    ("http://USERNAME:PASSWORD@example.com:foobaz/myrepo.git",
    workdir='gitpoller-workdir', 
    branch='master',
    pollinterval=120)

答案 1 :(得分:1)

Buildbot现在支持指定专用SSH密钥(这些更改将作为buildbot 1.3.0的一部分发布)。参见https://github.com/buildbot/buildbot/pull/4178

免责声明:我是这些PR的作者:-)

答案 2 :(得分:0)

BuildBot似乎正在使用GitPoller的基础git操作系统命令,它本身只会调用ssh

gitbin
    path to the Git binary, defaults to just 'git'

所以我认为你可以使用标准~/.ssh/config声明为私人仓库提供密钥。创建一个声明,该声明使用与此类似的worker(和buildmaster)主目录中的特定键;

# cat /home/worker/.ssh/config

Host github.com
  ClearAllForwardings yes
  User git
  IdentityFile /home/worker/.ssh/id_rsa.github-somekey-specific-to-github

然后buildbot将使用该密钥。

我认为如果你想使用每个repo密钥,那么就可以这样做;

Host repo_1_github.com
  Hostname github.com
  ClearAllForwardings yes
  User git
  IdentityFile /home/worker/.ssh/id_rsa.github-somekey-specific-to-github

Host repo_2_github.com
  Hostname github.com
  ClearAllForwardings yes
  User git
  IdentityFile /home/worker/.ssh/id_rsa.github-some-other-key

然后在buildbot中适当调整您的网址;

git@repo_1_github.com:organization/my_repo_thing_1.git
git@repo_2_github.com:organization/my_repo_thing_2.git