Github Projects でタスク管理を行う
Github Projects とは?
Github上の Issue や PR(Pull Request) などのタスクを整理して、プロジェクト単位でのロードマップや進捗状況などを明確化できるための Github の機能です。
Project を作成してみる
今回はチーム全体のタスク管理を行いたいので、Organization
レベルの Project
を作成します。各リポジトリごとにタスクを管理したい場合は、リポジトリレベルで Project
を作成することも可能ですが、異なるリポジトリのタスクはリンクさせることはできません。
今回は自動でカンバンの列を並べてほしいので、Template
に Automated kanban
を選択して作成します。
Template
には他にも、PR のレビューステータスに応じてカードを自動的に移動できるようにするための Automated kanban with review
などがありますが、ここでは触れないので詳しくは下記のドキュメントを参照してください。
タスクの内容は伏せていますが、To do
・In progress
・Done
に分かれてタスクが管理できるようになります。
Issue を Project に紐づけるには?
Issue を Project
に紐づけるには、まず Issue のサイドメニューの Projects
に該当する Project
を選択します。Recent
は最近の Project
が表示されますが、今回は Organization
レベルで Project
を作成したので、Organization
タブでも表示されます。またリポジトリレベルで Project
を作成した場合は、Repository
タブに Project
が表示されます。
余談: 進捗確認はどう行う?
今回のチームの場合だと、開発体制にアジャイルを採用しているので基本的に進捗はスプリント単位で管理を行います。Github には、Issue や PR の進捗を管理するために Milestone
という概念があるので、これを使ってスプリントを定めることでチームの進捗の確認を行うことができます。
Milestone
について詳しく知りたい方は下記のドキュメントを参照してください。
下記は Issue に Milestone
を紐付けた例ですが、このようにしてそれぞれのタスクにスプリントを設定することができます。
また、それぞれのスプリントごとのタスクの進捗を Project
で確認するには、下記のように Milestone
でフィルターします。
フィルターには Milestone
以外にも下記のようなものがあるので、ある程度不自由なくタスクの進捗確認が行えると思います👷♀️
ただ、Milestone
を使って進捗の管理・確認を行う際に懸念点が一つだけあり、それは Milestone
そのものの作成です。ZenHub のような Github Projects
の拡張ツールを使用すれば、それぞれのリポジトリに共通の Milestone
を一括で作成することが可能ですが、通常はそれぞれのリポジトリごとに Milestone
を作成する必要があります(しんどい)。ここについては、もしかしたら僕が知らないだけで有効な手段があるかもしれないので、解決策が分かり次第またブログを書きます🧑🔧
という感じで今回は以上になります。それではまた明日🎣
参考
- https://docs.github.com/ja/free-pro-team@latest/github/managing-your-work-on-github/managing-project-boards
- https://qiita.com/ffggss/items/1de27a7c2643bb85664a#%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3-github%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%83%9C%E3%83%BC%E3%83%89%E3%82%92%E6%B4%BB%E7%94%A8%E3%81%99%E3%82%8B
- https://www.msawady.com/entry/2019/04/14/162740