はじめに
GitHubリポジトリ、問題、プロジェクト、およびその他のツールを使用して、個々のプロジェクトや部門間のチームで作業するかどうかにかかわらず、作業を計画および追跡できます。
このガイドでは、ユーザーグループと共同作業するためのリポジトリを作成および設定する方法、問題テンプレートとフォームを作成する方法、問題を開いて作業を分解する方法、問題を整理および追跡するための プロジェクト を確立する方法について説明します。
リポジトリを作成する
新しいプロジェクト、イニシアティブ、機能を開始するとき、最初のステップはリポジトリの作成です。 リポジトリにはプロジェクトのすべてのファイルが含まれ、他者とコラボレーションしたり、作業を管理したりする場所を提供します。 詳しくは、「新しいリポジトリの作成」をご覧ください。
必要に応じて、様々な目的のためにリポジトリをセットアップできます。 以下は、いくつかの一般的なユースケースです。
- 製品リポジトリ: 特定の製品に関する作業とゴールを追跡する大規模な組織は、そのコードや他のファイルを含む 1 つまたは複数のリポジトリを持つことがあります。 それらのリポジトリは、ドキュメンテーション、製品の改善性、あるいは製品の将来の計画のためにも使われることがあります。
- プロジェクト リポジトリ: 作業をしている個々のプロジェクト、あるいは他者とコラボレーションしているプロジェクトのためにリポジトリを作成することができます。 短期間のイニシアティブやプロジェクトなどのための作業を追跡する、たとえばコンサルティングファームなどの組織では、プロジェクトの健全性に関するレポートや、人々をスキルや要求に応じて様々なプロジェクト間で移動させる必要があります。 こうしたプロジェクトのためのコードは、多くの場合1つのリポジトリに含まれます。
- チーム リポジトリ: 人々をチームにグループ化し、開発ツール チームのようなそれらのチームにプロジェクトを割り当てる組織では、コードは追跡が必要なさまざまな作業に対する多くのリポジトリに分散される場合があります。この場合、そのチームが関わるすべての作業を追跡するための 1 つの場所として、チーム固有のリポジトリがあると便利な場合があります。
- 個人リポジトリ: 個人リポジトリを作成して、自分のすべての作業を 1 か所で追跡し、将来のタスクを計画し、さらには保存しておきたいメモや情報を追加することもできます。 この情報を他者と共有したい場合は、コラボレータを追加することもできます。
ソースコードに様々なアクセス権限を設定し、Issueやディスカッションを追跡したい場合には、複数の個別のリポジトリを作成することもできます。 詳しくは、「問題専用のリポジトリの作成」をご覧ください。
このガイドの以下の例では、Projet Octocatというサンプルリポジトリを使います。
リポジトリ情報のコミュニケーション
リポジトリにREADME.mdファイルを追加して、Teamやプロジェクトを紹介し、それらに関する重要な情報を伝えることができます。 リポジトリにアクセスした人が最初に見るのはREADMEのことが多いので、ユーザやコントリビュータがプロジェクトとどのように関わり始めたらいいのか、そしてチームとどのように連絡を取ればいいのかに関する情報を提供することもできます。 詳しくは、「リポジトリの README ファイルについて」をご覧ください。
特に、バグ修正のIssueのオープンや改善のリクエストの方法といった、ユーザやコントリビュータがチームやプロジェクトに貢献して関わるやりかたのガイドラインを含む、CONTRIBUTING.mdファイルを作成することもできます。 詳しくは、「リポジトリコントリビューターのためのガイドラインを定める」をご覧ください。
README の例
新しいプロジェクトであるProject Octocatを紹介するREADME.mdを作成できます。

課題テンプレートを作成する
Issueを使って、機能横断的なチームやプロジェクトがカバーする様々な種類の作業を追跡したり、プロジェクト外のチームやプロジェクトから情報を集めることができます。 一般的なユースケースとしての課題は以下のとおりです。
- リリース追跡: Issueを使って、リリースやローンチ日を完了させるステップの進捗を追跡できます。
- 大規模なイニシアティブ: Issueを使って、大規模なイニシアティブやプロジェクトの進捗を追跡できます。それらは、より小さなIssueにリンクされます。
- 機能リクエスト: チームやユーザーは、イシューを作成して製品やプロジェクトへの改善をリクエストできます。
- バグ: チームやユーザーは、問題を作成してバグを報告できます。
作業をしているリポジトリやプロジェクトの種類によっては、特定の種類のIssueを他よりも優先することになるかもしれません。 チームにとってよく発生する issue の種類を特定したら、リポジトリ用に issue のテンプレートとフォームを作成できます。 Issue のテンプレートとフォームを使うと、標準化されたテンプレート リストを作成し、共同作成者がリポジトリで issue を開くときに選択できるようにすることができます。 詳しくは、「リポジトリ用に Issue テンプレートを設定する」をご覧ください。
課題テンプレートの例
以下、Project OctocatでバグレポートのためのIssueテンプレートを作成しています。

