What environment variables are passed to Jenkins when using the Gerrit Trigger Plugin?

六月ゝ 毕业季﹏ 提交于 2019-11-28 23:43:05

As a start, I had a Jenkins build shell script dump all environment variables with GERRIT in the name:

GERRIT_PATCHSET_UPLOADER=\"Alan Thompson\" <theEmail@gmail.com>
GERRIT_PATCHSET_REVISION=eec3b0b65fcdf30872befa2e9ace06e96cd487b4
GERRIT_CHANGE_ID=Ieec3b0b65fcdf30872befa2e9ace06e96cd487b4
GERRIT_PATCHSET_NUMBER=1
GERRIT_EVENT_ACCOUNT_EMAIL=theEmail@gmail.com
GERRIT_CHANGE_NUMBER=8
GERRIT_CHANGE_OWNER=\"Alan Thompson\" <theEmail@gmail.com>
GERRIT_REFSPEC=refs/changes/08/8/1
GERRIT_EVENT_TYPE=change-merged
GERRIT_EVENT_ACCOUNT=\"Alan Thompson\" <theEmail@gmail.com>
GERRIT_CHANGE_SUBJECT=toast:  this is great with coffee
GERRIT_CHANGE_OWNER_NAME=Alan Thompson
GERRIT_PROJECT=kitchen
GERRIT_EVENT_HASH=-1357519550
GERRIT_BRANCH=master
GERRIT_CHANGE_OWNER_EMAIL=theEmail@gmail.com
GERRIT_PATCHSET_UPLOADER_EMAIL=theEmail@gmail.com
GERRIT_CHANGE_URL=http://localhost/8
GERRIT_PATCHSET_UPLOADER_NAME=Alan Thompson
GERRIT_EVENT_ACCOUNT_NAME=Alan Thompson
uncletall

The exact answer can be found in the source here and there is at least some source code comments describing what it means.

Thank your for your share. I find the GerritTriggerParameters.java on GitHub. and I write the shell-script to print the gerrit-trigger variables.

#!/bin/bash
# ============================================================
#  Author: 凍仁翔 / chusiang.lai (at) gmail.com
#  Blog: http://note.drx.tw
#  Filename: showGerritTriggerVar.sh
#  Description: show all variables of Gerrit Trigger.
#  Last modified: 2014-08-28 14:40
# =========================================================== 


echo -e "----
# Parameter name for the commit subject (commit message's 1st line).
\$GERRIT_CHANGE_SUBJECT = ${GERRIT_CHANGE_SUBJECT}

# Parameter name for the full commit message.
\$GERRIT_CHANGE_COMMIT_MESSAGE = ${GERRIT_CHANGE_COMMIT_MESSAGE}

# Parameter name for the branch.
\$GERRIT_BRANCH = ${GERRIT_BRANCH}

# Parameter name for the topic.
\$GERRIT_TOPIC = ${GERRIT_TOPIC}

# Parameter name for the change-id.
\$GERRIT_CHANGE_ID = ${GERRIT_CHANGE_ID}

# Parameter name for the change number.
\$GERRIT_CHANGE_NUMBER = ${GERRIT_CHANGE_NUMBER}

# Parameter name for the URL to the change.
\$GERRIT_CHANGE_URL = ${GERRIT_CHANGE_URL}

# Parameter name for the patch set number.
\$GERRIT_PATCHSET_NUMBER = ${GERRIT_PATCHSET_NUMBER}

# Parameter name for the patch set revision.
\$GERRIT_PATCHSET_REVISION = ${GERRIT_PATCHSET_REVISION}

# Parameter name for the Gerrit project name.
\$GERRIT_PROJECT = ${GERRIT_PROJECT}

# Parameter name for the refspec.
\$GERRIT_REFSPEC = ${GERRIT_REFSPEC}

# The name and email of the abandoner of the change.
\$GERRIT_CHANGE_ABANDONER = ${GERRIT_CHANGE_ABANDONER}

# The name of the abandoner of the change.
\$GERRIT_CHANGE_ABANDONER_NAME = ${GERRIT_CHANGE_ABANDONER_NAME}

