狠狠撸

狠狠撸Share a Scribd company logo
RedmineとGitLabの
連携利用
redmine.tokyo 第14回勉強会
パネルディスカッション 事例紹介資料
2018年5月26日 @tKusukawa
1
自己紹介:@tKusukawa
くすかわと申します。redmine.tokyoのスタッフです。
Redmineプラグイン:WorkTime、WikiListsなどを作って
公開しています。(最近メンテできておらず すみません)
仕事:システム部門長→ 課題管理、管理台帳、業務記録など、
業務の多くの場面でRedmineに大変お世話になっています。
自分たちのGit連携のやり方をお話します。気になったことを話のネタにして頂いて、
より良い方法のヒントが得られれば幸いです。(是非ツイート/メモして下さい #redmineT )
およそ月80チケット、週2?3回本番反映している開発運用の事例のお話です。
22
構成と運用
GitLabはHubリポジトリとしてのみ利用していてIssueなどの機能は使っていません。
← 非エンジニアを含め元々Redmineを利用していて、情報連携させたい為。
3
GitLab
originリポジトリ
開発者PC開発者PC 検証環境
ブランチ: stg
本番環境
ブランチ: production
pull
/push pull
Redmine
チケットシステム
リポジトリ閲覧ツールプログラマ以外に
Gitを使わせるのは
かなりしんどいが、
RedmineならURLで
参照してもらえる。
pull
/ reset (切り戻し)
バージョン管理は言うまでもなく 超重要
ソフト開発の三種の神器
システム的な接続方法
Redmineサーバプログラムから
GitLabのbareリポジトリのディレクトリを
直接参照できるようにしています。
Host Linux
/srv/docker/gitlab/gitlab
Docker GitLab
/home/git/data
Docker Redmine
/home/redmine/gitlab
4
マウント マウント
Redmine管理者 設定画面
0. 「使用するバージョン管理システム」の「 Git」にチェック
1. 「参照用キーワード」に「 *」を設定→ refsやfixesを書かなくても #nnn だけでリンクになる
  (#nnnの前後に文字があるとチケット Noと認識されないので注意。全角スペースは NG。)
2. 「異なるプロジェクトのチケットの参照/修正を許可」にチェック
1.管理
2.設定
7.保存
5
3.リポジトリ
4.Git
5.参照用キーワード「*」
6.別プロジェクトもリンク
リポジトリ参照設定
Redmineのプロジェクト「設定」タブ→「リポジトリ」でパスを設定します。
リポジトリパス:
     /home/redmine/gitlab/repositories/<gitlab-user>/<gitlab-pj>.git
6
前提:モジュールで
リポジトリにチェック
コミットコメントでチケットとの相互リンク
コミットコメントにチケット番号があると
「関連するチケット」に自動で登録されて相互リ
ンクができる
← 後から手動で相互リンクを 追加/削除
  することも出来ます 7
リポジトリ閲覧ツール ∈ Redmine
<修正差分表示>
そのコミットでの全ての差分を
ブラウザ内検索できたりして便利
8
<アノテート>
その行を最後に更新したコミットを
追跡できて便利
チケットとコミットの相互リンクの意義
チケット:
どうしたくて(経緯)、どうなった(結果)
Gitコミット:
いつ、だれが、どこを、なにから、なにに →変えた
こうしておかないと「プログラムの意図」が解らなくなる
9
ここがつながる(多対多)
開発運用サイクル(チケット=開発ブランチ)
10
チケット起票 チケットクローズ
開発ブランチ作成 開発ブランチ削除
コーディング
/ コミット
master
13773
stg
production
検証
Ver付与 / 本番デプロイ
X
X
ブランチ戦略
13734
マージ/テスト
本番デプロイ
平均 一日4チケット
=月80チケット
を本番リリース
開発運用サイクル(マージとデプロイ)
11
GitLab
originリポジトリ
開発者PC開発者PC 検証環境
ブランチ: stg
本番環境
ブランチ: production
pull
/push pull
pull
/ reset (切り戻し)
Redmine
チケットシステム
リポジトリ閲覧ツール
チケット起票
チケットクローズ
開発ブランチ作成
開発ブランチ削除
マージ
まとめ
自分たちのGit連携のやり方を お話させて頂きました。
(話のネタをツイート/メモして頂けましたでしょうかw)
Redmineのチケット(どうしたくて、どうなった)と
Gitのコミット(いつ、だれが、どこを、なにから、なにに 変えた)を
相互に関連付けて確認?記録しています。
チケット起票 → ブランチ作成/コミットと
マージ /リリース → チケットクローズ
のサイクルを月80チケットペースで運用してるお話でした?
12

More Related Content

Redmineとgitの 連携利用事例