GitLab Issueもテンプレート化で、綺麗に書かせる！


[GitHub Enterprise](https://enterprise.github.com/home)は有償ですので、オープンソースで無償で利用できる[GitLab(Community Edition)](https://about.gitlab.com/)をお使いの方も多いと思います。

プロジェクトのメンバーに必要な内容がきちんと記載されたIssueを作成してもらうことは、プロジェクトの運営を円滑に行う上でキモになります。そこで、この記事ではyoshimikeisuiさんの[GitHub Issueはテンプレート化で、綺麗に書かせる！](http://qiita.com/yoshimikeisui/items/3e1873e3bf1bbafe8733)の投稿をGitLab化してみたいと思います。

まずは、以下の新規Issue作成リンクをみてみてください。

[不具合レポートをする](https://gitlab.com/kitfactory/test/issues/new?issue[title]=%E3%80%8Cxxxx%E3%81%97%E3%81%9F%E6%99%82xxxxx%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%80%8D%E3%81%AA%E3%81%A9%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%8F%E3%80%82&issue[description]=%23%23+%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%0D%0A%0D%0A%23%23+OS%0D%0A%0D%0A%23%23+%E7%8F%BE%E8%B1%A1%0D%0A%0D%0A%23%23+%E6%9C%9F%E5%BE%85%E5%8B%95%E4%BD%9C%0D%0A%0D%0A%23%23+%E6%B7%BB%E4%BB%98%E8%B3%87%E6%96%99)

Issueの中に記載させたいことが埋まっていますね。本稿ではこのリンクの作り方を説明します。

## 1.Issueのテンプレートを決める。

まずはIssueのテンプレートを決めましょう。
入力しておいてほしいことが全て盛り込まれるようなテンプレートを作成しましょう。たとえば、不具合のIssueを意識して、以下のようなテンプレートを考えます。

件名(title)用のテンプレート

```
「xxxxした時xxxxxができない」などわかりやすく。
```

内容(description)用のテンプレート

```
## バージョン

## OS

## 現象

## 期待動作

## 添付資料
```

## 2.URLを作成する。

名前空間とプロジェクト名を入れて、URLを作成します。

```
プロジェクトのURL/issues/new?issue[title]=件名テンプレート&issue[description]=内容テンプレート
```

たとえば、先ほどのテンプレート例では

```
https://gitlab.com/kitfacory/test/issues/new?issue[title]=「xxxxした時xxxxxができない」などわかりやすく。&issue[description]=## バージョン

## OS

## 現象

## 期待動作

## 添付資料
```

というようなイメージのURLを作ることになります。


## 3.URLエンコードする。

たとえば、[こちら](http://tech-unlimited.com/urlencode.html)のサイトなどを使って前述の?文字以降をURLエンコードをしてURLを作成しましょう。

「xxxxした時xxxxxができない」などわかりやすく。という文字列は以下のように変換されます。

```
%E3%80%8Cxxxx%E3%81%97%E3%81%9F%E6%99%82xxxxx%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%80%8D%E3%81%AA%E3%81%A9%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%8F%E3%80%82
```

内容(description)の方は、以下のように変換されました。

```
%23%23+%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%0D%0A%0D%0A%23%23+OS+%28Android%2FiOS%29%0D%0A%0D%0A%23%23+%E7%8F%BE%E8%B1%A1%0D%0A%0D%0A%23%23+%E6%9C%9F%E5%BE%85%E5%8B%95%E4%BD%9C%0D%0A%0D%0A%23%23+%E6%B7%BB%E4%BB%98%E8%B3%87%E6%96%99%0D%0A
```

変換後は以下のような文字列になりました。

エンコードした内容をくっつけて、URLを作成しましょう。最初にイメージしたURLの"[" "]"の部分を、それぞれ%5B、%5Dに置き換えることにも注意してください。

```
https://gitlab.com/kitfactory/test/issues/new?issue[title]=%E3%80%8Cxxxx%E3%81%97%E3%81%9F%E6%99%82xxxxx%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%80%8D%E3%81%AA%E3%81%A9%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%8F%E3%80%82&issue[description]=%23%23+%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%0D%0A%0D%0A%23%23+OS%0D%0A%0D%0A%23%23+%E7%8F%BE%E8%B1%A1%0D%0A%0D%0A%23%23+%E6%9C%9F%E5%BE%85%E5%8B%95%E4%BD%9C%0D%0A%0D%0A%23%23+%E6%B7%BB%E4%BB%98%E8%B3%87%E6%96%99
```

## 4.README.mdにリンクを埋め込む。

それでは以下のようにREADME.mdに書き込んで、不具合レポートの作成時のリンクを作りましょう。

```
[不具合レポート](https://gitlab.com/kitfactory/test/issues/new?issue[title]=%E3%80%8Cxxxx%E3%81%97%E3%81%9F%E6%99%82xxxxx%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%80%8D%E3%81%AA%E3%81%A9%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%8F%E3%80%82&issue[description]=%23%23+%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%0D%0A%0D%0A%23%23+OS%0D%0A%0D%0A%23%23+%E7%8F%BE%E8%B1%A1%0D%0A%0D%0A%23%23+%E6%9C%9F%E5%BE%85%E5%8B%95%E4%BD%9C%0D%0A%0D%0A%23%23+%E6%B7%BB%E4%BB%98%E8%B3%87%E6%96%99)
```

このようにGitLab形式でも書式の決まったIsssueが作成できることがわかりました。品質の良いIssueでチームメンバーの生産性をもっと高めていきましょう。

## お願い
**この方法ではlabel、assignee、milestoneはまだ設定できません。設定できる方法があったら教えて！！**