如何告诉Jenkinsfile使用ssh而不是http作为签出代码?

时间:2016-04-01 10:22:01

标签: groovy jenkins-workflow jenkins-pipeline jenkinsfile

似乎使用Jenkinsfile的代码签出使用http作为远程源,我们确实想要使用ssh。

#!groovy

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

这将输出https原点而不是ssh原点。使用github-organization-pipeline插件配置作业,因此无法控制jenkins中作业配置的源。

2 个答案:

答案 0 :(得分:0)

这是我目前的方法,这是丑陋的,我不打算为此辩护。

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

这是有效的,因为github-organization-plugin生成的作业名称看起来像org/repo/branch

答案 1 :(得分:0)

组织文件夹的配置屏幕可以选择使用特定的结帐凭据,通常是SSH私钥。默认情况下,它使用API​​扫描凭据,通常是可用于HTTPS签出的访问令牌(GitHub自己的建议)。