RedmineでGithubの非公開レポジトリと連携する

2011-01-15


バグ管理システムの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でプロジェクトを作成

プロジェクトの「設定」>「レポジトリ」を選択し バージョン管理システムのプルダウンでGitを選択 /path/to/git_directory のテキストボックスに/home/repos/<PROJECT_NAME>/.git を入力する。

最後はGithubのコントロールパネルからの作業。 レポジトリ設定

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

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


Profile picture of sakama

Written by sakama Data engineer who lives and works in Tokyo for successful data analytics You can follow me on Twitter

© 2022, sakama.dev - Built with Gatsby

Author

Profile picture of sakama

Written by sakama Data engineer who lives and works in Tokyo for successful data analytics You can follow me on Twitter

Socials

github.com/sakama

Recent Posts

Categories

Tags