Как настроить Buildbot для опроса частного репозитория git?

Как настроить Buildbot для опроса частного репозитория Git?

В документах GitPoller не упоминается частных репозиториев. Структура файла под моим master/gitpoller-workdir подозрительно похожа на типичную папку репозитория .git, поэтому я предполагаю, что если я изменю файл config, чтобы включить что-то вроде:

[remote "origin"]
    url = [email protected]:myuser/myprivateproject.git
    fetch = +refs/heads/*:refs/remotes/origin/* 

тогда это должно работать, если мой закрытый SSH-ключ где-то загружен.


person Cerin    schedule 08.12.2015    source источник


Ответы (3)


Все конфигурации должны находиться внутри файла master.cfg. Я не думаю, что изменение master/gitpoller-workdir было бы хорошей идеей. Вы можете получить доступ к репозиторию git, вставив имя пользователя и пароль в URL-адрес:

git clone http://USERNAME:[email protected]:foobaz/myrepo.git

Доступ таким образом будет иметь прямой доступ к вашему частному репозиторию. В файле master.cfg это будет выглядеть так:

c['change_source'].append(changes.GitPoller
    ("http://USERNAME:[email protected]:foobaz/myrepo.git",
    workdir='gitpoller-workdir', 
    branch='master',
    pollinterval=120)
person albertgumi    schedule 16.12.2015
comment
В моем удаленном репо разрешены только ключи SSH, а не пароли. Поддерживает ли Buildbot это? - person Cerin; 16.12.2015
comment
Buildbot 1.3.0 будет поддерживать это. - person p12; 02.07.2018

Buildbot теперь поддерживает указание закрытых ключей SSH (эти изменения будут выпущены как часть buildbot 1.3.0). См. https://github.com/buildbot/buildbot/pull/4178.

Отказ от ответственности: я автор этого пиара :-)

person p12    schedule 02.07.2018

Похоже, что BuildBot использует базовую команду ОС git для GitPoller. , который сам как раз собирается вызывать ssh,

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

поэтому я думаю, что вы можете просто использовать стандартные объявления ~/.ssh/config, чтобы предоставить ключ для частного репо. Создайте объявление, которое использует ваш конкретный ключ в домашних каталогах рабочего (и мастера сборки), подобное этому;

# cat /home/worker/.ssh/config

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

И тогда билдбот будет использовать этот ключ.

Я думаю, что если вы хотите использовать ключ для каждого репо, это можно сделать так;

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

а затем соответствующим образом настройте свои URL-адреса в buildbot;

git@repo_1_github.com:organization/my_repo_thing_1.git
git@repo_2_github.com:organization/my_repo_thing_2.git
person Tom    schedule 10.06.2018