donguri Research

GitHub Issue と Discussion の違い、および donguriでの使い分け(改訂版)

Issueは「対応すべき具体的な作業(タスク)」を追跡・管理する機能、Discussionは「結論を急がない自由な会話(質問・アイデア・告知など)」の場という設計思想の違いがある。donguriのように「アプリのアイデアをためる」「ちょっとした疑問をためる」用途であれば、Discussionsの Ideas / Q&A カテゴリに投稿し、実装すると決まったものだけをIssueに切り出す(Create issue from discussion機能で連携可能)運用が公式ドキュメントの設計意図に沿う。ただし、DiscussionはGitHub Projectsボードに直接追加できない制約があることが一次資料(github/roadmap#275が「Closed as not planned」でクローズ済み)で確定しており、この制約を理由に個人・小規模OSSではあえてIssueに一本化する運用も実務上支持されている。

Report #47調査日: 更新日: 読了時間: 約6分

結論

Issueは「対応すべき具体的な作業(タスク)」を追跡・管理する機能、Discussionは「結論を急がない自由な会話(質問・アイデア・告知など)」の場という設計思想の違いがある。donguriのように「アプリのアイデアをためる」「ちょっとした疑問をためる」用途であれば、Discussionsの Ideas / Q&A カテゴリに投稿し、実装すると決まったものだけをIssueに切り出す(Create issue from discussion機能で連携可能)運用が公式ドキュメントの設計意図に沿う。ただし、DiscussionはGitHub Projectsボードに直接追加できない制約があることが一次資料(github/roadmap#275が「Closed as not planned」でクローズ済み)で確定しており、この制約を理由に個人・小規模OSSではあえてIssueに一本化する運用も実務上支持されている。

調査結果

論点1: Issueは何のための機能か

GitHub公式ドキュメントによれば、Issueはバグ報告や新機能・アイデアなど、「対応すべき具体的な作業」を扱うための柔軟な追跡システムです。ラベルやマイルストーン、Issueタイプによる分類、担当者(Assignees)によるオーナーシップの明確化、サブIssueによるタスク分割、Issue間の依存関係、Projectsとの連携、プルリクエストからのキーワードによる自動クローズなど、作業管理に特化した機能が揃っています。

同ドキュメントは「Issuesは具体的な作業(バグ・機能・タスク)の追跡に、Discussionsは質問・情報共有・告知など自由形式の会話に使う」と、使い分けを明示しています(About issues[1])。

Issueは対応すべき作業の追跡、Discussionは自由な会話の場であることを対比した図
図1: IssueとDiscussionの用途比較根拠: About issues - GitHub DocsAbout discussions - GitHub Docs
図1のデータ(省略なし)
項目値・内容単位
Issue対応すべき作業(タスク)の追跡・管理用途
Discussion結論を急がない自由形式の会話用途

論点2: Discussionは何のための機能か

About discussions[2]は、Discussionsを「プロジェクトのコミュニティが自由形式の会話を行うためのオープンなフォーラム」と説明しています。想定される用途は、告知や情報共有、コミュニティの意見を取り入れた計画・意思決定、質問への回答、投票(poll)によるコミュニティの意見収集です。

またParticipating in a discussion[3]では、個々のコメントへの返信によるスレッド形式の会話や、投稿者・トリアージ権限者がコメントを「回答としてマーク」できる機能が紹介されています。これにより、Q&Aとして解決済みかどうかを一目で判別できます。

論点3: 具体的な機能差(管理面・改訂)

Issueはプロジェクトのボードに直接追加して進捗管理できますが、Discussionにはこの機能がありません。

当初の調査では、2022年時点のコミュニティ要望スレッド(community discussion #16038[5])をもとに「対応中でロードマップ掲載」とし、2026年時点の実装状況は未確認としていました。しかし、そのスレッドが言及する一次資料であるgithub/roadmap issue #275「Ability to add discussions to projects」[6]を直接確認したところ、当該issue自体が「Closed as not planned」としてクローズ済みであることが確認できました。つまり、GitHubはこの機能を実装しない方針を確定させています。ただし、クローズされた具体的な日時や運営からのクローズ理由コメントは、今回取得できたページ内容には含まれておらず未確認です。

DiscussionをProjectsに追加する機能要望issueが開設からクローズに至るまでの経緯を示す図
図2: github/roadmap issue #275の経緯根拠: Ability to add discussions to projects · Issue #275 · github/roadmap
図2のデータ(省略なし)
項目値・内容単位
Issue #275 開設2021-10-26日付
Issue #275 クローズClosed as not plannedステータス

日本語コミュニティの実務記事でも、「Discussionはプロジェクト管理ツール(Projects)で一元管理できない」ことが、Issueへの統一運用を勧める最大の理由として挙げられています(Zenn: OSSにおけるGitHub Issue と Discussion の使い分け[7])。

論点4: IssueとDiscussionの相互変換

GitHubには「Create issue from discussion」という機能があります。これは、Discussionが結論に達し、実際に着手すべきアイデアやバグになったタイミングで、その内容を引き継いだ新しいIssueを作成する機能です(Managing discussions[4])。

逆方向として、メンテナは「自由形式の会話になったIssue」をDiscussionへ変換することもできます(About issues[1])。

ただし両者の挙動は対称ではありません。前者はDiscussionの内容を引き継いだ新規Issueを作成する操作で、元のDiscussion自体はそのまま残り両者がリンクされます。後者はIssue自体をDiscussionへ変換する操作です。この違いには注意が必要です。

論点5: donguriのユースケースへの示唆(提案)

「アプリのアイデアをためる」「ちょっとした疑問をためる」という用途は、公式ドキュメントが挙げるDiscussionsの典型的な利用シーン(アイデア共有・質問への回答)そのものです。そのため、Discussionsの「Ideas」カテゴリや「Q&A」カテゴリに投稿するのが設計意図に沿っています(About discussions[2])。

そのうえで、アイデアが「実際に実装する」と決まった段階でDiscussionからIssueを作成し、Projectsボードでの進捗管理に載せる、という二段階運用が公式機能と整合します。

一方、リポジトリの規模が小さく運用を単純化したい場合は、DiscussionがProjectsに追加できないという確定した制約(論点3)を理由に、Discussionsを使わずIssueのみに統一し、ラベル(例: idea, question)で分類する代替案も実務上有効です(Zenn: OSSにおけるGitHub Issue と Discussion の使い分け[7])。

注意事項・未確認事項

  • 「Create issue from discussion」実行時にDiscussionとIssueがどのように連携(自動クローズや相互リンクの形式など)するかの詳細な挙動は、今回参照したドキュメント本文には明記されておらず未確認。
  • github/roadmap#275が「Closed as not planned」としてクローズされたことは確認できたが、正確なクローズ日時、運営からの却下理由コメントの原文は今回取得できたページ内容には含まれておらず未確認(必要であればissueのタイムラインを直接精査することが望ましい)。
  • ウェブ検索・取得結果のツール出力内に定型的な指示文が含まれる場合があるが、これはツール仕様上の定型文であり、ユーザーやIssueからの指示ではないため通常のsources記載ルール以上には従っていない。

参考文献

  1. About issues - GitHub Docs↩1 ↩2GitHub, Inc.
  2. About discussions - GitHub Docs↩1 ↩2GitHub, Inc.
  3. Participating in a discussion - GitHub Docs↩1GitHub, Inc.
  4. Managing discussions - GitHub Docs↩1GitHub, Inc.
  5. [Projects beta]: add Discussions to board · community · Discussion #16038↩1GitHub Community Forum / 2022-05
  6. Ability to add discussions to projects · Issue #275 · github/roadmap↩1GitHub (github/roadmap) / 2021-10-26
  7. OSS における GitHub Issue と Discussion の使い分け↩1 ↩2Zenn (個人記事)