我需要找到推送更改的人員的git用戶名/電子郵件,其中包含由不同用戶提交的不同提交到遠程存儲庫。如何確定使用jenkins git插件在git中推送到遠程回購站的用戶?
推送通過觸發jenkins作業的gitblit觸發Post-Receive掛鉤,並使用非用戶特定的SSH認證。
我需要找到推送更改的人員的git用戶名/電子郵件,其中包含由不同用戶提交的不同提交到遠程存儲庫。如何確定使用jenkins git插件在git中推送到遠程回購站的用戶?
推送通過觸發jenkins作業的gitblit觸發Post-Receive掛鉤,並使用非用戶特定的SSH認證。
我不得不
。
def triggerUrl = jenkinsUrl + "/job/" + jenkinsJob + "/buildWithParameters?token=" + jenkinsToken + "&myuser=" + user.getName()
new URL(triggerUrl).getText()
myuser的現在是一個環境變量,這裏Ant腳本的例子:
<property environment="env" />
<target name="xx" description="xx">
<echo message="${env.myuser}" />
</target>
詹金斯並沒有提供簡單的方法來實現這一點。我有類似的問題,並花了一些時間找到合適的解決方案。
我最終使用了環境變量Git Plugin和git log的組合。
Git的插件提供了兩個環境變量:
GIT_COMMIT - 當前
GIT_PREVIOUS_COMMIT的SHA - 建立在以前的SHA來自同一 分支提交(目前SHA上第一建立分支)
你每次都得到你的git Web Hook tr辜負詹金斯的工作。
另一方面,git log
提供了使用format
命令選項獲取作者姓名和作者電子郵件的方法。
因此,結合這兩個選項,你可以得到作者的名字和各自的電子郵件您之前之間犯犯從而引發了詹金斯的工作:GIT_PREVIOUS_COMMIT和當前的承諾:GIT_COMMIT使用下面的git log
命令:
git log $GIT_PREVIOUS_COMMIT..$GIT_COMMIT --pretty=format:%an/%ae
在Jenkins Job中的Executed Shell中。請確保你是你的git項目的根。