gpt4 book ai didi

git - Jenkins 和 Git - 如何获取提交者的名字?

转载 作者:太空狗 更新时间:2023-10-29 12:50:36 28 4
gpt4 key购买 nike

我正在尝试将更多 GIT 提交信息放入 HipChat 房间。

我看到有许多 GIT 变量可以在 jenkins 中使用。我正在执行作业的 Execute Shell 步骤。

这些工作:

echo "${GIT_BRANCH}"

echo "${GIT_URL}"

echo "${GIT_COMMIT}"

这些不:

echo "${GIT_COMMITTER_EMAIL}"

echo "${GIT_COMMITTER_NAME}"

echo "${GIT_AUTHOR_EMAIL}"

echo "${GIT_AUTHOR_NAME}"

echo "${GIT_USER}"

问题 1:为什么上面的变量不起作用?

这个有效:

git show --name-only

问题二:为什么我做不到 Foo = "git show --name-only"并在工作的其他地方使用 Foo,即发送到 HipChat?

我看到有一个插件 envInject。但这是写入执行 shell 步骤的工作区中的文件,然后从该文件中读取。对于我正在尝试做的事情,这似乎有点矫枉过正。

问题 3:envInject 是我唯一的选择吗?

最佳答案

我不知道为什么有些变量可用而有些变量不可用,但似乎您不是唯一遇到该问题的人(参见例如 Git plugin for Jenkins: How do I set env variables GIT_AUTHOR_EMAIL and GIT_COMMITTER_EMAIL?)。

使用例如git show -s --pretty=%an 获取作者姓名并通过命令替换将其存储在变量中,如@MattKneiser 所述:

foo=$(git show -s --pretty=%an)

此变量在 Jenkins 作业的其他 shell 步骤中不可用,但您可以将其保存到工作区中的文件中,

echo "foo=\"$foo\"" > $WORKSPACE/envvars

然后在另一个 shell 中获取该文件:

. $WORKSPACE/envvars

关于git - Jenkins 和 Git - 如何获取提交者的名字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28311341/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com