# The email of the abandoner of the change.
\$GERRIT_CHANGE_ABANDONER_EMAIL = ${GERRIT_CHANGE_ABANDONER_EMAIL}

# The name and email of the owner of the change.
\$GERRIT_CHANGE_OWNER = ${GERRIT_CHANGE_OWNER}

# The name of the owner of the change.
\$GERRIT_CHANGE_OWNER_NAME = ${GERRIT_CHANGE_OWNER_NAME}

# The email of the owner of the change.
\$GERRIT_CHANGE_OWNER_EMAIL = ${GERRIT_CHANGE_OWNER_EMAIL}

# The name and email of the restorer of the change.
\$GERRIT_CHANGE_RESTORER = ${GERRIT_CHANGE_RESTORER}

# The name of the restorer of the change.
\$GERRIT_CHANGE_RESTORER_NAME = ${GERRIT_CHANGE_RESTORER_NAME}

# The email of the restorer of the change.
\$GERRIT_CHANGE_RESTORER_EMAIL = ${GERRIT_CHANGE_RESTORER_EMAIL}

# The name and email of the uploader of the patch-set.
\$GERRIT_PATCHSET_UPLOADER = ${GERRIT_PATCHSET_UPLOADER}

# The name of the uploader of the patch-set.
\$GERRIT_PATCHSET_UPLOADER_NAME = ${GERRIT_PATCHSET_UPLOADER_NAME}

# The email of the uploader of the patch-set.
\$GERRIT_PATCHSET_UPLOADER_EMAIL = ${GERRIT_PATCHSET_UPLOADER_EMAIL}

# The name and email of the person who triggered the event.
\$GERRIT_EVENT_ACCOUNT = ${GERRIT_EVENT_ACCOUNT}

# The name of the person who triggered the event.
\$GERRIT_EVENT_ACCOUNT_NAME = ${GERRIT_EVENT_ACCOUNT_NAME}

# The email of the person who triggered the event.
\$GERRIT_EVENT_ACCOUNT_EMAIL = ${GERRIT_EVENT_ACCOUNT_EMAIL}

# The refname in a ref-updated event.
\$GERRIT_REFNAME = ${GERRIT_REFNAME}

# The old revision in a ref-updated event.
\$GERRIT_OLDREV = ${GERRIT_OLDREV}

# The new revision in a ref-updated event.
\$GERRIT_NEWREV = ${GERRIT_NEWREV}

# The submitter in a ref-updated event.
\$GERRIT_SUBMITTER = ${GERRIT_SUBMITTER}

# The name of the submitter in a ref-updated event.
\$GERRIT_SUBMITTER_NAME = ${GERRIT_SUBMITTER_NAME}

# The email of the submitter in a ref-updated event.
\$GERRIT_SUBMITTER_EMAIL = ${GERRIT_SUBMITTER_EMAIL}

# The name of the Gerrit instance.
\$GERRIT_NAME = ${GERRIT_NAME}

# The host of the Gerrit instance.
\$GERRIT_HOST = ${GERRIT_HOST}

# The port number of the Gerrit instance.
\$GERRIT_PORT = ${GERRIT_PORT}

# The protocol scheme of the Gerrit instance.
\$GERRIT_SCHEME = ${GERRIT_SCHEME}

# The version of the Gerrit instance.
\$GERRIT_VERSION = ${GERRIT_VERSION}

# A hashcode of the Gerrit event object to make sure every set of parameters
# is unique (allowing jenkins to queue duplicate builds).
\$GERRIT_EVENT_HASH = ${GERRIT_EVENT_HASH}

# The type of the event.
\$GERRIT_EVENT_TYPE = ${GERRIT_EVENT_TYPE}
"

trigger shell job with just one line:

env | grep GERRIT_

and see the Build Log

Really important information, for anyone who bashed their head against the monitor like I did. There was a security update for Jenkins in May 2016 which doesn't allow arbitrary parameters unless they're defined in the job configuration:

https://wiki.jenkins-ci.org/display/JENKINS/Plugins+affected+by+fix+for+SECURITY-170

The parameters defined by Alan Thompson are correct, but you also need to define those parameters in the job configuration.

They are listed in the help text for the trigger; the little question mark next to the trigger checkbox on the job config page.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!