如何配置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密钥被加载到某处。
答案 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