GitHub Projects の Automated kanban で issue 管理を楽にする

| 3 min read
Author: masahiro-kondo masahiro-kondoの画像

みなさんは GitHub Projects を活用しているでしょうか? issue は使ってるけど、Projects は使ってないという方も多いかもしれません。

issue をカンバンに並べて可視化するのは、チームの朝会などで進捗を確認したり、その場で issue を動かしたりできて便利です。

このスクリーンショットは豆蔵デベロッパーサイトのリポジトリの Project です。 To do / In progress / Done のセクションに issue がカードとして並んでいます。In progress に置かれたカードは、issue ではなく note という Markdown で書けるメモで、とりあえず note で作っておいて後から issue に変換したりすることも可能です。

issue に付与された enhancement などの label も表示され、label や他の属性でフィルターすることもできます。

Automated kanban を使うと、単に issue を並べるだけではなく、issue と Pull Request (PR) を関連づけた自動化も可能です。

プロジェクトボードの自動化について | GitHub Docs

Project の作成は、各リポジトリや Organization の Projects タブから New classic project をクリックします[1]

Project の Template としては Automated kanban を選びます。

作成したら、登録済みの issue を ToDo や In progress にドラッグ&ドロップで追加していきます。

以前、「GitHub issue からブランチ作成する新機能 - issue と PR を自動リンク」の記事にも書きましたが、issue からブランチを作成して PR を作成することで issue と PR の関連づけが行われます。もちろんissue に手動で PR を関連づけることもできます。こうしておくと PR がマージされた時に Projects の Automation 機能により issue が自動的にクローズされ Done に移動します。

以下は、豆蔵デベロッパーサイトのとある issue に記録されたタイムラインです。

  • 最初に、issue が Todo に置かれました。
  • 次に担当者が issue を In progress に移しました。
  • さらに担当者は PR を issue にリンクしました。
  • そして、PR がマージされました。同時に issue がクローズされます。
  • issue クローズと共に、Kanban の automation により、Done に issue が移動されました。

このように、issue と PR をリンクすることで、Project に認識され、ちょっとした自動化の恩恵が受けられます。

issue のタスク分解について

本記事のテーマとは少しずれますが、タスクを issue として管理するときに悩ましい問題として、「issue が複数のサブタスクに分解されるときに、サブタスクを issue として扱うか?」があります。

issue が複数のタスクの完了によりクローズできるとして、GitHub の issue には親子関係を管理する機能がないので、せいぜい 子の issue から親の issue に #番号 でメンションするしかありません。ですので、分解を細かくやってしまうと、issue の数が増えて関連が分からなくなり管理コストが大きくなってしまいます。

タスク分解には、GitHub の Markdown で使えるタスクリストを使うのがよいでしょう。次のスクリーンショットは、Project でタスクリストがどのように可視化されるのかを示すものです。In Progress にある 「MongoDB を最新化する」という issue は、4つのタスクに分解され、そのうち、2つが完了していることがわかります。Kanban の カード内では、2 of 4 tasks とタスクの消化状況が円グラフと共に表示され、消化具合がわかります。

このように、Projects には issue 内のタスクリストのサポートもありますので、利用すると進捗の把握が楽になります。

タスクリストについて - GitHub Docs

GitHub Projects は今後 Kanban だけでなく、スプレッドシートのようなビューも追加され、管理者にとって便利な機能が追加されていくようです。こちらも別途記事にしたいと思います。

追記

Projects がリニューアルされたので記事書きました。

GitHub Projects がリニューアル - スプレッドシートのビューが利用可能に


  1. 現在、GitHub Projects の次世代版がベータ公開されており、既存の Projects は Classic project と位置付けられています。 ↩︎

豆蔵デベロッパーサイト - 先週のアクセスランキング
  1. Nuxt3入門(第1回) - Nuxtがサポートするレンダリングモードを理解する (2022-09-25)
  2. 自然言語処理初心者が「GPT2-japanese」で遊んでみた (2022-07-08)
  3. GitHub Codespaces を使いはじめる (2022-05-18)
  4. Jest再入門 - 関数・モジュールモック編 (2022-07-03)
  5. ORマッパーのTypeORMをTypeScriptで使う (2022-07-27)
  6. Nuxt3入門(第4回) - Nuxtのルーティングを理解する (2022-10-09)
  7. Nuxt3入門(第3回) - ユニバーサルフェッチでデータを取得する (2022-10-06)
  8. 第1回 OpenAPI Generator を使ったコード生成 (2022-06-04)
  9. Nuxt3入門(第8回) - Nuxt3のuseStateでコンポーネント間で状態を共有する (2022-10-28)
  10. Nuxt3入門(第2回) - 簡単なNuxtアプリケーションを作成する (2022-10-02)