Git 补丁集创建的钩子获取参数



我正在创建一个补丁集创建的钩子外壳脚本。每当我向 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:

  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
    

最新更新