GitHub に新しく追加された Issue Types とは

1月13日の GitHub のリリースで、Issue 関連の機能拡充に関するパブリックプレビューがアナウンスされました。

https://github.blog/changelog/2025-01-13-evolving-github-issues-public-preview/

## Issue Types 機能の概要
その中で、`issue types` という機能が追加されています。リリースの該当箇所は以下です。ざっくり言えば、既存のラベルのような形で、issue を分類できる機能のようです。

https://github.blog/changelog/2025-01-13-evolving-github-issues-public-preview/#organize-your-work-with-issue-types

リリースの内容を和訳すると次の通りです。

> **issue types で仕事を整理する**
> issue types により、組織内のすべてのリポジトリで共有された一貫性のある言語で課題を分類・管理できます。バグバックログの進捗をすばやく把握し、チームが取り組んでいるすべてのハイレベルな取り組みを見つけ、プロジェクト内の作業の内訳を理解することができます。

<details>
<summary>原文ママ</summary>

> **Organize your work with issue types**
> Issues types allow you to classify and manage your issues with a shared and consistent language across all repositories in an organization. You can quickly understand the progress of your bug backlog, find all of the high level initiatives teams are working on, and understand the breakdown of work in a project.

</details>

### 使えるのは Organization の Issue だけ

肝になるのは、既存のラベルと違って、使えるのが **Organization 内のリポジトリの issue に対してだけである**という点かなと思っています。

個人ユーザが作成しているリポジトリの issue や、Organization 内のリポジトリでも Pull Request に対しては **タイプを設定することができません**。

パブリックプレビューに対するコミュニティの Discussions では、ユーザのリポジトリで issue types を使えるようにする予定は[今のところないと明言](https://github.com/orgs/community/discussions/148715#discussioncomment-11845129)しています。

また、この機能のスコープが issue に対してだけであり、プルリクエストはスコープ外であることも同様に[言及されていました](https://github.com/orgs/community/discussions/148715#discussioncomment-11913750)。

### Issue Types 機能の役割

**Issue Types の役割**として想定されているものは何なのか。特に既存のラベルと比較して、どのような使い方を想定しているのか。これについても、パブリックプレビューに対するコミュニティの Discussions で [GitHub のプロマネの方が言及されていました](https://github.com/orgs/community/discussions/148715#discussioncomment-11826457)。

簡単にまとめると、issue types は **Organization という単位で統一した分類を管理**するものであり、それに対して既存のラベルは**リポジトリ単位での分類**を管理するものであるとのことでした。1つの Organization の中で、**複数のリポジトリに対して横断的に利用**されるのが issue types ということのようです。

また、同じく本アナウンスで追加された Sub-issue と組み合わせることで、プロジェクト内のタスク管理をより強化できるというようにも書かれています。詳細は実際の Discussions のコメントを参照いただければと思います。

### 個人的な受け止め

こうした使い方の想定を聞くと、OSSであったり、ある程度規模の大きな Organizations を管理している人にとっては嬉しい機能なのかもしれません。ただ、一個人としてで考えると、少し Sub-issue との相性が良いくらいで、既存のラベルと対して変わらない使い方になってしまいそうな気がします。しかも個人リポジトリでは使用不可なので、何とも使い勝手が悪そう…。

## 実際に Issue Types を使ってみる
それでもせっかくの新機能なので、一度実際に使ってみようかなと思います。テキトーな Organization でテキトーなリポジトリを作りました。

### issue に Type を設定する

issue の作成時に、その issue に割り当てる Type を選択できます。選択できるのは1つだけで、デフォルトの選択肢は「`Bug`」「`Feature`」「`Task`」の3つでした。

![デフォルトのタイプの選択肢](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/351104/98d4463e-12f9-19f4-55d9-ec4d25c78bbe.png)

Type を設定すると、Issue 一覧のページでは以下のように **Issue のタイトルの下にタイプが表示**されます。「`enhancement`」と表示されているのは**既存のラベルで、これはタイトルの右に表示**されています。

![Issue一覧での表示](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/351104/9e0b1175-b54a-52fe-06bf-6ea25762c9a5.png)

### Sub-issue での表示を見てみる

今回のアナウンスで追加された Sub-issue も作って表示を見てみます。1階層下の issue には `Task` のタイプを、2階層下の issue には `Bug` のタイプを設定しています。

![Sub-issue の表示](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/351104/50091cfb-4a0e-6cb4-6bb0-7266384293ae.png)

こう見ると見やすいですね。ただ逆に気になるのは、この状態だとラベルが一切見えないことです。この画像のissueには以下のようにラベルが設定されていました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/351104/8e1523dc-4421-6d78-3c7a-7f9f1bd7adeb.png)

これが個人リポジトリだと issue types は設定できませんから、親 issue のページで一覧される Sub-issue の情報が issue タイトルしか見られないということで、Organization のリポジトリだけ羨ましいなぁーなんて思ってしまいます。

### 設定できるタイプを変更する
デフォルトでは上記の3種類のタイプを選ぶことができましたが、この**選べるタイプを変更する**こともできます。

普通ラベルの追加・変更はリポジトリごとに行います、先述の通り Type は **Organization レベルで管理される**ということで、**Organization の設定から変更可能です**。管理権限のあるユーザで Organization のトップページへ行って、「Settings」＞左側の「Planning」タブ＞「Issue types」から設定可能です。

![issue type の変更](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/351104/7829b7d1-de63-7f76-6825-b85bd62b3207.png)

![issue type の変更画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/351104/6280e0fe-f29b-ae5f-34cd-15fe8aa48481.png)

現状で issue types の選択肢は25個まで作成できるようです。また、`Private repositories only` というオプションも設定できるみたいです。ただし、ラベルだと色のカラーコードが指定できますが、Type の色はまだあらかじめ用意された8色からしか選べないようです。

## 参考文献

https://github.blog/changelog/2025-01-13-evolving-github-issues-public-preview/

https://github.com/orgs/community/discussions/148715

https://docs.github.com/en/issues/tracking-your-work-with-issues/configuring-issues/managing-issue-types-in-an-organization