Git patchset-created hook get参数

时间:2017-08-22 14:10:54

标签: git gerrit

我正在创建一个补丁集创建的钩子shell脚本。每当我向Gerrit服务器提交新的补丁集时,我都能够触发Jenkins作业。

现在,我想通过curl命令获得参数并传递给Jenkins作业。我不知道如何实现这个目标,但是我试了一下,但不幸的是,我无法成功通过论证。

Gerrit patchset创建的钩子参数:

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>}]}'

我想要&lt;更改ID&gt;从Gerrit钩子参数传递到“值”:&lt;更改ID&gt;并通过curl命令传递给Jenkins工作。有人知道怎么得到这个论点吗?

1 个答案:

答案 0 :(得分:0)

终于找到了一个从Gerrit服务器获取参数并将这些参数传递回Jenkins作业的解决方案:

  1. 从Gerrit服务器获取参数:

    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