Как я могу подключить несколько частных источников к моему агенту конвейера в Azure? - PullRequest
0 голосов
/ 12 октября 2018

В настоящее время я сталкиваюсь с проблемой, когда я могу извлечь из одного частного источника GitHub на этапе checkout, но не могу получить другой частный источник GitHub из script позже в конвейере из-за отсутствия прав доступа.Примечание: оба репо являются частью одной организации.И я уже подключил приложение Azure к GitHub с доступом ко всем репозам

На моей стадии checkout я явно установил persistCredentials: true.Это, насколько я понимаю, должно позволить следующим сценариям в конвейере использовать учетные данные GitHub, которые использовались при извлечении для «Получить источники».

Вот пример сценария, который завершается ошибкой:

- script: |
git clone --branch=username --single-branch 
https://github.com/username/myRepo.git $(Agent.BuildDirectory)/myRepo
displayName: 'clone myRepo' 

А на выходе:

Generating script.
[command]/bin/bash --noprofile --norc /Users/vsts/agent/2.140.2/work/_temp/cb2622cc-28e0-435a-bb98-154bdabf9641.sh
Cloning into '/Users/vsts/agent/2.140.2/work/1/myRepo'...
fatal: could not read Username for 'https://github.com': Device not configured
##[error]Bash exited with code '128'

1 Ответ

0 голосов
/ 17 июня 2019

Я тоже к этому прибегал.Я закончил тем, что установил новый ключ развертывания с задачей InstallSSHKey .Действия довольно просты.

  1. На локальном компьютере сгенерируйте ключ с помощью ssh-keygen -f <key file name>
  2. . Загрузите закрытый ключ в защищенный файл в конвейерах Azure *.1011 *
  3. Получите открытый ключ rsa от github, используя ssh-keyscan github.com
  4. Добавьте следующее к своему azure-pipelines.yml
steps:
# ...
- task: InstallSSHKey@0
  inputs:
    knownHostsEntry: github.com ssh-rsa ...  # Github's public key from ssh-keyscan
    sshPublicKey: ssh-rsa ... # The public key (.pub) to key you generated
    sshKeySecureFile: my_deploy_key # This is the name you gave the secure file when you uploaded it
- script: |
    git clone git@github.com:user/repo.git
# ...
Добавьте открытый ключ в качестве ключа развертывания в хранилище, которое необходимо клонировать в github.

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

PS.Мне кажется, что документация по задачам Azure Pipelines немного сложна, но большинство задач определены в этом репо .Вот определение задачи InstallSSHKey , которую я использовал.

...