Redmine(タスク管理)とGitLab(バージョン管理)を連携させてみた

# まえがき
弊社の開発環境は以下のようになっています。

- タスク管理ツールはRedmine
- バージョン管理はGitLab

但し、GitLabとRedmineが載っているサーバーは物理的に別サーバーとなっており、特に連携などはしておりませんでした。

お仕事で両方とも使いたい場面があったので、せっかくなのでこの度連携させてみました。

# 概要
各システムの役割は以下の通りです。

| システム | 機能 |
|:----------:|:-----------:|
| Redmine    | タスク管理 |
| GitLab     | ソース管理 |

連携させる機能については以下の通りです。

- RedmineのリポジトリタブからGitLab上のリポジトリが閲覧可能
- GitLabにPushされたコミットメッセージに付加されたチケット番号とRedmineのチケットを連動させて、Redmineのチケットから関連するリビジョンの内容が確認可能
- GitLabにPushされた時、Redmineがリポジトリが更新されたことを検知し、対象のチケットページで関連するリビジョンが更新される

# 検証環境
実運用では物理サーバーが2台の構成でしたが、今回の記事の為に構築した環境は以下の通りです。

Microsoft Hyper-V Serverにて、GitLab用とRedmine用に仮想マシンを構築し、それぞれが別のサーバーであることを再現しています。
![ネットワークダイアグラム](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/b4ea25d8-6949-b8c9-1973-b2a12cbb398c.png)


## GitLab用サーバー

<table>
   <tr>
     <td>OS</td>
     <td>Ubuntu 20.04.3 LTS</td>
   </tr>
   <tr>
     <td>IP</td>
     <td>192.168.137.61</td>
   </tr>
   <tr>
     <td>hostname</td>
     <td>gitlab</td>
   </tr>
   <tr>
     <td>GitLab</td>
     <td>Version 14.7.3-ee.0</td>
   </tr>
</table>

## Redmine用サーバー

<table>
   <tr>
     <td>OS</td>
     <td>Ubuntu 20.04.3 LTS</td>
   </tr>
   <tr>
     <td>IP</td>
     <td>192.168.137.62</td>
   </tr>
   <tr>
     <td>hostname</td>
     <td>redmine</td>
   </tr>
   <tr>
     <td>Redmine</td>
     <td>Version 4.2.3</td>
   </tr>
</table>

# 構築手順
## GitLabの準備
### GitLabのインストール
以下の手順でGitLabのインストールを行います。

https://qiita.com/AtsushiYokokawa/items/a43101664fca7ee11559#gitlabのインストール

