我正在创建一个补丁集创建的钩子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工作。有人知道怎么得到这个论点吗?
答案 0 :(得分:0)
终于找到了一个从Gerrit服务器获取参数并将这些参数传递回Jenkins作业的解决方案:
从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