こんにちは。せーじと申します。現在は株式会社miiveで、Webやバックエンド、アプリの開発をしております。私は業務や私生活で日常的にRaycastを使っています。
現職に入社後5本ぐらいRaycastについての記事を書いてきましたが、今日はGitHubのProjectsについて書こうと思います。
きっかけ
弊社には「よもやま会」という文化があります。
週次で開催され「なんだかな〜」と思ったことを記載しておき、それについて話す会です。
ある日
タスク管理ツールを解約したい
- 背景
- コストが高い。1アカウント1000円/月以上する
- フル活用できていない。ただのKanbanとしての運用しかできていない。
- ベロシティを図るとかも今はできていない
- (GitHubとの)ワークフローもっと組みたい
のような意見が寄せられました。
要約すると「開発メンバーのタスク管理には専用のサービスを利用しているが、うまく使いこなせてないし他のツールでいいのでは?」
という意見でした。たしかに。
賛同が多かったため、有志を集って活動することになりました。
移行先はGitHubのProjectsに
移行先として色々と検討しましたが、「GitHubとの連携が強い(というかGitHubそもそも)」という理由から最終的にはProjectsを採用しました。
Projectsはこんなやつです。

1つのProjectsに複数リポジトリのissueを紐付けられ、Kanbanなどでタスク管理ができます。
Projectsってこんなに色々できるのか!
個人で過去にProjectsを利用してはいましたが、7年も前です。「Kanbanが出せるツール」ぐらいの認識で移行を試しましたが、想像以上に多くのことができました。
今回は個人的に「いいな〜」と思った機能をざっくり紹介していきたいと思います。
CLIで完結できる
まず「いいな〜」と思ったのはtokenなどの面倒な設定をしなくてもCLIでしたい操作のほとんどができることでした。
多くのタスク管理サービスの場合、APIを提供していますが、利用するのにAPI Token等の発行が必要になります。 また、CLIから利用しようとするともう一手間かかります。
Projectsの場合、ghコマンドを利用することでissueの作成からprojectsの紐付け、カスタムフィールドの設定、issueの情報の取得までできます。
# issue の作成例 gh issue create --title "My new issue" --body "Here are more details."
# Projects へ追加例 gh issue edit 42 --add-project "Sprint Board"
人間が見ると若干とっつきにくいですが、AIに聞けば使い方を知っておりサクッと簡単に利用できます。
GitHubには公式のMCPもあるのでそちらを使うとより効率的です。
データの移行時も元のデータをAPIで引っこ抜き、ghコマンドでissueを作るshell scriptを作成しました。
この際、適切なsleepを入れないとRate Limitに引っかかるので注意です!
Table / List / Roadmap などViewが豊富
Projectsには3つのViewが用意されています。弊社のユースケースとしては必要十分なViewが用意されていました。
以下の画像は公式サイトから拝借しました。
Table
いわゆるKanbanです。それぞれのissue上に表示する情報もカスタムできて(後述)大変使い勝手がいいと感じています。

List
この表示で「すごい!」と思った点はスプレッドシートやExcelみたいに値をコピー&ペーストできることです。一括で情報を更新したい際などとても便利です。若干スタイルは崩れますが、一覧をコピーし、別のツールにペーストすることもできます。

Roadmap
カスタムフィールド(後述)に設定した値のうち、日付のフィールドを使ってロードマップ表示ができます。

KanbanでPRの状態まで一覧できる
こんな感じで表示されます。画像はPRがOpenな状態です。Merged、ClosedやDraftなどによって表示が変わります。

PRのように一覧に表示する情報は View > Fields > Visible fieldsを設定することでカスタマイズできます。

LabelsをVisible fieldsに追加すると以下のような見た目になります。

リリース物の管理もできる
ProjectsではProjectごとにカスタムフィールドを設定できます。以下の画像はProduct KANBANというProjectのカスタムフィールドです。
ここにリリース日を追加します。

次にListで リリース日ごとにリストを分割する 設定を入れるとどのissueがリリースに含まれるか?が一目でわかるようになります。

GitHub Copilotにissueをお願いする
GitHub Copilotは「GitHub Copilot は、コードをより迅速かつ少ない労力で記述するのに役立つ AI コーディング アシスタント」です。
いわゆるAIエージェントです。人間の代わりにコーディングや調べ物をしてくれます。
GitHub CopilotもProjects(というかissue)もGitHubが提供しているため、今では簡単にタスクを依頼することができます。
issue > Assigners > Assign to Copilot から簡単にissueをタスクとして渡せます。

Assign to Copilotをクリックすると以下のようなモーダルが出てきます。リポジトリを選択し、Assignを押すとそのまま作業を始め、PRの作成までしてくれます。
「やり方はわかるけど作業するのが面倒」なタスクを任せるには最高です。

GitHub連携
もちろんGitHubとの連携もバッチりでした。ProjectsにはWorkflowという機能があります。 デフォルトで様々な設定が入っており、ポチポチGUI上で設定するだけで動作をカスタムできます。
弊社も今後もっと活用していきたい。

ベロシティを計測する
現状はあまり活用できていませんが、ProjectsにはInsightsという機能も提供されています。
これはissueのステータスやopen / closed、カスタムフィールドの値などを集計しグラフにできるものです。
今後ベロシティの計測などに利用できそうだなと感じています。

最後に
以上「GitHubのProjectsってこんなに色々できるのか...!」という驚きの共有でした!
今回ご紹介したようにフットワーク軽く新しいことを試せる環境です!
弊社にご興味を持っていただけましたら、カジュアル面談や、miive bar(ゆるく雑談とボードゲームをする会)なども実施しています。
ぜひご参加ください!お待ちしております!
XでDMでも大歓迎です!