redmine と github の連携について
業務上、redmine で github のコミットとチケットを関連付ける必要が出てきたため、その設定方法の備忘録を記載する
redmine の構築
docker で構築する。公式で docker のイメージと構築方法が記載されている。私は docker-compose を用いて構築。
docker/redmine
github のプラグインインストール起動
プラグインのインストールは (https://qiita.com/n_slender/items/54cd282c140fadbbb322) を参考
1 redmine のコンテナに入る。
$ docker exec -it <name> /bin/bash
$ cd plugins
2 必要なパッケージをインストール
gcc とか入っていないので apt-get install で入れる
- デフォルトだと apt-get ができないので何か update する必要があった気がする...
# apt-get install gcc ruby-dev sudo
3 github プラグインのインストール
# cd plugins
# git clone https://github.com/koppen/redmine_github_hook
4 ホストから redmine のコンテナを再起動
# docker restart redmine_redmine_1
管理 -> プラグインに Redmine Github Hook plugin があれば OK
管理対象のリポジトリを登録
ほぼ (https://qiita.com/n_slender/items/54cd282c140fadbbb322) を参考いただければ良い。ただし、 git clone する際はリポジトリの所有者を redmine( redmine を実際に動かすユーザー) にする必要があるため下記のようにすること。
あと、Webhook は使わず ローカルから定期的に fetch を実行して更新したいため、 --bare ではなく --mirror を用いる。
# cd <repos_directory>
# sudo -u redmine git clone --mirror https://github.com/<your_repository>.git
これで redmine のリポジトリから正しくパスを指定することで見れるようになるはず。
リポジトリを更新したい場合は
# git fetch --all
とすること。
ブランチがリモートと同期せず、ローカルに残り続けるので -p オプションを推奨
# git fetch -p
cron に記述すれば好きな頻度で更新できる。