GitHubがサブイシュー機能を導入：作業を整理・追跡する新しい方法を擬似的に試してみた

# GitHubの新機能「サブイシュー」について

### はじめに

2025年1月17日に追加された新機能「サブイシュー」の内容が記されておりましたので実際に使ってみました！どんどん活用していくべき機能だとおもったので、実際に使ってまとめてみました。

https://github.com/manticoresoftware/manticoresearch/issues/2945

日本語訳

```
GitHubがサブイシューを導入：作業を整理・追跡する新しい方法
GitHubは待望の新機能 「サブイシュー」 を正式にリリースしました。この新機能により、
ユーザーはイシュー間に階層関係を作成し、より効果的にタスクを細分化し進捗を管理でき
るようになります。今回のアップデートについて詳しく見ていきましょう。

サブイシューとは？
サブイシューは、既存のイシュー内に小さなタスクを作成できる機能です。新規のサブイシ
ューを作成することも、既存のイシューをサブイシューとしてリンクすることも可能です。
これは、大規模なプロジェクトを小さな実行可能なステップに分解したり、関連するタス
クを親イシューの下に整理したりするのに特に便利です。

技術的には、サブイシューは通常のイシューと同じですが、親イシューが割り当てられて
いる点が異なります。これにより、通常のイシューの機能をすべて保持しながら、依存関係
を管理しやすくなり、進捗をより効果的に追跡できます。

主な機能
✅ イシュー内で直接サブイシューを作成

親イシュー内で直接サブイシューを作成できるため、タスク整理がスムーズになります。
✅ 既存のイシューをリンク可能

すでに作成済みのイシューを、別の親イシューのサブイシューとして簡単にリンクできます。
✅ 単一の親制約

1つのサブイシューには 1つの親イシューしか設定できません。新しい親イシューを設定すると、
以前の親イシューから自動的に解除され、明確で一貫性のある階層構造が保たれます。
✅ イシューリストでの進捗表示

イシューリストでは、サブイシューの完了状況が表示されるようになりました。
これにより、進捗を素早く確認できます。（以前のチェックボックスによる進捗管理は廃止されました。）
✅ サブイシューの循環依存を防止

親イシューが自分自身のサブイシューになることはできません。
✅ ツリー構造での表示

GitHubは、サブイシューを ツリー構造 で表示できるようにしました。
これにより、タスク間の関係や階層を直感的に把握しやすくなります。
何が変わったのか？
これまで、多くのユーザーは チェックボックス（- [ ]） を使ってイシューの進捗を管理していました。

例：

css
コピーする
編集する
- [ ] タスク1
- [ ] タスク2
- [ ] タスク3
しかし、この方法は もはやサポートされません。GitHubは、より体系的にイシューを整理できる
サブイシュー を推奨しています。

今後の展望
サブイシューの導入は、GitHubの プロジェクト管理機能の大幅な強化 を意味します。
チームは、依存関係の可視化、進捗の追跡、複雑なワークフローの管理 をこれまで以上
に簡単に行えるようになります。

以前のチェックボックスによる進捗管理ができなくなったことで、一時的に不便に感じる
かもしれません。しかし、サブイシューを活用することで、より整理されたプロジェクト
管理が可能になります。

Happy coding! 🚀

✅ チェックリスト
担当者が完了したタスクにチェックを入れてください。

 実装完了
 テスト作成
 ドキュメント更新
 ドキュメントレビュー
 Changelog更新
 OpenAPI YAML更新、およびクライアント再構築用のIssue作成
 
```

今まで下記ののようにissueにタスクを書いて、進捗管理をしていた方が多いと思います。
- [ ] タスク1
- [ ] タスク2
- [ ] タスク3
GitHubは、より体系的にイシューを整理できる サブイシュー を推奨しているとのことですので

> サブイシューの導入は、GitHubの プロジェクト管理機能の大幅な強化 を意味します。チームは、依存関係の可視化、進捗の追跡、複雑なワークフローの管理 をこれまで以上に簡単に行えるようになります。

と記載があり、どんどん使って使いこなしていくことで、スムーズでチーム全体がわかりやすいタスク管理を実現できそうです。

主な機能について実際に操作をして、どのように使えるか試していききます。

### ① 親issueイシュー内で直接サブイシューを作成

1. **親イシューを作成すると「Create sub-issue」ボタンが表示される**
2. **「Create sub-issue」をクリックするとモーダルが開く**
3. **タイトル、説明、担当者、ラベル、プロジェクトの紐付け、マイルストーンの設定が可能**
4. **「Blank issue in:」を利用して別リポジトリにサブイシューを紐づけることも可能**

---

[詳細]
親issueを作ってみると、　`Create sub-issue` というボタンが出てきました。
これをクリックすると
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3586051/841f9dae-3e19-3966-429c-089eb9ec3ec0.png)

