Получение приватного репо с помощью мода Go в круге CI - PullRequest
0 голосов
/ 08 января 2019

Я последовал за этим и добавил ключи в разрешениях SSH, а также отпечаток пальца в файле конфигурации моего круга.

Я также добавил это к своему ~/.gitconfig как часть моего этапа компиляции круга.

[url "ssh://git@github.com/MYORGANIZATION/"]
insteadOf = https://github.com/MYORGANIZATION/

по официальной рекомендации

Когда я SSH в изображение круга, я вижу добавление отпечатка пальца с помощью этой команды ssh-add -l -E md5. Но в ~/.ssh/ ключи не добавлены. Я ожидаю, что там будет ~/.ssh/id_rsa_<fingerprint>.

Однако мне по-прежнему отказывают в доступе, когда я пытаюсь получить пакет.

1 Ответ

0 голосов
/ 10 января 2019

Самый простой способ заставить это работать, это следовать инструкциям по добавлению пользователя машины: https://circleci.com/docs/2.0/gh-bb-integration/#enable-your-project-to-check-out-additional-private-repositories

Для более сложного решения, читайте дальше.

Я недавно пытался сделать то же самое. Клавиши add_ssh_keys должны (и сделали в моем случае) добавить файл id_rsa_<fingerprint>.

Проблема, с которой я столкнулся, заключалась в том, что ключ добавлялся в конфигурацию ssh, содержащую:

Host !github.com *

Я считаю, что проблема в том, что он использует ключ CircleCI по умолчанию для аутентификации с помощью github. Этот ключ действителен, поэтому github принимает его, но он, скорее всего, не имеет доступа к закрытому репо в ваших зависимостях.

Чтобы заставить его работать, мне нужно было:

# Disable ssh-agent which seemed to override `-i`
export SSH_AUTH_SOCK=none
# Tell get to ssh with the key I want to use
export GIT_SSH_COMMAND="ssh -i /root/.ssh/id_rsa_FINGERPRINT

# Run some command to pull dependencies
go test ./...
...