2016-09-12 5 views
4

私はSVNマージを実行する可能性をテストし、マージをコミットする権限をユーザに尋ねるJenkinsfileスクリプトを持っています。どのユーザーがJenkins-Pipeline入力ステップに回答したかを知るにはどうすればよいですか?

コミットメッセージに書き込むために「入力」ステップに答えるユーザー名を知りたいと思います。

これは可能ですか?

これは、仮に私がやりたいものです。

outcome = input message: 'Merge trunk into branch?', ok: 'Merge' 
echo "User that allowed merge: ${outcome.user}" 

答えて

8

inputステップが提出していますユーザーが含まれている必要があり返さMapのキーを指定することを可能にするオプションsubmitterParameterを得ました入力ダイアログ:

これを指定すると、これはこの入力を承認するユーザーのIDを含む戻り値の名前です。
戻り値は、parametersの値と同様の方法で処理されます。
タイプ:文字列

次のようにこれはその後になります

def feedback = input(submitterParameter: 'submitter', ...) 
echo "It was ${feedback.submitter} who submitted the dialog." 

PS:誰もが両方の正と負のフィードバックをユーザーに返す本格的なコードスニペットに関心がある場合ダイアログ(とタイムアウトも)、私は親切にour pipeline libraryを指しています。

3

それはsource codeにmentionnedとして、今だけエントリーパラメータは、input stepの回答で返されるため、現時点では不可能である。

// TODO: perhaps we should return a different object to allow the workflow to look up 
// who approved it, etc? 
switch (mapResult.size()) { 
case 0: 
    return null; // no value if there's no parameter 
case 1: 
    return mapResult.values().iterator().next(); 
default: 
    return mapResult; 
} 

入力ステップを承認できるユーザーを制限する場合は、submitterパラメータを使用できます(例: :

input message: 'Approve ?', submitter: 'authorized-submitter' 

EDIT

2017年1月以降では、送信する追加のパラメータを要求することが可能になりました。上記のStephenKing answerをご覧ください。あなたがgroovy-sandboxをオフにした場合

+0

残念が、これはすでにそれは(私の答えを参照)非常に良い –

+0

入手できたことを望む、更新をありがとう!あなたの答えは今や受け入れられた答えになるはずです:-) – StephenKing

+1

:-)その間にある – Pom12

1

あなたは例外のためにこれを行うことができます。

try { 
'Deploy to production?' 

node { 
    sh 'echo deploying' 
    } 
} catch(e) { 
    def user = e.getCauses()[0].getUser() 
    echo "Production deployment aborted by:\n ${user}" 
} 
+1

に変更したか、サンドボックスをオフにする代わりにホワイトリストを作成しました。 – StephenKing

+0

このメソッドを使用すると、tryブロックでuseridを取得できません。 – user1501382

1

入力にパラメータを要求していない場合は、submitterParameterを追加します。それは戻りオブジェクトのパラメータとしてそれを追加するのではなく、返されたオブジェクトをその中のユーザー名を含む文字列に変換しました。

def feedback = input(submitterParameter: 'submitter') 
echo "It was ${feedback} who submitted the dialog." 
関連する問題