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

I use the Gerrit Trigger plugin to run the Jenkins build, but have not found a good place where all the environment variables are documented. Is there such documentation?

+10
source share
6 answers

For starters, I had a Jenkins build shell script that GERRIT all environment variables with GERRIT :

 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 
+23
source

The exact answer can be found in the source here , and there are at least some comments on the source code that describe what this means.

+5
source

Thanks for your share. I find GerritTriggerParameters.java on GitHub. and I am writing a shell-script to print 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 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} " 
+3
source

starts the shell with only one line:

 env | grep GERRIT_ 

and see build log

+1
source

They are listed in the help text for the trigger; a small question mark next to the trigger on the job configuration page.

+1
source

Really important information, for those who bowed their heads against the monitor, like me. In May 2016, a security update for Jenkins was released that does not allow arbitrary parameters if they are not 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 these parameters in the job configuration.

+1
source

Source: https://habr.com/ru/post/1481065/


All Articles