GitHub Issuesのラベルを作り直す+Projectのかんばんを自動化

# デフォルトのラベル
GitHub Issuesにはデフォルトで9つのラベルが存在しますが、微妙に使いづらい...
![Screen Shot 2021-07-30 at 18.05.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320451/eec533ff-0f28-df9e-a287-15ef09bffb2f.png)
そこで、このラベルを作り直してみました。

# 作り直したラベル
ラベルは5種類に分けました。
共同作業に関するラベルはあまり用意していないため、都度付け加えるのがよいかと思います。

ラベルの色には、[Material Designのカラーパレット](https://material.io/resources/color/)のうち、300番台のものを使用しました。

## Type
Issueで取り組む作業の種別を表すラベル。
![Screen Shot 2021-07-30 at 18.13.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320451/ffb0e6d7-e66b-87a5-5688-8da11ba68c4c.png)

<dl>
<dt>Bug Fix</dt>
<dd>バグにより動作しない機能を修正するもの。</dd><br>
<dt>Enhancement</dt>
<dd>改良のために新機能を追加するもの。</dd><br>
<dt>Improvement</dt>
<dd>動作している機能を改良のために修正するもの</dd><br>
<dt>Modification</dt>
<dd>動作している機能をただ修正するもの。</dd><br>
<dt>Optimization</dt>
<dd>動作している機能に最適化を施すもの。</dd><br>
<dt>Security Fix</dt>
<dd>セキュリティに問題のある機能を修正するもの。</dd><br>
</dl>

## Status
Issueの状態を表すラベル。
![Screen Shot 2021-07-30 at 18.24.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320451/7002fd6b-a6b2-5227-272a-debd28cfe385.png)

<dl>
<dt>Available</dt>
<dd>待機中で、作業に取り掛かる予定のもの。（かんばんのToDo）</dd><br>
<dt>In Progress</dt>
<dd>作業中のもの。（かんばんのDoing）</dd><br>
<dt>Completed</dt>
<dd>作業が完了したもの。（かんばんのDone）</dd><br>
<dt>Canceled</dt>
<dd>以前は作業に取り掛かっていたが、中止しているもの。</dd><br>
<dt>Inactive (Abandoned)</dt>
<dd>今後作業に取り掛かる予定がないもの。</dd><br>
<dt>Inactive (Duplicate)</dt>
<dd>他のIssueと重複しており、作業に取り掛かる必要のないもの。</dd><br>
<dt>Inactive (Invalid)</dt>
<dd>内容が不正であることから、作業に取り掛かる必要のないもの。</dd><br>
<dt>Inactive (Won't Fix)</dt>
<dd>作業しないことになったため、作業に取り掛かる必要のないもの。</dd><br>
<dt>Pending</dt>
<dd>何らかの理由で作業が保留になったもの。</dd><br>
</dl>

## Priority
Issueの優先度を表すラベル。
![Screen Shot 2021-07-30 at 18.39.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320451/79036ae3-d47c-fe7d-04b3-efd175994cd0.png)

<dl>
<dt>ASAP</dt>
<dd>できる限り早く最優先で取り組み必要のあるもの。</dd><br>
<dt>High</dt>
<dd>優先度の高いもの。</dd><br>
<dt>Medium</dt>
<dd>通常の優先度のもの。</dd><br>
<dt>Low</dt>
<dd>優先度の低いもの。</dd><br>
<dt>Safe</dt>
<dd>余裕があれば取り組むもの。</dd><br>
</dl>

## Effort
Issueに対して想定される作業量を表すラベル。
![Screen Shot 2021-07-30 at 18.45.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320451/583de69f-930f-1b68-4a8d-11aba01b2ae5.png)

<dl>
<dt>Painful</dt>
<dd>膨大な作業量が想定されるもの。</dd><br>
<dt>Heavy</dt>
<dd>比較的多い作業量が想定されるもの。</dd><br>
<dt>Normal</dt>
<dd>平均的な作業量が想定されるもの。</dd><br>
<dt>Light</dt>
<dd>比較的少ない作業量が想定されるもの。</dd><br>
<dt>Effortless</dt>
<dd>それほど作業量を必要としないもの。</dd><br>
</dl>

## Feedback
Issueで扱うフィードバックの種類を表すラベル。
![Screen Shot 2021-07-30 at 18.51.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320451/d63e45f1-ebe0-2fde-c26a-a2549d622564.png)

<dl>
<dt>Discussion</dt>
<dd>機能に関する議論を扱うもの。</dd><br>
<dt>Question</dt>
<dd>機能に関する質問を扱うもの。</dd><br>
<dt>Suggestion</dt>
<dd>機能に関する提案を扱うもの。</dd><br>
</dl>

## 参考
- [How we organize GitHub issues: A simple styleguide for tagging](https://robinpowered.com/blog/best-practice-system-for-organizing-and-tagging-github-issues)
- [Sane GitHub Labels | By Dave Lunny | Medium](https://medium.com/@dave_lunny/sane-github-labels-c5d2e6004b63)
- [GitHub Labels that are logical, colorful and sensible | SeanTraneSciarrone](https://seantrane.com/posts/logical-colorful-github-labels-18230/)

# おまけ：Statusラベルを使ってGitHub Projectのかんばんを自動化
"Status: Available", "Status: In Progress", "Status: Completed"のラベルを付けた際に、それぞれ"To do", "In progress", "Done"のGitHub Project Columnに追加および移動を行うGitHub Actionsを書きました。

```manage_issues_for_project.yml
name: 'Manage Issues for Project'

on: 
  issues:
    types: [labeled]

jobs:
  manage-issues-for-project:
    runs-on: ubuntu-latest
    steps:
      - name: Move issues which have a Available label to the project board column called To do
        if: github.event.label.name == format('Status{0} Available', ':')
        uses: alex-page/github-project-automation-plus@v0.8.1
        with:
          project: Project Name
          column: To do
          repo-token: ${{ secrets.GHPROJECT_TOKEN }}
          
      - name: Move issues which have a In Progress label to the project board column called In progress
        if: github.event.label.name == format('Status{0} In Progress', ':')
        uses: alex-page/github-project-automation-plus@v0.8.1
        with:
          project: Project Name
          column: In progress
          repo-token: ${{ secrets.GHPROJECT_TOKEN }}
          
      - name: Move issues which have a Completed label to the project board column called Done
        if: github.event.label.name == format('Status{0} Completed', ':')
        uses: alex-page/github-project-automation-plus@v0.8.1
        with:
          project: Project Name
          column: Done
          repo-token: ${{ secrets.GHPROJECT_TOKEN }}
```

Secretsの追加は、github-project-automation-plusのREADMEに書いてある通りに行いました。

##参考
 - [GitHub: alex-page/github-project-automation-plus](https://github.com/alex-page/github-project-automation-plus)
 - [特定のラベルをセットした Issue を自動的に GitHub Projects のカラムに追加する - Qiita](https://qiita.com/yuya_takeyama/items/2ed0d2ce3a66a6f167ca)