在使用Gerrit触发器插件时,哪些环境变量会传递给Jenkins?

mzaanser  于 2022-11-02  发布在  Jenkins
关注(0)|答案(6)|浏览(285)

我正在使用Gerrit Trigger插件来启动Jenkins构建,但是还没有找到一个记录所有环境变量的好地方。这样的文档存在吗?

ecfdbz9o

ecfdbz9o1#

作为开始,我有一个Jenkins构建shell脚本转储所有名称中包含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
pdkcd3nj

pdkcd3nj2#

确切的答案可以在源代码here中找到,至少有一些源代码注解描述了它的含义。

drnojrws

drnojrws3#

谢谢你的分享。我在GitHub上找到了GerritTriggerParameters.java。我写了shell脚本来打印gerrit-trigger变量。


# !/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}
"
lsmepo6l

lsmepo6l4#

对于像我一样用头撞显示器的人来说,这是非常重要的信息。Jenkins在2016年5月有一个安全更新,不允许任意参数,除非在作业配置中定义了这些参数:
https://wiki.jenkins-ci.org/display/JENKINS/Plugins+affected+by+fix+for+SECURITY-170
Alan Thompson定义的参数是正确的,但您还需要在作业配置中定义这些参数。

stszievb

stszievb5#

只需一行即可触发shell作业:

env | grep GERRIT_

并查看 * 构建日志 *

l2osamch

l2osamch6#

它们列在触发器的帮助文本中;作业配置页面上“Gerrit事件”触发器复选框旁边的小问号。

相关问题