### redmine用のユーザーを作成
1. ブラウザにて[GitLabサーバー](#gitlab用サーバー)に接続します。
![GitLabログイン画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/7c79078d-93b1-e6a3-60b5-857f837f6ba8.png)

1. Usernameに"root"、Passwordに"hogehoge"と入力し、サインインします。
![GitLabログイン画面_root](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/bd481eb6-b693-bf57-e2d2-dc03b6a64ba3.png)

1. 「Menu」→「Admin」を選択します。
![GitLab_ホーム画面_Menu](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/c8297fdf-c8aa-64a3-e1f2-e13d98bf9bfe.png)

1. 「New User」を選択します。
![GitLab_Admin画面_NewUser](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/7bdcb632-8455-c00c-f1fc-68eb49ffbb63.png)

1. Name、UserNameに"redmine"、Emailに適当なアドレスを入力し、Regularユーザーを作成します。
![GitLab_NewUser画面_redmine](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/45301088-16bb-f598-5e9e-0ad0304dcd46.png)

1. 「Edit」を選択します。
![GitLab_ユーザー画面_Edit](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/860b0825-7e96-dd99-9da4-8c24ec75bdb9.png)

1. Passwordに"hogehoge"と入力し、ユーザーを更新します。
![GitLab_ユーザー編集画面_password](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/7b2c4fc1-3ca8-0a1f-5467-ac92a3223f2d.png)

1. 右上メニューから「Sign out」を選択します。
![GitLab_Signout](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/7197e08b-b5c0-a653-bec3-4d02a09eaea2.png)

1. Usernameに"redmine"、Passwordに"hogehoge"と入力し、サインインします。
![GitLab画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/b22081c1-a063-935e-d01d-55f6d68c6be3.png)

1. Current passwordに"hogehoge"、New passwordとPassword confirmationに"redminepassword"と入力し、Set new passwordを押します。
![GitLab_Setupnewpassword画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/3cf48054-6d7a-8b4d-0df6-c9d3f8b0ebf7.png)

### GitLabにプロジェクトを作成
1. Usernameに"root"、Passwordに"hogehoge"と入力し、サインインします。
![GitLabログイン画面_root](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/bd481eb6-b693-bf57-e2d2-dc03b6a64ba3.png)

1. 「Menu」→「Projects」→「Create new project」を選択します。
![GitLab_Menu_CreateNewProject](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/b515e3b5-f9ae-2777-4e4b-1baada8bb6e0.png)

1. 「Create blank project」を選択します。
![GitLab_CreateNewProject画面_CreateBlankProject](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/a642549b-dfb0-d570-1b0a-ae38603f16c1.png)

1. Project nameに"Test-Project"と入力し、プロジェクトを作成します。
![GitLab_CreateBlankProject画面_ProjectName](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/9be0b7d3-58fa-f88e-22d6-e9bbbe7a1955.png)

1. 「Project information」→「Members」を選択します。
![GitLab_Project画面_Members](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/73c924fc-78f7-fafc-aadf-f4d014692219.png)

1. 「Invite members」を選択します。
![GitLab_ProjectMembers画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/21627b48-eec5-21dd-6763-7b0c9183b3f9.png)

1. GitLab member or Email addressに"redmine"と入力し、Select a roleに「Reporter」を選択し、redmineユーザーをプロジェクトメンバーに追加します。
![GitLab_ProjectMembers画面_Invite](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/728e9736-344e-cc9d-8f91-fb4cd6818746.png)

1. 「Menu」→「Admin」を選択します。
![GitLab_ホーム画面_Menu](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/c8297fdf-c8aa-64a3-e1f2-e13d98bf9bfe.png)

1. 「Project」を選択します。
![GitLab_Admin画面_Menu_Project](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/de5ddd41-a8d1-f603-3890-464375ef68a0.png)

1. 「Administrator/Test-Project」を選択します。
![GitLab_Admin画面_Project](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/6e2ae0f5-0491-059a-0ba2-47048401f18c.png)

1. 「Gitaly relative path」の項目を確認し、控えておきます。
![GitLab_Admin画面_Project_Path](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/8b1df518-42da-b997-7fd7-1dbf04239eaf.png)

## Redmineの準備
### Redmineのインストール
以下の手順でRedmineのインストールを行います。

https://qiita.com/AtsushiYokokawa/items/27abab15f5f3ecbd13be

### Redmineにプロジェクトを作成
1. ブラウザにて[Redmineサーバー](#redmine用サーバー)に接続します。
![Redmine画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/ef5b761d-702a-b8b4-f0bf-5ecdb067a207.png)

1. 右上にある「ログイン」を押し、ログインIDに"admin"、パスワードに"redmineadmin"と入力し、ログインします。
![Redmine_ログイン画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/7d91b347-0a0a-994c-257f-941047ab3baf.png)

1. 左上にある「プロジェクト」を押します。
![Redmine_ホーム画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/4f2d3dae-aaa7-780b-b677-fb1404a7f629.png)

1. 「新しいプロジェクト」を押します。
![Redmine_プロジェクト画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/6971c64e-58ed-55d3-5c38-74a0cabb5548.png)

1. 名称に"Test-Project"と入力し、プロジェクトを作成します。
![Redmine_新しいプロジェクト画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/62d1fe61-048d-e52c-aa47-0eebbf19b038.png)

## リポジトリの連動準備
GitLabのプロジェクト内のリポジトリとRedmineのプロジェクトページ内のリポジトリと連携します。
### GitLabサーバー→Redmineサーバーの公開鍵認証を設定
GitLabサーバーからRedmineサーバーにパスワード無しで接続できるよう、公開鍵認証を設定します。
#### 公開鍵認証の設定
1. [Redmineサーバー](#redmine用サーバー)にredmineユーザーとして接続します。

1. 以下コマンドを実行し、公開鍵認証の許可設定を有効に変更します。

    ```Bash:redmine
    $ sudo vi /etc/ssh/sshd_config
    ```

    ```conf:sshd_config
    # 以下のコメントアウトを外す
    PubkeyAuthentication yes
    ```

1. 以下コマンドを実行し、sshdを再起動します。

    ```Bash:redmine
    $ sudo systemctl restart sshd
    ```

1. [GitLabサーバー](#gitlab用サーバー)にgitlabユーザーとして接続します。

1. 以下コマンドを実行し、公開鍵を生成します。

    ```Bash:gitlab
    $ sudo -u git ssh-keygen
    ```

    パスフレーズの入力を求められるが、何も入力せずにEnterを押す。
    ![GitLab_ssh-keygen](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/b0fdb775-7c32-ab95-e22d-bb25407584fa.png)

1. 以下コマンドを実行し、redmineサーバーに公開鍵をコピーします。

    ```Bash:gitlab
    $ sudo -u git ssh-copy-id redmine@192.168.137.62
    ```

    "yes"と入力しEnter後、redmineユーザーのパスワードが求められるので、"redminepass"と入力し、Enterを押す。
![GitLab_ssh-copy-id](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/4fba7058-8183-b0a9-f675-64974d4c50fe.png)

#### 公開鍵認証の確認
1. [GitLabサーバー](#gitlab用サーバー)にgitlabユーザーとして接続します。

1. 以下コマンドを実行し、パスワード無しに接続ができることを確認します。

    ```Bash:gitlab
    $ sudo -u git ssh redmine@192.168.137.62
    ```

    ![GitLab_ssh](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/ae147e11-c5d0-1dfb-713d-a811e4a12e32.png)

1. 以下コマンドを実行し、sshを終了します。

    ```Bash:gitlab
    $ exit
    ```

### Redmineサーバー内にbareリポジトリを配置
1. [Redmineサーバー](#redmine用サーバー)にredmineユーザーとして接続します。

1. 以下コマンドを実行し、GitLab上のTest-Projectのbareリポジトリをcloneします。

    ```Bash:redmine
    $ git clone --bare http://192.168.137.61/root/test-project.git /home/redmine/test-project.git
    ```

    Usernameに"redmine"、Passwordに"redminepassword"を入力する。
![Redmine_git](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/4643ce6f-82c4-b1c6-9fb4-dbaed582e452.png)

1. ブラウザにて[Redmineサーバー](#redmine用サーバー)に接続します。
![Redmine画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/ef5b761d-702a-b8b4-f0bf-5ecdb067a207.png)

1. 右上にある「ログイン」を押し、ログインIDに"admin"、パスワードに"redmineadmin"と入力し、ログインします。
![Redmine_ログイン画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/7d91b347-0a0a-994c-257f-941047ab3baf.png)

1. 左上にある「プロジェクト」を押します。
![Redmine_ホーム画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/2db2f85e-67c3-c3c4-f5b4-ba76caddaa3d.png)

1. 「Test-Project」を選択します。
![Redmine_プロジェクト画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/d29930d6-fc2e-b15c-5a4e-d3a09b80d9b5.png)

1. 「設定」タブを選択します。
![Redmine_Test-Project_概要](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/087e8eff-82e4-5030-4bc2-74f77b756d41.png)

1. 「リポジトリ」タブを選択します。
![Redmine_Test-Project_設定](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/aae49019-5970-7c86-aac8-2b13c3d4325f.png)

1. 「新しいリポジトリ」を選択します。
![Redmine_Test-Project_設定_リポジトリ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/289b7c91-6f6f-be89-e8e3-df6b08042372.png)

1. 以下の通りに入力し、「作成」を押します。
識別子：`test-project`
リポジトリのパス：`/home/redmine/test-project.git`
![Redmine_Test-Project_設定_新しいリポジトリ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/da3218d2-6cb1-05a3-9e83-60505814d01c.png)

1. 「リポジトリ」タブを選択します。
![Redmine_Test-Project_設定_リポジトリ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/3b57885a-f506-5f5c-bfb1-5e4dc67c6bf5.png)

1. 以下の通り、GitLab上のデータが表示されていることを確認します。
![Redmine_Test-Project_リポジトリ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/6dc22279-9aa5-87b4-7553-2797587fb0b8.png)

### GitLabサーバーのプロジェクトにhookを設定
#### hookの設定
1. [GitLabサーバー](#gitlab用サーバー)にgitlabユーザーとして接続します。

1. 以下コマンドを実行し、gitユーザーとしてBashを起動します。

    ```Bash:gitlab
    $ sudo -u git bash
    ```

1. 以下コマンドを実行し、repositoriesディレクトリに移動します。

    ```Bash:gitlab
    $ cd /var/opt/gitlab/git-data/repositories
    ```

1. 以下コマンドを実行し、Test-Projectプロジェクトのディレクトリに移動します。
   [GitLabにプロジェクトを作成](#gitlabにプロジェクトを作成)で控えたパスがTest-Projectプロジェクトのディレクトリです。

    ```Bash:gitlab
    $ cd <GitLabにプロジェクトを作成で確認したパス>
    #例：$ cd @hashed/d4/73/d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35.git
    ```

1. 以下コマンドを実行し、custom_hooksディレクトリを作成します。

    ```Bash:gitlab
    $ mkdir custom_hooks
    ```

1. 以下コマンドを実行し、post-receiveファイルを作成します。

    ```Bash:gitlab
    $ vi custom_hooks/post-receive
      #!/bin/sh
      git push ssh://redmine@192.168.137.62/home/redmine/test-project.git refs/heads/*:refs/heads/*
    ```

1. 以下コマンドを実行し、post-receiveファイルの実行権限を付与します。

    ```Bash:gitlab
    $ chmod u+x custom_hooks/post-receive
    ```

#### hookの確認
1. ブラウザにて[Redmineサーバー](#redmine用サーバー)に接続します。
![Redmine画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/ef5b761d-702a-b8b4-f0bf-5ecdb067a207.png)

1. 右上にある「ログイン」を押し、ログインIDに"admin"、パスワードに"redmineadmin"と入力し、ログインします。
![Redmine_ログイン画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/7d91b347-0a0a-994c-257f-941047ab3baf.png)

1. 左上にある「プロジェクト」を押します。
![Redmine_ホーム画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/2db2f85e-67c3-c3c4-f5b4-ba76caddaa3d.png)

1. 「Test-Project」を選択します。
![Redmine_プロジェクト画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/d29930d6-fc2e-b15c-5a4e-d3a09b80d9b5.png)

1. 「リポジトリ」タブを選択します。
![Redmine_Test-Project画面_概要](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/b002ae84-2648-58c5-c5ca-115bf138502c.png)

1. 以下の画面を開いておきます。
![Redmine_Test-Project画面_リポジトリ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/af2dc39b-0af2-d461-b881-def2648efd67.png)

1. ローカル環境でGitBashなどを使用し、GitLabのリポジトリからcloneします。

    ```Bash:GitBash
    $ git clone http://192.168.137.61/root/test-project.git && cd test-project
    ```

    ![GitBash_clone](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/8994c59a-8d1a-b6a1-2e73-f0bd92fa824d.png)

1. 適当なファイル(Test-1.txt)を作成し、GitLabのリポジトリへpushします。

    ```Bash:GitBash
    $ git add .
    $ git commit -m 'Test-1'
    $ git push
    ```

    ![GitBash_push](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/23c7e2e4-94f4-5777-570e-64ca165e6aea.png)

1. 開いておいたRedmineのリポジトリのブラウザを更新すると、データが反映されていることを確認します。
![Redmine_Test-Project画面_リポジトリ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/fd31de2b-af4d-fafd-8257-a18b45a38e5e.png)

## チケットのリアルタイム更新設定準備
### Redmineの管理画面にてAPIキーを取得
1. ブラウザにて[Redmineサーバー](#redmine用サーバー)に接続します。
![Redmine画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/ef5b761d-702a-b8b4-f0bf-5ecdb067a207.png)

1. 右上にある「ログイン」を押し、ログインIDに"admin"、パスワードに"redmineadmin"と入力し、ログインします。
![Redmine_ログイン画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/7d91b347-0a0a-994c-257f-941047ab3baf.png)

1. 左上にある「管理」を押します。
![Redmine_ホーム画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/2db2f85e-67c3-c3c4-f5b4-ba76caddaa3d.png)

1. 「設定」を押します。
![Redmine_管理画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/4c68af73-457a-d142-6646-adfa2f35751a.png)

1. 「リポジトリ」のタブを選択します。
![Redmine_設定画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/e732ab61-fca7-6b27-32ab-afee13e6e88d.png)

1. 「リポジトリ管理用のWebサービスを有効にする」にチェックを入れ、「キーの生成」を押し、保存します。
APIキーは後程使うので、控えておいてください
![Redmine_設定画面_リポジトリ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/55a0e095-8ab2-fd8d-423d-2c78446d2e19.png)

### Redmineの対象プロジェクトのプロジェクトidを確認
1. ブラウザにて[Redmineサーバー](#redmine用サーバー)に接続します。
![Redmine画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/ef5b761d-702a-b8b4-f0bf-5ecdb067a207.png)

1. 右上にある「ログイン」を押し、ログインIDに"admin"、パスワードに"redmineadmin"と入力し、ログインします。
![Redmine_ログイン画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/7d91b347-0a0a-994c-257f-941047ab3baf.png)

1. 以下のURLに直接移動し、プロジェクトIDを確認します。
"id"要素の値がプロジェクトIDです。
[http://192.168.137.62/projects.xml](http://192.168.137.62/projects.xml)
![Redmine_project.xml](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/fc2d0258-c82a-5fc9-df2e-4ad983e778ab.png)

### GitLabのプロジェクト設定にてWebHookを設定
1. ブラウザにて[GitLabサーバー](#gitlab用サーバー)に接続します。
![GitLabログイン画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/7c79078d-93b1-e6a3-60b5-857f837f6ba8.png)

1. Usernameに"root"、Passwordに"hogehoge"と入力し、サインインします。
![GitLabログイン画面_root](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/bd481eb6-b693-bf57-e2d2-dc03b6a64ba3.png)

1. 「Menu」→「Admin」を選択します。
![GitLab_ホーム画面_Menu](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/c8297fdf-c8aa-64a3-e1f2-e13d98bf9bfe.png)

1. 「Settings」→「Network」を選択します。
![GitLab_Admin画面_Menu_Network](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/6d77ef81-3a7e-3c21-3a80-72bf7ad2348e.png)

1. 検索欄に"Outbound requests"と入力し、「Allow requests to the local network from web hooks and services」にチェックし、「Save changes」を押します。
![GitLab_Network画面_OutboundRequests](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/5985c3b7-7232-3af2-5076-07cf1d82ab85.png)

1. 「Menu」→「Projects」→「Test-Project」を選択します。
![GitLab_Menu_Test-Project](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/d98562f0-c653-40d7-9362-2796ea975519.png)

1. 「Settings」→「Webhooks」を選択します。
![GitLab_Menu_Webhooks](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/98cb9562-3416-9952-8d9a-e564dc995c70.png)

1. 「URL」に以下を入力し、「Enable SSL verification」のチェックを外し、「Add webhook」を押します。
    APIキーは[Redmineの管理画面にてAPIキーを取得](#redmineの管理画面にてapiキーを取得)で確認した値を設定し、
    プロジェクトidは[Redmineの対象プロジェクトのプロジェクトidを確認](#redmineの対象プロジェクトのプロジェクトidを確認)で確認した値を設定します。
`http://192.168.137.62/sys/fetch_changesets?key=<APIキー>&id=<プロジェクトid>`
![GitLab_Webhooks追加画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/5db3315d-4fd4-a8b9-b2a1-b85841e931d8.png)
![GitLab_Webhooks追加画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/cf37bd20-8a33-c47f-8280-2cadde16016b.png)

# 動作確認
## RedmineよりGitLabのリポジトリを確認
以下の通り、確認が可能です。
![Redmine_Test-Project_リポジトリ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/01f28f2b-7b28-ec36-27da-fdbe020df2c5.png)

## コミットメッセージにRedmineのチケット番号を付加した際の動作を確認
1. チケットを作成します。
![Redmine_チケット作成](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/5101cd9d-1e68-981d-22f7-f9e2af733536.png)

1. [hookの確認](#hookの確認)でcloneした作業ディレクトリに適当なファイル(Test-2.txt)を作成し、GitLabのリポジトリへpushします。
コミットメッセージは以下の通りに設定します。
`refs #1 Test-2`

    ```Bash:GitBash
    $ git add .
    $ git commit -m 'refs #1 Test-2'
    $ git push
    ```

    ![GitBash_push](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/99ae694b-64f1-e204-4175-de380fa00810.png)

1. ブラウザを更新し、チケット画面の「関係しているリビジョン」から確認できます。
![Redmine_チケット確認](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564963/cfd6c5b7-1df2-45be-0bec-e892dbec501d.png)


以上で全工程が完了です。
お疲れさまでした。