異なるユーザによる異なるコミットからなる変更をリモートリポジトリにプッシュしている人のgitユーザ名/電子メールを見つける必要があります。jenkins git pluginを使用してgitでリモートrepoにプッシュしたユーザーを特定する方法はありますか?
プッシュは、gitblit経由でPost-Receiveフックをトリガーし、jenkinsジョブをトリガーし、非ユーザ固有のSSH認証を使用しています。
異なるユーザによる異なるコミットからなる変更をリモートリポジトリにプッシュしている人のgitユーザ名/電子メールを見つける必要があります。jenkins git pluginを使用してgitでリモートrepoにプッシュしたユーザーを特定する方法はありますか?
プッシュは、gitblit経由でPost-Receiveフックをトリガーし、jenkinsジョブをトリガーし、非ユーザ固有のSSH認証を使用しています。
私はgitblitユーザーを定義し、変更をプッシュするためにそれを使用
です。
<property environment="env" />
<target name="xx" description="xx">
<echo message="${env.myuser}" />
</target>
:
def triggerUrl = jenkinsUrl + "/job/" + jenkinsJob + "/buildWithParameters?token=" + jenkinsToken + "&myuser=" + user.getName()
new URL(triggerUrl).getText()
myuserのは、Antスクリプトの例として、ここでは、今的環境変数であります
ジェンキンスは簡単な方法ではありません。私も同様の問題があり、適切な解決策を見つけるまでに時間がかかりました。
私は、Git Pluginとgit logという環境変数の組み合わせを使用しました。 - 現在の
GIT_PREVIOUS_COMMITのSHA - 最初に構築された、前のSHAは同じ ブランチからコミット(現在SHA
GIT_COMMIT:
Gitのプラグインは、二つの環境変数を提供していますブランチでビルド)
git Web Hook trジェンキンスの仕事を引き出します。
一方、git log
は、format
コマンドオプションを使用して著者名と著者メールを取得する手段を提供します。
したがって、あなたはそれぞれの作者の名前とメールがあなたの前の間でコミットを取得することができ、これら二つのオプションは、ジェンキンスジョブをトリガしたコミット組み合わせ:GIT_PREVIOUS_COMMITと現在のコミット:
:以下git log
コマンドを使用して
GIT_COMMIT
git log $GIT_PREVIOUS_COMMIT..$GIT_COMMIT --pretty=format:%an/%ae
実行中のシェルでは、Jenkinsジョブで実行します。 gitプロジェクトのルートにいることを確認してください。