2017-08-22 16 views
0

私はパッチセット作成フックシェルスクリプトを作成しています。 Gerritサーバーに新しいパッチセットを送信するたびに、Jenkinsジョブを起動して実行できるようになりました。Gitパッチセット作成フック引数を取得

ここで、引数を取得し、curlコマンドでJenkinsジョブに渡します。私はこれをどのように達成するのか分かりませんが、不運にもいくつか試してみます。

ヘリットのパッチセット作成のフックパラメータ:

patchset-created --change <change id> --is-draft <boolean> --kind <change kind> --change-url <change url> --change-owner <change owner> --project <project name> --branch <branch> --topic <topic> --uploader <uploader> --commit <sha1> --patchset <patchset id> 

マイスクリプト:

#!/usr/bin/env sh 
#trigger Jenkin job with API token 
curl -X POST http://<username>:<API token>@<server>/job/<job name>/build --data-urlencode json='{"parameter": [{"name":"change_id", "value":<change id value>}]}' 

私は<変更IDを持っていると思います>ヘリットフックパラメータから "値" に渡す:<変更をcurlコマンドでJenkinsジョブに渡します。誰もその議論を得る方法を知っていますか?

答えて

0

は最終的にヘリット・サーバからの引数を取得し、ジェンキンスジョブに戻って、これらの引数を渡すための解決策を見つけた:

  1. 取得ヘリット・サーバからの引数:

    CHANGE_ID="" 
    CHANGE_URL="" 
    PATCHSET="" 
    
    while [ $# -gt 0 ] 
    do 
        case "$1" in 
        "--change") 
         CHANGE_ID=$2 
         shift 2 
         ;; 
        "--change-url") 
         CHANGE_URL=$2 
         shift 2 
         ;; 
        "--patchset") 
         PATCHSET=$2 
         shift 2 
         ;; 
    *) 
        shift 
        ;; 
        esac 
    done 
    
関連する問題