@takeshin の回答は、build.xml ファイルにアクセスできる場合は問題ありませんが、特にスレーブ ノードでビルドしている場合 (スレーブには参照された build.xml がないため)、これは壊れる可能性があります。
リモート アクセス API を使用して、Jenkins 経由で直接この情報にアクセスできるため、恐れることはありません。
https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API
例えば:
http://<host>/jenkins/job/<job_name>/lastSuccessfulBuild/api/xml
(xmlコンテンツを提供します...たとえば、xmlをjsonに置き換えて、XMLの代わりにjsonコンテンツを取得できます)。
Jenkins インスタンスで認証を要求するように設定している場合は、認証を使用する必要がある場合があることに注意してください。繰り返しますが、恐れる必要はありません: https://wiki.jenkins-ci.org/display/JENKINS/Authenticating+scripted+clients
次に、目的の XML を解析するだけです。おそらく、次のようなものです。
curl --silent --user $USER:$API_TOKEN $URL | grep "<lastBuiltRevision>" | sed 's|.*<lastBuiltRevision>.*<SHA1>\(.*\)</SHA1>.*<branch>.*|\1|'
したがって、すべてをまとめると、Jenkins から最新の適切なリビジョン ハッシュを取得するための (比較的) シンプルなシェル スクリプトになります。
#!/bin/sh
GIT_LOG_FORMAT="%ai %an: %s"
USER=<username>
API_TOKEN=<api_token>
LAST_SUCCESS_URL_SUFFIX="lastSuccessfulBuild/api/xml"
#JOB_URL gets populated by Jenkins as part of the build environment
URL="$JOB_URL$LAST_SUCCESS_URL_SUFFIX"
LAST_SUCCESS_REV=$(curl --silent --user $USER:$API_TOKEN $URL | grep "<lastBuiltRevision>" | sed 's|.*<lastBuiltRevision>.*<SHA1>\(.*\)</SHA1>.*<branch>.*|\1|')
# Pulls all commit comments since the last successfully built revision
LOG=$(git log --pretty="$GIT_LOG_FORMAT" $LAST_SUCCESS_REV..HEAD)
echo $LOG
乾杯、
レヴィ