Git
curl
bitbucket
Jenkins

Bitbucket API を使って自動ビルド対象のコミットにタグ付けする

More than 1 year has passed since last update.

動機

Bitbucketで管理しているGitリポジトリにプッシュして、自前のJenkinsサーバに自動ビルドさせている。

どのコミットが自動ビルドされたか後々確認したいと思ったため、Jenkinsサーバから自動ビルド対象のコミットに対してタグ付けする方法を探した。

方法

cURLを使って、Bitbucket APIのtagsにPOSTする。

curl --user ユーザー名:パスワード -H "Content-type: application/json" -d "{\"name\":\"タグ名\", \"message\":\"説明\", \"target\":{\"hash\":\"コミットハッシュ値\"}}" https://api.bitbucket.org/2.0/repositories/ユーザー名/リポジトリ名/refs/tags

なお、(Windows環境の)Jenkinsでは、ビルド中のコミットのコミットハッシュ値を %GIT_COMMIT% で取得できる。

私が実現したかった、JenkinsでGitリポジトリのdevelopブランチ最新コミットを自動ビルドした時に、そのコミットに対して「ビルド番号(%BUILD_NUMBER%)」をタグとして設定する方法は下記のコードで実現できた。

chcp 65001
C:\curl-7.55.1-win64-mingw\bin\curl --user ユーザ名:パスワード -H "Content-type: application/json" -d "{\"name\":\"#%BUILD_NUMBER%\", \"message\":\"Jenkins build\", \"target\":{\"hash\":\"%GIT_COMMIT%\"}}" https://api.bitbucket.org/2.0/repositories/ユーザ名/リポジトリ名/refs/tags

いやあ、便利ですね。

参考文献