はじめに
自分が所属しているコミュニティで、GitHub Discussion を使ってテンプレートを作成したので、その作成方法をまとめます。
非エンジニアの方でもエンジニアとの話し合いの場に GitHub Discussion はとても役立つのでぜひ試してみて下さい。
GitHub Discussion とは
GitHub Discussion は、OSS(Open Source Software) または内部プロジェクトに関するコミュニティの共同コミュニケーションフォーラムです。
画像は、GitHub Community の Discussion 画面です。

Discussion を始める方法については、GitHub Discussions のクイックスタートをご覧ください。
テンプレートを使うメリット
GitHub Discussion では、テンプレートを使うことができます。
テンプレートを使うことによって、議論の内容を明確にできます。
特に質問の場合は、テンプレートを使うことで回答者が必要な情報をまとめやすく、回答者の負担を減らすことができます。
テンプレートの作成方法
1. Discussion のカテゴリを用意する
2. テンプレートファイルを作成する
フィールドごとに、入力の種類、検証、および既定のラベルを定義できます。
コミュニティメンバーがディスカッションフォームに入力すると、それぞれの入力に対する回答が Markdown に変換され、ディスカッションの本文に追加されます。
Discussion のテンプレートを作成・追加するには、.github/DISCUSSION_TEMPLATE/
ディレクトリを作成します。
.github/DISCUSSION_TEMPLATE/
ディレクトリには、カテゴリごとにテンプレートファイルを作成します。複数のカテゴリを跨いで作成できないので注意して下さい。
テンプレートファイルは YAML 形式で記述します。
例えば、Flutter というカテゴリのテンプレートを作成する場合は、.github/DISCUSSION_TEMPLATE/flutter.yml
というファイルを作成します。次に、labels
に Flutter を追加して、labels: [Flutter]
のようにします。
ディスカッションカテゴリフォームの構成ファイルには、body
キーが含まれている必要があり、body
には少なくとも 1 つの Markdown 以外のフィールドが含まれている必要があります。例えば、type: input
や type: textarea
, type: toggle
などが挙げられます。
以下のコードは、GitHub Community の Actions に関する Discussion カテゴリーのテンプレートファイルです。
labels: [Actions]
body:
- type: dropdown
attributes:
label: Select Topic Area
description: What would you like to discuss?
options:
- "Question"
- "Product Feedback"
- "Bug"
- "Show & Tell"
- "General"
validations:
required: true
- type: textarea
attributes:
label: Body
description: Start your discussion!
validations:
required: true
上記の書き方だと、以下のようなフォームになります。
validations: required: true
で入力を必須項目にすることができるので、おすすめです。
デフォルトブランチにマージ
ファイルが作成できたら、main
などのデフォルトブランチにマージしたら作成完了です。
GitHub Discussionsのテンプレート使用方法
テンプレートを作成できたら、GitHub Discussions で該当カテゴリを選択してディスカッションを作成します。テンプレートで用意した入力フォームが表示されているので入力して、ディスカッションを始めましょう!