Create new sub-issue モーダルが出てきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3586051/0590b6f4-0bfe-3586-4d1a-d02a9d20487c.png)

ここで、subissueの内容を記載するのですが、
`Blank issue in で別リポジトリにsubissueを紐づけることができます。
フロントエンドとバックエンドでリポジトリを分けている場合、フロント側の親イシューに対して、バックエンドのタスクをサブイシューとして紐づけることができるので、便利そうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3586051/100ffe75-f832-4de9-a2c1-366d32b72f89.png)

リポジトリを選択したら、
` Add a title ` と　`Add a description` はタスクの内容を入力していきます。

アサインするユーザー、ラベル、プロジェクトの紐付け、マイルストーンの設定など全て
このモーダルでできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3586051/2667224e-cc6a-456c-46c5-ed15de1a0097.png)

---

### ② サブイシューのと作成と階層化

ではsubissueを作成してみます。createを押すと
親issueに紐づいた、subissueが作成されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3586051/e84bd15b-eb35-b728-148c-a7ea19d0013a.png)


下記画像のようにバックエンドとフロントエンドを分けて、subissueを作成してみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3586051/cdb2b069-dbf0-d14e-f23c-c902e662fa35.png)

サブイシューのタイトルをクリックすると、そのサブイシューに対してさらにサブイシューを作成できるようになっているので、階層構造でタスクを整理できます。
公式に載っているとおり、subissueの下の階層にsubissueをつくっていくと画像のように表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3586051/7dda87ff-cd55-aef1-fe64-8411bb99519e.png)


 > 1つのサブイシューには 1つの親イシューしか設定できません。新しい親イシューを設定すると、以前の親イシューから自動的に解除され、明確で一貫性のある階層構造が保たれます。
親イシューの紐付けは１つだけになりますので、最終的な目標がどこにあるかわからなくなるということにはならないようになっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3586051/4b8e2ec1-d9ae-017f-dccd-e03872813d4b.png)

Relatiionshipsで一つ上の階層のissueが確認できるようになっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3586051/a646a205-b1f5-322f-0d51-47a1dfe9dd54.png)

### ③ 進捗の可視化

subissueを作ってみるとissueが何個あって、何個終わっているか
確認できるようです。これは、下記の公式が案内している下記の機能のことですね。

> イシューリストでの進捗表示
イシューリストでは、サブイシューの完了状況が表示されるようになりました。これにより、進捗を素早く確認できます。（以前のチェックボックスによる進捗管理は廃止されました。）

subissueが登録された親issueには、subIssueの進捗状況が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3586051/cfde2cb4-c010-19f7-4d67-e989a38cf6c8.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3586051/b8609728-382d-c387-1e64-cca20ec85158.png)

バックエンドの　subissueを一つcloseにすると、下記のように`1 of 2`に代わり、
円グラフで視覚的にどのくらい終わっているか確認することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3586051/daf01a26-f617-c933-ef82-f8746e795ef3.png)


### ④ 既存のイシューをリンク可能

リンクの紐付け方法は、既存のイシューの左下に表示されている、
`Relationships` から紐づけるようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3586051/4e4805fe-9499-acb0-5d68-fa9613150c0c.png)

先ほどのsubisseに紐づけてみます。
add parentを押すとタスク一覧が出て、親を選択して、紐づける形ですね。
なので、親issueが既存のissueと一緒のリポジトリにないと紐づけることは出来なさそうです。

<a href="https://gyazo.com/cbcfaa89733c30b5d9565ed9088301c2"><img src="https://i.gyazo.com/cbcfaa89733c30b5d9565ed9088301c2.gif" alt="Image from Gyazo" width="1000"/></a>

### ⑤ GitHub Projects との連携

親issueをgithub projectへ追加すると全てのissueが追加されました。
該当のissueのsubissueは、親issueにくっついて全て追加されるようになっています。
issueが、一括で追加されるので、細かいissueを一つずつ追加しなくていいので便利そうです。
しかし親issueを、プロジェクトから消しても、subissueたちは消えなかったので、間違えて違う
projectに入れてしまったりすると、全て消すのが大変なので注意ですね。

[![Image from Gyazo](https://i.gyazo.com/48eafd4321eba4e4771d9c035e12c644.gif)](https://gyazo.com/48eafd4321eba4e4771d9c035e12c644)


## まとめ

GitHubのサブイシュー機能を活用することで、

- **タスクの階層管理が可能**
- **進捗の可視化がしやすい**
- **プロジェクト管理がスムーズになる**

特に、**フロントエンド・バックエンドの分業や大規模なタスク管理**で大きなメリットを発揮しそうです。今後、API対応やGitHub Actionsとの連携が進めば、さらに便利になりそうです！

# その他

https://naminori.xincere.jp/

https://portfolio.xincere.jp/