Как клонировать частное хранилище организации github в задании Дженкинса


Я являюсь владельцем организации github и имею доступ ко всем репозиториям. Некоторые из них являются частными, а другие-публичными. Я пытаюсь настроить Дженкинса на запуск сборок, когда запрос pull делается в любой репозиторий организации. Проблема в том, что у меня есть внешняя система, которая уведомляется через GitHub webhooks всякий раз, когда делается запрос на вытягивание. Я должен интегрировать Дженкинса с этой системой, что является обязательным требованием. Эта система также может запускать уведомления для Дженкинса через api запросы. (https://python-jenkins.readthedocs.org/en/latest/examples.html )

Я мог видеть, что все решения для автоматических триггеров сборки Jenkins связаны с плагином GitHub Jenkins. (https://wiki.jenkins-ci.org/display/JENKINS/GitHub + Plugin ). в настоящее время я не могу использовать его, потому что у меня есть дополнительная косвенность с новой системой между github и Jenkins.

В настоящее время, когда моя система получает уведомление от github, она выдает запрос api на построение задания с именем репозитория и филиалом. Теперь задание Дженкинса выполняет сценарий оболочки, который делает git-клон репозитория и запускает тесты. Я не мог найти способ сделать git-клон частного хранилища организации.

Требования

  1. Выходные данные консоли сборки Дженкинса являются общедоступными, и поэтому информация, связанная с входом в систему, не должна присутствовать в выходных данных.

  2. Дженкинс построен для всей организации, и поэтому я не хочу добавлять ssh-ключ в свой github счет.

Каков наилучший / более чистый способ ее достижения?

1 2

1 ответ:

Обычно вы справляетесь с такого рода вещами, создавая ключ развертывания только для чтения. Ключ развертывания-это ssh (открытый) ключ, связанный с одним репозиторием, а не со всей учетной записью github. По умолчанию ключ развертывания доступен только для чтения (если вы не установите флажок "Разрешить доступ на запись" при добавлении ключа).

Эта ссылка также содержит некоторые другие предложения по управлению доступом к репозиториям github из автоматических процессов.