環境
GitBucket稼働環境:Windows Server 2008 standard
GitBucketバージョン:4.18
Redmine稼働環境:Windows server 2008 R2 Enterprise
Redmineバージョン:2.5.2-2(3年くらい前にたてたものをそのまま使用)
いきさつ
Gitを個人的にローカルでちょろちょろしたり
個人的に作ったものをBitBucketとかにあげたりはしているものの
会社ではGitでバージョン管理をしているチームがなさそうなので
ちょうど今月から始まるプロジェクトでは試しにGitを使ってみよう!
ということでGitBucketを社内に建てることにしました。
チケット管理にも連動させてトレーサビリティをとれるようにしよう!
というのが最終目標です。
GitBucketをたてる
インストール
GitBucket自体はここからダウンロードして、
下記コマンドをうつだけで使用可能。
TomcatなどのApサーバーいらずで、とっても簡単ですね!
(javaは1.8.0_152をインストール済)
java -jar gitbucket.war
ちなみに、私の場合はポートの指定とGitBucketホームディレクトリのオプションを
つけています。
java -jar gitbucket.war --port=8100 --gitbucket.home=C:\work\gitbucket
こうすると、
http://[gitbucket-server-name]:8100/
でアクセスでGitBucketが起動します。
また、指定したホームディレクトリ下にplugins等を配置したりすることもできます。
ユーザー・リポジトリの作成など
これについてはきっと直感的にわかるのでカッツ・アイ!
Redmine側の設定
redmine_github_hookプラグインのインストール
プラグインの配置
私の場合、gemではなく、当プラグインのgithubからクローン(またはzip)を取得してpluginsディレクトリに置きました。
取得したプラグインを下記に配置します。(zipで取得した場合には適宜フォルダ名をリネームします。)
C:\Bitnami\redmine-2.5.2-2\apps\redmine\htdocs\plugins\redmine_github_hook
gitにパスを通す
まだgitにパスが通っていない環境の場合は、redmineのディレクトリ下にあるgitのbinフォルダ C:\Bitnami\redmine-2.5.2-2\git\bin
にパスを通すと手っ取り早いです。
Redmineの再起動
Redmineをマネージャー等で再起動後、管理ユーザーでプラグインを確認してみます。
Redmine Github Hook pluginが表示されていればインストール成功です。
リポジトリのミラー設定
Redmineでgitのリポジトリを設定する場合、bareで、かつ、ローカルリポジトリである必要がある、とのことなのですが、--mirrorを指定してcloneを取得すれば問題ないようです。
ここではC:\git_repo\配下にミラーを設定します。
cd C:\git_repo
git clone --mirror http://[gitbucket-server-name]:8100/git/taro/first_app.git
これにより、C:\git_repo\first_app.git\
が作成されます。
Redmineプロジェクトのリポジトリの設定
上記で設定したミラーのパスC:\git_repo\first_app.git\
を設定します。
RedmineのリポジトリからGitのリポジトリが見えるようになりました。
Hookの設定
GitBucketのfirst_appリポジトリのSettingからServiceHookタブを選択
Add webhookボタンをクリックして、Hook先のURLを設定します
Payload URLは [redmine_url]/github_hook?project_id=[identifier]
とのこと。
私の場合は、
http://[redmine-server-name]/redmine/github_hook?project_id=first_app&repository_id=first_app_repo
と指定。
必要に応じて、トリガーとなるイベントを選択します。
ここではPull requestとPushを選択しています。
Test Hookを押してみて、Response200となればOK。
設定完了!pushしてみる!!
commitの際に
git commit -m "refs #536 README.md追記"
のようにコメントに refs #チケット番号
を付加しあとpushしてRedmineで確認してみます。
チケットの進捗が100%になり、「関係しているリビジョン欄」に先ほどのコミットコメントが表示されました!!
今回のプロジェクトではこれを有効に使えたらいいですね。