2016-04-01 12 views
1

Jenkinsfileを使ったコードチェックアウトでは、リモートからhttpを使用しているようですが、代わりにsshを使いたいと思っています。チェックアウトコードにhttpの代わりにsshを使用するようにJenkinsfileに指示するにはどうすればいいですか?

#!groovy 

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

この意志の出力の代わりにssh 1のhttpsの原点。ジョブはgithub-organization-pipelineプラグインを使用して設定されているため、jenkinsのジョブ設定からソースを制御する方法はありません。

答えて

0

私の現在のアプローチは醜いですが、私はそれを守るつもりはありません。

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の組織・プラグインはorg/repo/branchのように見えるジョブ名を生成するので、これは動作します。

0

組織フォルダの構成画面には、特定のチェックアウト資格情報(通常はSSH秘密キー)を使用するオプションがあります。デフォルトでは、APIスキャンの認証情報(通常はHTTPトークンのチェックアウトに使用できるアクセストークン)を使用します(GitHub独自の推奨事項)。

+0

マルチブランチパイプラインプラグインの詳細については、ブランチソースの「詳細」セクションを展開した後にチェックアウト資格情報を設定することができます。 ssh鍵資格証明に設定されている場合、sshが使用されます。 – sporkthrower

関連する問題