RedmineとGitlabを連携させるためにやったこと。
Gitリポジトリの用意
-
リポジトリ更新時のユーザー名、パスワード入力を回避するためgit clone等をSSHで実行できるようにする
- .ssh/configの設定例
Host gitlab.comm.hoge.co.jp User USER_NAME HostName gitlab.comm.hoge.co.jp TCPKeepAlive yes identitiesonly yes identityFile ~/.ssh/USER_key #認証キーへのパス
- .ssh/configの設定例
-
gitリポジトリをbareリポジトリとして任意の場所にclone
user@redmine:~$ mkdir git user@redmine:~$ cd git user@redmine:~/git$ git clone --bare git@gitlab.comm.hoge.co.jp:fuga.git #HTTPではなく必ずSSHでcloneする
Gitリポジトリ自動更新設定
- 任意の場所にリポジトリ更新用のスクリプトを用意
- git-fetch.sh
#!/bin/sh cd /home/user/git/fuga.git git fetch origin 'refs/heads/*:refs/heads/*'
- git-fetch.sh
- リポジトリ更新スクリプトを定期実行させるためcronを設定
user@redmine:~/git$ crontab -e === SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO="" */30 * * * * sh /home/user/git/git-fetch.sh #更新頻度はお好みで ===
Redmineのプロジェクトでリポジトリを登録
- プロジェクトの[設定]-[リポジトリ]で「新しいリポジトリ」を選択
- リポジトリの設定項目に以下を入力
- バージョン管理システム:Git
- 識別子:任意の名前
- リポジトリのパス:cloneしたリポジトリへのパス
- ファイルとディレクトリの最新コミットを表示するにチェック