バグレポートのIssueテンプレートを作成したので、新しいIssueをProject Octocatで作成する際に選択できるようになりました。
![octo-org/project-octocat の [新しい issue] ページのスクリーンショット。"Project Octocat のバグ レポート" テンプレートを使うオプションが表示されています。](/assets/cb-59397/images/help/issues/quickstart-issue-creation-menu-with-template.png)
課題を開いて作業を分割する
Issueを作成することで、作業を整理し、追跡できます。 詳しくは、「課題の作成」をご覧ください。
問題の例
以下は、Project Octocatの大規模なイニシアティブであるフロントエンドの作業のために作成されたIssueの例です。

部分問題の例
Issue に sub-issue を追加することで、大きな作業を小さな issue にすばやく分割することができます。 sub-issue により、issue 間の関係が作成されて、GitHub での issue の階層のサポートが追加されます。 ユーザーやチームが必要とする詳細さにタスクを分割することでプロジェクトを正確に表す sub-issue の複数のレベルを作成することができます。 「AUTOTITLE」と「AUTOTITLE」を参照してください。
Issue の種類を使うと、タスク、バグ、機能など、organization 全体のリポジトリ内の作業を分類できます。 「組織での課題の種類の管理」を参照してください。

タスクリストの例
タスクリストを使って、大きなIssueを小さなタスクに分割し、大きなゴールの一部としてIssueを追跡できます。 タスク リストには、問題の本文に追加された場合の追加機能があります。 問題の先頭に合計で完了したタスクの数が表示され、他のユーザーがタスク リストにリンクされている問題を閉じると、チェックボックスは自動的に完了としてマークされます。 詳しくは、「タスクリストについて」をご覧ください。
以下では、Project OctocatのIssueにタスクリストを追加し、小さなIssueに分割しました。

ラベルの例
以下は、私たちが作成して問題に追加した front-end ラベルの例です。
!["Project Octocat のフロントエンド作業" という issue のスクリーンショット。 右側のサイドバーの [ラベル] セクションに [フロントエンド] ラベルが適用されています。](/assets/cb-94617/images/help/issues/quickstart-add-label-to-issue.png)
他の作業によって妨げられているまたは他の作業を妨げている課題の表示
Issue の依存関係を作成することで、どの issue が他の issue によって禁止されているか、または他の issue を禁止しているかを簡単に把握し、共有することができます。 これにより、チーム全体の調整を効率化し、ボトルネックを防ぎ、透明性を高めることができます。 「課題の依存関係の作成」を参照してください。
課題の理解を深める
メモ
GitHub Copilot にアクセスする必要があります。 詳しくは、「GitHub Copilotとは」をご覧ください。
未知の問題や複雑な問題に取り組む場合、 GitHub Copilot はコンテキスト、履歴、および重要な情報をすばやく理解するのに役立ちます。そのため、より迅速かつ自信を持って開始できます。
問題の確認
-
GitHub の課題に移動する。
-
GitHub の任意のページの右上で、検索バーの横にある アイコンをクリックします。
ギットハブ コパイロット チャット パネルが表示されます。 パネルのサイズ変更を行うには、上端または左端をクリックしてドラッグします。
-
パネルに Copilot との以前の会話が含まれている場合は、Copilot パネルの右上にある プラス記号アイコンをクリックして、新しい会話を開始します。
-
Copilotチャット パネルの下部にある [Ask Copilot] ボックスに質問を入力し、Enter キーを押します。 たとえば、次のように入力できます。
Summarize the main points of this issueWhat’s the goal of this issue?
Copilotの概要は、作業の目的と範囲を把握するのに役立ちます。
履歴とコメントの理解
多くの場合、issue には、重要なコンテキストを示す可能性があるディスカッションと決定の履歴が含まれています。 Copilotを使用して、これらの会話を要約して、提案された解決策や未回答の質問などの重要なポイントを特定できます。 たとえば、最近のコメントを要約したり、既に行われた決定を強調したりするように Copilot に依頼する場合があります。 その結果、最も関連性の高いことに集中し、チームの優先事項に沿ったコントリビューションができるようになります。
技術用語の明確化
Issue には、専門用語、コード、またはファイルが記載されていることがよくあり、すぐには理解できない場合があります。 Copilotを使用して、これらの参照の説明またはコンテキストを取得できます。 たとえば、ファイルや関数の目的、または issue で言及されている特定の用語の意味について質問できます。 その結果、ドキュメントやコードの検索に余計な時間を費やすことなく、詳細を理解することができます。
次の手順に関する提案の取得
問題のコンテキストを理解したら、 Copilot 進む方法を理解するのに役立ちます。 バグの修正や新機能の実装など、作業に取り組む方法についての提案を求めることができます。 たとえば、「この issue を解決する最善の方法は何ですか?」、 または「この問題を解決するにはどうすればよいですか?」と聞くことができます。 Copilotの提案は、作業をより効果的に計画するのに役立つ開始点を提供できます。
チームとしての意思決定
Issueやディスカッションを使い、プロジェクトの計画された改善や優先順位についてコミュニケーションを取り、チームとして意思決定することができます。 Issueは、バグやパフォーマンスレポート、次の四半期の計画、新しいイニシアティブのデザインといった、特定の詳細に関するディスカッションのために作成すると役立ちます。 ディスカッションは、コードベース外でリポジトリをまたぐオープンエンドのブレインストーミングやフィードバックのために役立ちます。 詳しくは、「GitHubでの通信」をご覧ください。
チームとして、Issue内の日々のタスクの更新についてコミュニケーションを取り、全員に作業の状況を知らせることができます。 たとえば、複数の人が作業をしている大きな機能についてのIssueを作成し、各チームメンバーがそのIssue内で状況を更新したり質問を投げたりできるようにすることができます。
プロジェクトの協力者との課題の例
以下は、Project OctocatのIssueで作業状況を更新するプロジェクトのコラボレータの例です。

