我正在创建一个补丁集创建的钩子外壳脚本。每当我向 Gerrit 服务器提交新的补丁集时,我都能触发 Jenkins 作业运行。
现在,我希望通过 curl 命令获得论证并传递给 Jenkins 作业。我不确定如何实现这一目标,我进行了一些尝试,但不幸的是,我无法成功通过论点。
Gerrit 补丁集创建的钩子参数:
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>}]}'
我想让 Gerrit 钩子参数><更改 id=" 传递给="value">并通过 curl 命令传递给 Jenkins 作业。有人知道如何获得论点吗?更改>
终于找到了一个解决方案,从Gerrit服务器获取参数并将这些参数传递回Jenkins job:
-
从 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