コンテンツにスキップ

Discussions

この章では、GitHub Discussionsを使ったコミュニティコミュニケーションについて学びます。

Discussionsは、コードに関係のない議論やQ&A、アナウンスメントのための機能です。Issuesとは異なり、より自由形式の対話に適しています。

項目IssuesDiscussions
目的タスク・バグ追跡議論・Q&A
状態管理Open/Closed回答済み/未回答
投票なしあり(Upvote)
カテゴリラベル専用カテゴリ
変換→ Discussion→ Issue
Discussions を使う:
- 質問・ヘルプ依頼
- アイデアの議論
- プロジェクトのアナウンス
- 一般的な会話
- 投票が必要な決定
Issues を使う:
- バグ報告
- 機能要望(実装予定あり)
- タスク管理
- PRに紐づく作業
  1. リポジトリの Settings
  2. General → Features
  3. Discussions にチェック
カテゴリ形式用途
Announcements📣お知らせ(メンテナーのみ投稿可)
General💬一般的な議論
Ideas💡アイデア・提案
Polls🗳️投票
Q&A質問と回答
Show and tell🙌成果の共有

Discussions → Categories → New category:

カテゴリ例:
- 📚 Documentation: ドキュメントに関する質問
- 🔧 Configuration: 設定・セットアップの質問
- 🤝 Collaboration: コラボレーション募集
- 🎉 Release Notes: リリース情報
形式説明
Discussion自由形式の議論
Q&A質問と回答(回答を選択可能)
Announcementメンテナーのみ投稿可
Poll投票形式
  1. Discussions → New discussion
  2. カテゴリ「Q&A」を選択
  3. 質問を投稿

回答者またはメンテナーが「Mark as answer」で正解をマーク:

質問: Node.js のバージョンは?
└─ 回答1: v18 がおすすめ
└─ 回答2: v20 LTS を推奨 ✅ Marked as answer
└─ 回答3: 古いバージョンも可

回答済みの質問は検索で見つけやすく、同じ質問の重複を防げます。

  1. カテゴリ「Polls」を選択
  2. 質問文を入力
  3. 選択肢を追加
  4. 投票期限を設定(任意)
🗳️ 次にサポートすべきフレームワークは?
○ React (45%)
○ Vue (30%)
○ Svelte (15%)
○ Angular (10%)
期限: 2024年1月31日

メンテナー(Write権限以上)のみが投稿可能:

  1. カテゴリ「Announcements」を選択
  2. 重要なお知らせを投稿
  3. 固定(Pin)も可能
📣 v2.0 リリースのお知らせ
本日、v2.0 をリリースしました。
## 主な変更点
- 新機能A
- 新機能B
- 破壊的変更C
## アップグレード方法
...

議論から具体的なタスクが生まれた場合:

  1. Discussion を開く
  2. 右サイドバー → 「Create issue from discussion」
  3. Issue が作成され、Discussion にリンクが追加される

逆に Issue → Discussion への変換も可能。

  1. リポジトリに CODE_OF_CONDUCT.md を追加
  2. Discussions のガイドラインとして機能
  • Lock: 追加コメントを禁止
  • Delete: 投稿を削除
  • Report: GitHubに報告
  • Convert: Issueに変換して対処

Settings → Moderation:

  • 最小アカウント年齢
  • 最初の投稿の承認
  • スパムフィルター

# 回答済み
is:answered
# 未回答
is:unanswered
# 特定カテゴリ
category:"Q&A"
# 著者
author:username
# コメント数
comments:>5
Terminal window
# Discussion一覧
gh discussion list
# Discussion作成
gh discussion create --title "質問" --body "本文" --category "Q&A"
# Discussion詳細
gh discussion view 123

Discussions を活用したドキュメント

Section titled “Discussions を活用したドキュメント”

よくある質問(FAQ)をDiscussionsで管理:

  1. Q&A カテゴリで質問を蓄積
  2. 回答をマーク
  3. 重要な質問を固定
  4. 検索可能なナレッジベースに
# 新しいDiscussionをSlackに通知
name: Discussion Notification
on:
discussion:
types: [created]
jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Notify
run: |
curl -X POST ${{ secrets.SLACK_WEBHOOK }} \
-d '{
"text": "新しいDiscussion: ${{ github.event.discussion.title }}"
}'

機能用途
Q&A質問と回答
Polls投票・意見収集
Announcements公式お知らせ
General自由な議論
→ Issue具体的タスクへ変換
  1. カテゴリを整理: 目的に応じた分類
  2. Q&A を活用: 回答をマークしてFAQ化
  3. Announcement で周知: 重要情報を見逃さない
  4. Issue と使い分け: 議論 vs タスク
  5. コミュニティガイドライン: ルールを明確に

次の章では、GitHub Actions基礎について学びます。

Q1. GitHub DiscussionsとIssuesの主な違いは何ですか?

Q2. Discussionsのカテゴリで「Announcements」の特徴は何ですか?

Q3. DiscussionをIssueに変換できる理由は何ですか?