環境
Rails2.3.5
Passenger3.0.2
Git1.7.3
Redmine1.1.0
さくらのVPS CentOS5.5 x86_64

バグ管理システムのRedmine、システム開発では欠かせないツールですが、今回さくらのVPSを借りてそこに自分用のRedmineをインストールしてみました。

バージョン管理はGitでやることにしましたが、できればリモートレポジトリを自鯖上に構築するのは避けたい。Githubの非公開レポジトリをRedmineから参照する方法を調べてみました。
ちなみにRedmineの認証機能以外のアクセス権限がかかっていない前提です。外部からRedmineを参照できない環境の場合は使えないみたいです。

さくらのVPS CentOS5.5 x86_64
Rails2.3.5
Passenger3.0.2
git1.7.3
Redmine1.1.0

です。

RedmineのインストールはRedmine 1.0をCentOSにインストールする手順 | Redmine.JP Blogあたりを参考にPassengerで動作済みです。

次にさくらのVPSにgitをインストールします。yumでインストールすると古いバージョンが入るので、ソースコンパイルで。
最新版はGit – Fast Version Control Systemから入手

cd /usr/local/src
wget http://kernel.org/pub/software/scm/git/git-1.7.3.5.tar.bz2
tar jxvf git-1.7.3.5.tar.bz2
cd git-1.7.3.5
./configure
make
make install

これでgitはインストール完了ですが、Redmineからgitが参照できなかったので以下のファイルのGIT_BINの値をwhich gitで表示されるパスに修正。

vi <REDMINE_ROOT>/lib/redmine/scm/adapters/git_adapter.rb
# Git executable name
# GIT_BIN = “git” 変更前
GIT_BIN = “/usr/local/bin/git” #変更後

 

2012年2月12日追記

<REDMINE_ROOT>/config/configuration.ymlで設定できるようです。

scm_git_command:

となっているところを

scm_git_command: /usr/local/bin/git

としてやり、Redmineを再起動してやればOK。

touch <REDMINE_ROOT>tmp/restart.txt

 

ここからが本題です。
cronを使って定期的にGithubのレポジトリと同期する方法もありますが、git pushした瞬間にRedmine上に反映されるように、Redmineのプラグインを使用します。
最初にも書きましたが、Redmineが外部から参照できない環境にある場合は使えません。

gem install json
cd <REDMINE_ROOT>
ruby script/plugin install git://github.com/koppen/redmine_github_hook.git
touch tmp/restart.txt #Passengerを再起動

続いてGithub上に作成してあるレポジトリーをclone

mkdir /home/repos/
cd /home/repos
git clone https://<USER_NAME>@github.com/<USER_NAME>/<PROJECT_NAME>.git

ここからはRedmineの設定画面とGithubの設定画面から作業。まずはRedmineでプロジェクトを作成 redmine_capture01.png
プロジェクトの「設定」>「レポジトリ」を選択し
バージョン管理システムのプルダウンでGitを選択
Path to .git directoryのテキストボックスに”/home/repos/<PROJECT_NAME>/.git”を入力する。

最後はGithubのコントロールパネルからの作業。
github_capture.png

レポジトリの管理画面>左メニューから「サービスフック」を選択>Available Service Hooksから「Post-Receive URL」を選択>URLに”<REDMINE_URL>/github_hook”を指定。

以上で設定作業は終わり。後はGithub上のレポジトリにgit pushすればRedmineにも変更が反映されます。

関連記事

コメント一覧

コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

スパム防止のため下の計算結果を入力して下さい *

ページの先頭へ