2016-07-19 3 views
23

Я следовал this tutorial:Оформить заказ Jenkins Pipeline Git SCM с полномочиями?

node { 
    git url: 'https://github.com/joe_user/simple-maven-project-with-tests.git' 
    ... 
} 

Однако это не говорит о добавлении учетных данных. У Дженкинса есть специальный раздел «Учетные данные», в котором вы определяете пользователя &, а затем получите идентификатор для использования в заданиях, но как это использовать в инструкциях Pipeline?

Я попытался с:

git([url: '[email protected]:company/repo.git', branch: 'master', credentialsId: '12345-1234-4696-af25-123455']) 

нет удачи:

stderr: Host key verification failed. 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 

Есть ли способ настроить кредитки в трубопроводе, или я должен поставить SSH-ключи к .ssh Дженкин в Linux пользователя/authorized_keys файл?

В идеальном мире я хотел бы иметь хранилище для работ по конвейеру и репо-ключей, затем запустить Docker Jenkins и динамически добавлять эти задания и ключи там без необходимости настраивать что-либо в Jenkins Console.

ответ

48

Вы можете использовать следующие в трубопроводе:

git branch: 'master', 
    credentialsId: '12345-1234-4696-af25-123455', 
    url: 'ssh://[email protected]:company/repo.git' 

Если вы используете SSH URL, то учетные данные должны быть имя пользователя + секретный ключ. Если вы используете https clone url вместо ssh, то ваши учетные данные должны быть именем пользователя + пароль.

+0

Это исправлено, спасибо. Я не знал, что SSH-url и HTTPS-url требуют разных учетных данных для работы! – Render

+1

было полезно, но 'credentialsId' поступает из id в [' /var/lib/jenkins/credentials.xml'](https://stackoverflow.com/a/35603191/432903), поскольку мне приходилось пытаться это понять вне. – prayagupd

+4

@prayagupd, вы должны иметь возможность получить идентификатор учетных данных со страницы учетных данных ('http: // yourjenkinsinstall/credentials'). Нет необходимости тралить файлы конфигурации. –

5

Если вы хотите использовать учетные данные SSH,

git(
     url: '[email protected]<repo_name>.git', 
     credentialsId: 'xpc', 
     branch: '${branch}' 
    ) 

, если вы хотите использовать имя пользователя и пароль учетных данных, вам необходимо использовать HTTP-клон, как упоминалось @Serban.

git(
     url: 'https://github.com/<repo_name>.git', 
     credentialsId: 'xpc', 
     branch: '${branch}' 
    ) 
Смежные вопросы