GitLabで管理しているgitレポジトリをRedmineに登録したので,やり方をメモ.
TOC
- まえおき
- GitLab上の権限設定
- ミラーレポジトリの作成
- Redmine上で登録
- Web Hookの設定
まえおき
Redmineにgitレポジトリを登録するときは,localかつbareなレポジトリである必要がある.
GitLabとRedmineを同じサーバで運用して,GitLab(gitolite)が管理している/home/git/repositories/をRedmineに登録すれば良いと思い,試してみたがうまくいかなかった.パーミッションは設定したつもりだが,fatal: Not a git repository: '/home/git/repositories/hoge.git/'
と怒られる.出来た人がいたら教えて欲しい.
ここではRedmine用にミラーしたレポジトリを用意して行う方法を記録する.
GitLab上の権限設定
Redmine用にミラーしたレポジトリを作るため,GitLab上のレポジトリ(プロジェクト)をcloneできるよう権限設定を行う.やり方は以下の二通り.
- プロジェクトにDeploy Keyを追加する
- Redmine用のユーザを作成し,プロジェクトにReporterとして参加させる
今後も幾つかGitLabとRedmineを関係付けたいプロジェクトが出てきそうだったので,オペレーションが楽そうな2を選んだ.cloneできればどっちでも良い.
ミラーレポジトリの作成
例えば以下のようにしてミラーレポジトリを用意する.
sudo -u redmine mkdir -p /home/redmine/git_repositories // ミラーレポジトリを置く場所
cd /home/redmine/git_repositories
sudo -u redmine git clone --mirror git@my-gitlab.com/hoge.git // --mirrorでbareレポジトリをcloneできる
Redmine上で登録
Redmineでプロジェクトを開いて,Settings > Repositories > New repository
field | value |
---|---|
SCM | git |
Main repository | true |
Identifier | 何でも良い気がする |
Path to repository | /home/redmine/git_repositories/hoge.git/ |
Path encoding | Defaultのまま |
Report last co... | ご自由に |
CreateするとRepositoryというタブが増える.クリックするとしばらく時間がかかった後,レポジトリが見える様になる.
Web Hookの設定
GitLab上でレポジトリが更新されたことをRedmineへ通知し,ミラーを更新する設定を行う.
まずは,Redmineにredmine_github_hookプラグインをインストールする.
GitHubとの連携のためのプラグインだが,GitLabでも使える.
インストール方法はこちらから -> https://github.com/koppen/redmine_github_hook
次に,GitLab上でプロジェクトのHooksタブで以下のHookを追加する.
http://my-redmine.com/github_hook?project_id=<project identifier>
<project identifier>
はRedmine上で設定したプロジェクトのIdentifier.登録したレポジトリではなく,プロジェクトのIdentifierであることに注意.
いじょう.