プロジェクトのゴールとステータスをハイライトするためのラベルの利用
リポジトリにラベルを作成し、Issue、Pull Request、ディスカッションを分類できます。 GitHub には、編集または削除できるすべての新しいリポジトリの既定のラベルも用意されています。 ラベルは、プロジェクトのゴール、バグ、作業の種類、Issueのステータスを追跡するための役に立ちます。
詳しくは、「ラベルを管理する」をご覧ください。
リポジトリにラベルを作成すると、それはリポジトリ内の任意のIssue、Pull Request、ディスカッションに適用できます。 そして、すべての関連する作業を見つけるためにラベルでIssueやPull Requestをフィルタリングできます。 たとえば、front-end および bug ラベルでフィルタリングして、プロジェクト内のすべてのフロントエンドバグを見つけます。 詳しくは、「Issue及びPull Requestのフィルタリングと検索」をご覧ください。
ラベルの例
以下は、私たちが作成して問題に追加した front-end ラベルの例です。
!["Project Octocat のフロントエンド作業" という issue のスクリーンショット。 右側のサイドバーの [ラベル] セクションに [フロントエンド] ラベルが適用されています。](/assets/cb-94617/images/help/issues/quickstart-add-label-to-issue.png)
プロジェクト に issue を追加する
プロジェクトのGitHubを使用して、チームの作業を計画および追跡できます。 プロジェクトはカスタマイズ可能なスプレッドシートであり、 GitHubの問題や pull requests と統合され、 GitHubに関する情報と共に自動的に up-to-date に維持されます。 IssueやPRのフィルタリング、ソート、グループ化を通じて、レイアウトをカスタマイズできます。 プロジェクトを開始するには、「Projects のクイック スタート」を参照してください。
プロジェクトの例
以下は、我々が作成したProject OctocatのIssueが含まれたサンプルプロジェクトの表のレイアウトです。

同じプロジェクトをボードとして見ることもできます。

次の手順
これで、作業を計画および追跡するためのツール GitHub オファーについて学習し、部門間チームまたはプロジェクト リポジトリの設定を開始しました。 以下は、さらにリポジトリをカスタマイズし、作業を整理するのに役立つリソースです。
- リポジトリの作成の詳細については、「リポジトリについて」を参照してください
- プロジェクトの詳細については、「Projects について学習する」を参照してください
-
プロジェクトのビューのカスタマイズ方法について詳しくは「[AUTOTITLE](/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/changing-the-layout-of-a-view)」 - 以下のさまざまな方法で Issue を作成および管理する手法についての詳細は、「課題であなたの作業を追跡する」をご覧ください。
- 問題テンプレートの詳細を学習するための Issueとプルリクエストのテンプレートについて
- 問題の種類を管理するための 組織での課題の種類の管理
- ラベルを作成、編集、削除する方法を学習するための ラベルを管理する
- サブ課題の追加について学ぶためのAUTOTITLE
- タスク リストの詳細については タスクリストについて をご覧ください