【個人開発向け】Githubでミニマムにイシュー管理する
前提
個人開発向けのプロジェクト管理を対象としています。
また、Githubを普段から利用されている方が対象です。
本題
はじめに
皆さんは個人で開発を行ったり、サンドボックス的に技術を試すためにちょっとしたプロジェクトを立ち上げたりするとき、どのように管理していますか?
タスク管理だけでも様々なツールがあり、無料で利用できる範囲も限られるので、自分に合ったものを選択するのはそれなりに難しいと思います。
個人開発において、タスク管理はシンプルかつ効率的であることが重要です。
本記事では、GitHubのProjects機能を活用し、イシュー管理をスマートに行う方法をご紹介します。無料で利用できるGitHub Projectsは、個人開発でも大いに活躍します。
1. Projectsの設定と使い方
① Projectsの新規作成
- リポジトリのProjectsタブから、新しいプロジェクトを作成します
- 名前や説明を入力し、カンバンボードやリスト表示のどちらかを選択できます
② 基本セットアップ
- デフォルトのBoardレイアウトで「To do」「In progress」「Done」の列が用意されており、このままで十分です
③ イシューの登録
- 既存のイシューをドラッグ&ドロップで適切な列に配置したり、新規イシューをその場で作成して管理できます
以上!
ここで終わると怒られそうですが、ここでお伝えしたいのは最低限これだけ理解していれば十分だということです。
もちろん、公式ドキュメントを見れば様々な機能を提供してくれているので、お仕事、チームでの利用時は状況に合わせて使いこなすべきですが、今回はあくまで個人向けなので、この説明に留めます。
気になる方は公式ドキュメントを参照してみてください。
2. イシューとPRを紐付けて自動でクローズする方法
この記事で一番伝えたい部分はここです。
Githubでイシュー管理する最大のモチベーションはここだと思っているのですが、PRがマージされると、指定したイシューが自動でクローズできる機能があります。
具体的に、イシューに対応するPRの説明欄で、「Closes #イシュー番号」と記載します(例: Closes #10)。
そしてイシューがクローズされると、「Done」列に自動的に移動します。このため、手動でイシューを管理する手間が減り、PRをマージするだけでタスク完了が反映されるため効率的です。
めちゃくちゃスマートじゃないですか?
こういうちょっとした体験が個人開発や勉強のモチベーションを上げてくれると思うのは、自分だけでしょうか・・(共感してもらえると嬉しい)
せっかくなので、PRのテンプレートも共有します。
# 概要
<!-- このPRで解決する内容を簡潔に記載します -->
<!-- 例: 「通知機能の実装」や「バリデーションロジックの修正」 -->
# 関連Issue
<!-- 対応しているIssueがあれば箇条書きでリンクします -->
<!-- 例: 「Closes #1」 -->
- Closes #
# 変更内容
<!-- 実装した機能や修正内容のポイントを箇条書きで記載します -->
<!-- 例: 「通知ボタンの追加」「APIのバリデーション追加」 -->
-
# 動作確認
<!-- 動作確認を行った手順や条件を記載します -->
<!-- 例: 「TOPページで通知ボタンをクリックし、通知が表示されることを確認」 -->
# 補足情報
<!-- 特筆すべき内容があれば追加で記載します -->
<!-- 例: 「現時点ではiPhoneのみ対応。Androidは未対応」 -->
このファイルは.github/pull_request_template.mdに配置してもらえればPRすると自動で反映されるのでおすすめです。
GitHub Projectsを個人開発で使うメリット
GitHub Projectsは、無料で利用できるため、コストをかけずにタスク管理機能を最大限活用できます。また、GitHubのイシュー機能やリポジトリ管理とシームレスに連携できるため、追加のツールを導入する必要もありません。
個人開発において、以下の点が強みと考えています。
- ワークフローの統合(イシュー、PR、プロジェクト管理が一元化され、開発フローの中でタスクが自動的に反映される)
- シンプルさ(複雑な管理システムを利用する必要がなく、直感的に管理が可能)
さいごに
人によっては、個人開発ならプロジェクト管理、PR不要では?と思われる方もいらっしゃると思います。
それはそれで良いと思います。
自分の場合、やりたいことや勉強したいことはどんどん書き留めたり、文章にしていかないと忘れていってしまうので、このような管理をしています。
そして、管理する上での最小限の手間を考えるとここに行きつきました。
参考にしていただけると嬉しいです。