GitLab-Redmineの連携設定その1

Docker環境に構築したGitlabとRedmineを連携設定しプロジェクト管理とバージョン管理の効率を改善します。当記事ではGitLab-Redmine連携設定のうち主にRedmineに関わる部分を説明しています。Gitlab側の設定と連携確認はその2を参照してください。

当記事は以下の過去記事と関連があります。

連携対象とするGitLabプロジェクトは「GitLabプロジェクトの初期設定」で作成したGitlabプロジェクトです。
GitlabとRedmineはDockerコンテナ上に存在し両コンテナは同一のネットワークに参加している(通信ができる)ことが前提になります。

1.Redmine連携プロジェクト追加

詳細手順はそれほど難しくない為割愛しますがRedmineにGitLab連携用プロジェクトを以下の設定で作成します。

  • Redmineに追加するプロジェクト
    プロジェクト名:vbacom
    一般ユーザ―   :vba_memb
    管理ユーザ―   :admin

作成後のRedmineプロジェクト

RedmineProject

2.GitlabにRedmine連携用アカウント作成

GitlabにRedmineコンテナからGitlabのリポジトリを参照する為の専用ユーザー「redmine」を作成しreporterのロールを割り当てます。

(1)アカウント作成

gitlabに管理者でログインし[管理エリア]→[新しいユーザ]からユーザ―「redmine」を
追加します。このアカウントは後述のRedmineコンテナからGitlabのベアリポジトリを作成する際に使用します。

Username:redmine
Passwd :gitredmine
ID :redmine

(2)プロジェクトメンバー追加

作成したユーザ―「redmine」に連携用プロジェクト「vbacom」のreporter権限を付与します。「vbacom」プロジェクトの[設定]→[メンバー]から以下のように入力します。

Gitlabメンバー追加

3.Redmineコンテナにベアリポジトリ追加
(1)ベアリポジトリマウント設定

Redmineコンテナのdocker-compose.ymlを修正しデータボリュームコンテナにgitベアリポジトリ用のホストマウント設定を追加します。

docker-compose.yml

12行目にgitベアリポジトリ用のホストマウント設定を追加しています。

11行目に追加しているのは後述するプラグイン用のホストマウント設定です。

(2)マウントディレクトリ作成

Dockerホストマシン上で上記マウントフォルダを作成し、コンテナのredmineユーザーから読み書きできるように所有者をredmine(999:999)に変更しておきます。

(3)再起動

コンテナを再起動し上記修正を反映させます。

(4)ベアリポジトリ作成

Redmineコンテナに連携対象とするgitlabプロジェクトのベアリポジトリを作成します。

①Redmineコンテナに接続し上記ディレクトリに移動

②ベアリポジトリ作成

ここではお手軽にhttp認証で連携対象のリポジトリをクローンしています。

(5)リモートURL設定確認

①リポジトリ参照用のurlが正しくセットされていることを「config」ファイルを参照し確認します。

②正しくセットされていない場合は以下の設定コマンドを実行します。

(6)ベアリポジトリのオーナー変更

作成したベアリポジトリの所有者はrootになっている為、redmineユーザーから読み書きできるように所有者をredmine(999:999)に変更します。

 4.Redmineのリポジトリ・ユーザー設定

Redmineに管理者でログインし以下の設定をします。

(1)リポジトリ管理の設定

[管理]→[リポジトリ]から以下の設定を変更し保存します。

  • コミットを自動取得する: on(デフォルト)
  • 参照用キーワードに”*”を追加
  • 異なるプロジェクトのチケットの参照/修正を許可:ON
  • コミット時に作業時間を記録する :ON

redmineリポジトリ管理設定

(2)プロジェクトのリポジトリ設定

①対象プロジェクトに入り[設定]→[リポジトリ]→[新しいリポジトリ]を選択

Redmineプロジェクトリポジトリ追加

②設定箇所と値

  • バージョン管理システム:[git]
  • 識別子               :[vbacom]  (ターゲットプロジェク)
  • リポジトリのパス:/var/redmine/git_repositories/vbacom.git(ベアリポジトリ)
  • ファイルとディレクトリの最新コミットを表示する:ON

Redmineプロジェクトリポジトリ設定

変更後「作成」ボタンをクリックします。

③確認
プロジェクトの[リポジトリ]から連携対象プロジェクト「vbacom」のリポジトリ情報が表示されれば設定は成功です。

ベアリポジトリ参照

(3)ユーザ連携設定

RedmineユーザーとGitlabユーザーの対応付けを設定します。該当プロジェクトの[設定] →[リポジトリ]から一覧に表示されているユーザリンクを選択します。

以下一覧が表示されるので適亘変更します。ログインIDがGitLabのユーザ―、ユーザーがRedmineのユーザ―に該当します。ユーザー名またはメールアドレスがGitlabのユーザ―情報と一致していれば自動的に関連付けされるようです。

ユーザ―連携設定

自動的に関連付けられなかったユーザーがあれば手動で関連付けをし保存します。当プロジェクトではAdministratorのユーザ―設定を手動で変更ました。

5.Redmineプラグイン(redmine_github_hook)の導入

RedmineベアリポジトリにGitlabリポジトリの変更が反映されるよう上記プラグイン
導入します。

(1)plugin導入

①Redmineコンテナに接続しプラグインディレクトリに移動

②ダウンロード

(2)プラグインディレクトリのオーナー変更

(3)再起動

コンテナ接続を切断後、コンテナを再起動し上記修正を反映させます。

(4)プラグイン確認

Redmineに管理者でログインし[管理]→[プラグイン]から上記プラグインの導入状況を確認します。

プラグイン確認

Redmine Github Hook pluginが確認できました。

6.リポジトリ日本語文字化け対応
(1)現象

上記連携設定後リポジトリのファイルを参照したところ、日本語が文字化けして正しく表示されませんでした。

Shift-JIS表示NG

(2)原因と対応

答えはRedmine公式のFAQにありました。デフォルトの設定ではUTF-8のエンコーディングをするらしくShift-JISエンコーディングの日本後は正しく表示されないようです。以下の設定を追加することで正しく表示されるようになります。

管理者でログインし「管理」→「設定」→「ファイル」タブを開き「添付ファイルとリポジトリのエンコーディング」に「utf-8,cp932,euc-jp」を追記

エンコーディング設定

(3)確認

上記設定後、再度リポジトリのファイルを開いてみます。

Shift-JIS表示OK

Shift-JISエンコーディングの日本語が正しく表示されるようになりました。

続いてGitlab側の設定となります。GitLab-Redmineの連携設定その2を参照ください。

7.参考にさせて頂いたサイト

GitLabとRedmineを連携してみるの巻 (アルパカDiary Pro様)

(改訂版) Docker でオフィシャルな GitLab イメージと Redmine イメージのコンテナを連携させる

ありがとうございます。

スポンサーリンク
レクタングル大広告




レクタングル大広告




シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レクタングル大広告