前置き
GitLabの"External issue tracker"という機能を有効にします。
これはコミットメッセージにチケット管理ツールのチケット番号を含めると、自動的にチケットへのリンクを張ってくれるというものです。
今回はGitLabからRedmineにリンクを張ってみます。
例えばコミットメッセージにUpdate README.md CENTRAL_SERVER-136
と記述した場合、
GitLabの画面上からコミットメッセージを見ると、以下の画像ようにRedmineへのリンクが張られるようになります。
環境
- GitLab CE Omunibus 11.9.4
Redmineのバージョンはなんでも大丈夫です。
GitLabから一方的にRedmineへリンクを張る機能なので、操作は全てGitLabで完結します。
GitLabの公式ドキュメント
- External issue trackerについて(英語)
- Redmineの設定について(英語)
手順
全て公式ドキュメントの通りに進めます。
Redmine issue trackerの設定画面にアクセス
有効にしたいプロジェクトで画像の順にクリックし、Redmine issue trackerの設定画面を開きます。
Redmine issue trackerの設定
Redmine issue trackerの設定を行います。
項目名 | 入力例 |
---|---|
Description | Redmine issue tracker |
Project url | https://example.com/projects/sandbox |
Issues url | https://example.com/issues/:id |
New issue url | (なんでもよい) |
New issue url
は現在使われておらず、将来のバージョンで削除されるとのことです。
未入力だとエラーになるので、適当に何か入力します。
Redmineが自己署名証明書(オレオレ証明書)の場合、保存しようとした時にエラーになります。
そのため自分の場合、テスト環境で事前確認ができず、最初から本番環境で試すことになってしまいました。
GitLabのIssuesの無効化
GitLabのIssuesを無効化しておきます。
私のプロジェクトの場合、Redmineで全てのチケットを管理し、GitLabはコード管理のみとしています。
動作確認
最後にRedmineのプロジェクト番号やチケット番号をコミットメッセージに入れてみます。
1番目のようにチケット番号のみでリンクを張りたい場合、GitLabのIssuesは必ず無効化してください。
GitLabのIssuesを使用したい場合は2番目のようにプロジェクト名も必ず含めるようにしてください。
プロジェクト名は「大文字、"-"(ハイフン)でなく"_"(アンダースコア)で繋ぐ」というルールがあるので、3番目は失敗しています。
git commit -m "Update README.md #136
git commit -m "Update README.md REDMINE_PROJECT-#136
git commit -m "Update README.md redmine-project-#136
最後に
以上でGitLabのコミットメッセージからRedmineの関連チケットに簡単にアクセスできるようになりました。
クリック一つでGitLabからRedmineにアクセスできるのは少し嬉しいですね。
その他
試していませんが、Redmine以外の"チケット管理ツール"と呼ばれる以下のツールもほとんど同じ手順で設定できるようです。
- YouTrack
- Jira
- Bugzilla
- Custom Issue Tracker