こんにちは。エキサイト株式会社のあはれんです。
今回は、GitHub Discussionsのテンプレートを作成方法について紹介します。
サンプルコードは以下で公開しています。
GitHub Discussionsとは
GitHub Discussionsは、GitHubリポジトリの一機能で、コミュニティの共同コミュニケーションフォーラムです。GitHub Discussionsを利用することで、コミュニティメンバーは最新情報を共有したり、質問をしたり、アンケートを取ることができます。
デフォルトの状態でも十分に活用できますが、独自でカテゴリを追加することもできます。 今回は、独自でカテゴリを追加した際のGitHub Discussionsのテンプレート作成方法について紹介します。
GitHub Discussionsのテンプレート作成方法
(1) テンプレートを作成するDiscussionsのカテゴリ用意
Discussions ページに遷移し、カテゴリの編集ボタンを押します。

カテゴリを作成します。

カテゴリを登録します。今回はカテゴリ名を
Architecture Decision Recordとします。
(2) テンプレートファイル作成
まず、/.github/DISCUSSION_TEMPLATE/ ディレクトリを用意します。
/.github/DISCUSSION_TEMPLATE/ ディレクトリ配下に、(1)で用意したカテゴリの名でテンプレートファイルを作成します。
今回の場合は、カテゴリ名がArchitecture Decision Recordなので、/.github/DISCUSSION_TEMPLATE/architecture-decision-record.ymlになります。
テンプレートファイルの書き方は、公式のドキュメントを参照ください。
ディスカッション カテゴリ フォームの構文 - GitHub Docs
今回の場合は以下のように作成しました。
labels: [Architecture Decision Record]
body:
- type: dropdown
attributes:
label: ステータス
description: この文書のステータスを選択してください。
options:
- "提案済み"
- "承認済み"
- "破棄"
validations:
required: true
- type: textarea
attributes:
label: コンテキスト
description: この決定を行った状況について書いてください。
validations:
required: true
- type: textarea
attributes:
label: 決定
description: 決定とその根拠について書いてください。
validations:
required: true
- type: textarea
attributes:
label: 影響
description: 決定による影響や、比較・検討した内容について書いてください。
validations:
required: true
- type: textarea
attributes:
label: コンプライアンス
description: この決定が順守されていることを確認方法について書いてください。
validations:
required: true
- type: textarea
attributes:
label: 備考
description: 参考文献等あれば書いてください。
validations:
required: false
3. デフォルトブランチにmerge
デフォルトブランチにmergeしたら作成完了です。
GitHub Discussionsのテンプレート使用方法
テンプレートを作成したら、GitHub Discussionsで該当のカテゴリを選択してディスカッションを作成します。 作成ページでは、テンプレートで用意した入力フォームが表示されます。

まとめ
GitHub Discussionsのテンプレートを作成することで、ディスカッションの作成を効率化することができます。 独自のカテゴリを用意してGitHub Discussionsを使う際はテンプレートを用意してみてはどうでしょうか。
小話
今回の例で扱っている アーキテクチャ決定文書(Architecture Decision Record) をgitで保管することについては様々な意見があります。この話についてはまたの機会に書きたいと思います。
アーキテクチャ決定文書(Architecture Decision Record)の詳しい話は、「ソフトウェアアーキテクチャの基礎」の「19.3 アーキテクチャデシジョンレコード」に書いてあります。
興味のある方は読んでみてください。