Symfoware

Symfowareについての考察blog

RedmineとGit(BitBucket)の連携方法(redmine_github_hook使用)

BitBucketにpushしたら、自動的にRedmineのチケットと連動してほしい。

redmine_github_hookを使用すれば実現できそうです。
https://github.com/koppen/redmine_github_hook



RedmineとGitBucketのインストール



こちらの手順でインストールしたものを使用しました。

Redmine
Redmine 3.0.0をDebian 7(Wheezy)にインストールする

GitBucket
Debian 7にTomcat 7 + gitbucket + Jenkinsをインストールする





redmine_github_hook



redmine_github_hookプラグインをRedmineに導入します。

こちらを参考にしました。
https://github.com/koppen/redmine_github_hook

「B: As a plugin」の方法でインストールしてみます。


プラグインフォルダに移動し、gitコマンドでcloneを取得。


# cd /opt/redmine-3.0.0/plugins
# git clone https://github.com/koppen/redmine_github_hook.git




/opt/redmine-3.0.0/plugins/redmine_github_hookが作成されました。
Redmineを起動して動作を確認してみます。


# cd /opt/redmine-3.0.0
# ruby bin/rails server webrick -e production -b 0.0.0.0




ちゃんとプラグインを認識していますね。

600_01.png





リポジトリの連携



GitBucket側で適当にリポジトリを作成しておきました。
今回は「redminetest」という名前のリポジトリを作成しています。

600_02.png

600_03.png


このリポジトリのcloneをRedmineサーバーに作成します。


# mkdir -p /opt/redmine-3.0.0/repo
# cd /opt/redmine-3.0.0/repo/
# git clone --bare http://192.168.1.102:8080/gitbucket/git/root/redminetest.git




ここでポイントになるのは「--bare」オプションをつけてcloneする点です。

bare(ベア)リポジトリはファイルの実体を持たず、更新情報だけを保持する
リポジトリということだそうで、このモードじゃないとエラーになります。

クローンを作成したら、Redmineの設定画面を開きます。
プロジェクトの[設定] - [リポジトリ]から「新しいリポジトリ」をクリック。

600_04.png


バージョン管理システムに「Git」
リポジトリのパスは先ほどクローンしたパスを入力します。
今回は「/opt/redmine-3.0.0/repo/redminetest.git」と入力しました。

600_05.png


設定出来ました。

600_06.png


プロジェクトのリポジトリタブから内容を閲覧できます。

600_07.png





GitBucketにWebHookを設定



GitBucketにpullした時のメッセージで、Redmineのチケットを操作できるよう設定します。

GitBuketの画面で「Settings」をクリック。

600_08.png


「Service Hooks」の項目を選択して、「WebHook URLs」に

http://[Redmineのサイト]/github_hook?project_id=[プロジェクトのID]

と設定します。

600_09.png

これで設定は完了です。




連携テスト



リポジトリをチェックアウト


$ git clone http://192.168.1.102:8080/gitbucket/git/root/redminetest.git




README.mdを適当に編集してコミット&pushします。


$ cd redminetest/
$ git add README.md
$ git commit -m "refs #1 変更テスト"
$ git push




ポイントは「refs #(Redmineのissue_id)」をコメントに含めることです。

pushした後、Redmineの画面を見てみると、こんな感じで情報が表示されます。

600_10.png


コミットログから対応する差分の表示も行えます。

600_11.png


この「refs」というキーワードは、[管理] - [設定] - [リポジトリ]に
設定されている値のようです。

600_12.png

反応するキーワードの初期値は以下のとおり。


refs,references,IssueID








ステータス、進捗率の変更



バージョン管理システムとの連携

こちらに、「fixes」や「closes」というキーワードでステータスが
変更できると記載があるのですが、反応せず。

どうやら[管理] - [設定] - [リポジトリ]の画面で設定しておく必要があるようです。

600_13.png


以下のコミットメッセージで
ステータス「解決」
進捗率「50%」になりました。


$ git commit -m "fixes #1 FIXしました"



600_14.png


終了するにはこんな感じ。


$ git commit -m "closes #1 CLOSEしました"



600_15.png
関連記事

テーマ:サーバ - ジャンル:コンピュータ

  1. 2015/03/15(日) 18:14:32|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Ubuntu 14.04にGoogle App Engine(GAE) + PHPの開発環境を構築する | ホーム | Redmine 3.0.0をDebian 7(Wheezy)にインストールする>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1694-852a4b9b
この記事にトラックバックする(FC2ブログユーザー)