2016-12-15 66 views

回答

0

我不得不

  1. 定義gitblit用戶,並將其用於推動變化。
  2. 將我的jenkins作業更改爲參數化作業併爲用戶名(myuser)定義參數。
  3. 在我的掛鉤中添加用戶名

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> 
2

詹金斯並沒有提供簡單的方法來實現這一點。我有類似的問題,並花了一些時間找到合適的解決方案。

我最終使用了環境變量Git Plugingit 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項目的根。