Redmine
GitLab

GitLabとRedmineを連携させる

More than 5 years have passed since last update.

GitLabで管理しているgitレポジトリをRedmineに登録したので,やり方をメモ.

TOC

  1. まえおき
  2. GitLab上の権限設定
  3. ミラーレポジトリの作成
  4. Redmine上で登録
  5. 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できるよう権限設定を行う.やり方は以下の二通り.

  1. プロジェクトにDeploy Keyを追加する
  2. 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であることに注意.

いじょう.