iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

Github Projects でタスク管理を行う

Github Projects とは?

Github上の Issue や PR(Pull Request) などのタスクを整理して、プロジェクト単位でのロードマップや進捗状況などを明確化できるための Github の機能です。

f:id:yum_fishing:20201204162841p:plain

Project を作成してみる

今回はチーム全体のタスク管理を行いたいので、Organization レベルの Project を作成します。各リポジトリごとにタスクを管理したい場合は、リポジトリレベルで Project を作成することも可能ですが、異なるリポジトリのタスクはリンクさせることはできません。

今回は自動でカンバンの列を並べてほしいので、TemplateAutomated kanban を選択して作成します。

f:id:yum_fishing:20201204163243p:plain

Template には他にも、PR のレビューステータスに応じてカードを自動的に移動できるようにするための Automated kanban with review などがありますが、ここでは触れないので詳しくは下記のドキュメントを参照してください。

docs.github.com

タスクの内容は伏せていますが、To doIn progressDone に分かれてタスクが管理できるようになります。

f:id:yum_fishing:20201204165044p:plain

Issue を Project に紐づけるには?

Issue を Project に紐づけるには、まず Issue のサイドメニューの Projects に該当する Project を選択します。Recent は最近の Project が表示されますが、今回は Organization レベルで Project を作成したので、Organization タブでも表示されます。またリポジトリレベルで Project を作成した場合は、Repository タブに Project が表示されます。

f:id:yum_fishing:20201204165500p:plain

余談: 進捗確認はどう行う?

今回のチームの場合だと、開発体制にアジャイルを採用しているので基本的に進捗はスプリント単位で管理を行います。Github には、Issue や PR の進捗を管理するために Milestone という概念があるので、これを使ってスプリントを定めることでチームの進捗の確認を行うことができます。

Milestone について詳しく知りたい方は下記のドキュメントを参照してください。

docs.github.com

下記は Issue に Milestone を紐付けた例ですが、このようにしてそれぞれのタスクにスプリントを設定することができます。

f:id:yum_fishing:20201204170421p:plain

また、それぞれのスプリントごとのタスクの進捗を Project で確認するには、下記のように Milestone でフィルターします。

f:id:yum_fishing:20201204170701p:plain

フィルターには Milestone 以外にも下記のようなものがあるので、ある程度不自由なくタスクの進捗確認が行えると思います👷‍♀️

f:id:yum_fishing:20201204170859p:plain

ただ、Milestone を使って進捗の管理・確認を行う際に懸念点が一つだけあり、それは Milestone そのものの作成です。ZenHub のような Github Projects の拡張ツールを使用すれば、それぞれのリポジトリに共通の Milestone を一括で作成することが可能ですが、通常はそれぞれのリポジトリごとに Milestone を作成する必要があります(しんどい)。ここについては、もしかしたら僕が知らないだけで有効な手段があるかもしれないので、解決策が分かり次第またブログを書きます🧑‍🔧

という感じで今回は以上になります。それではまた明日🎣

参考

その他の記事

yamato8010.hatenablog.com

yamato8010.hatenablog.com

yamato8010.hatenablog.com