Как вытащить из частного репо в конвейер битбакета?

У меня есть конвейер битбакета, который работает хорошо, но теперь в проекте мне нужно извлечь из частного репозитория, который содержит пакет, который требуется в моем composer.json.

Когда я делаю установку композитора в конвейере, он останавливается с этой ошибкой

Failed to execute git clone --no-checkout '[email protected]:company/package.git' [...]
  Cloning into '/opt/atlassian/pipelines/agent/build/vendor/company/package'...                                                                                                                                                                                                                                                                                 
  Permission denied (publickey).                                                                                                                                                                                                                                                                                                                                                
  fatal: Could not read from remote repository.                                                                                                                                                                                                                                                                                                                                 
  Please make sure you have the correct access rights                                                                                                                                                                                                                                                                                                                           
  and the repository exists. 

В конвейере не определен какой-либо ключ SSH, поэтому его нельзя извлекать, но как я могу определить его, поскольку он эфемерен?

Или, может быть, я должен определить требование иначе?


person user3005099    schedule 17.04.2017    source источник


Ответы (1)


  • Добавьте ключ развертывания (открытый ключ SSH) в частный репозиторий.
  • Добавьте соответствующий закрытый ключ этого ключа (в кодировке Base64) в качестве переменной среды в репозиторий, в котором есть Pipeline. В идеале это должно быть помечено как защищенное, что скроет это.
  • Используйте переменную среды (декодированную с помощью Base64) в конвейере. Обычно это означает что-то вроде записи в каталог пользователя .ssh.

Этого должно быть достаточно, чтобы запустить его.

Более того, я только что увидел, что теперь есть (может быть, это новое, но я не уверен) новая страница «Настройки» > «Конвейеры» > «SSH-ключи» для управления SSH-ключами пайплайнов. Таким образом, вам даже не нужно будет добавлять закрытый ключ к используемому вами образу Docker. Но пока не пользовался, так что ничего не могу сказать по этому поводу.

person BlueM    schedule 18.04.2017
comment
Большое спасибо, я собирался опубликовать этот урок, который дает ту же информацию :) community.atlassian.com/t5/Bitbucket-questions/ - person user3005099; 18.04.2017