Как указать Jenkinsfile использовать ssh вместо http для кода проверки?

Кажется, что проверка кода с использованием Jenkinsfile использует http для удаленного источника, и вместо этого мы хотим использовать ssh.

#!groovy

stage 'build'
node {
    checkout scm
    sh "cat .git/config"
}

Это выведет источник https вместо источника ssh. Задание настраивается с помощью плагина github-organization-pipeline, поэтому нет возможности управлять источником из конфигурации задания в jenkins.


person sorin    schedule 01.04.2016    source источник


Ответы (2)


Вот мой нынешний подход, который уродлив, я не собираюсь его защищать.

tokens = "${env.JOB_NAME}".tokenize('/')
org = tokens[0]
repo = tokens[1]
branch = tokens[2]
sh "git remote set-url origin [email protected]:${org}/${repo}.git"

Это работает, потому что github-organization-plugin генерирует имена заданий, которые выглядят как org/repo/branch.

person sorin    schedule 01.04.2016

На экране конфигурации папки организации есть возможность использовать определенные учетные данные для проверки, обычно закрытый ключ SSH. По умолчанию он использует учетные данные сканирования API, обычно токен доступа, который можно использовать для проверки HTTPS (собственная рекомендация GitHub).

person Jesse Glick    schedule 03.04.2016
comment
Для получения дополнительной информации о многоветвевом плагине конвейера учетные данные проверки можно установить после расширения раздела Advanced исходного кода ветки. Если установлены учетные данные ключа ssh, он будет использовать ssh. - person sporkthrower; 03.03.2017