GitHub Discussionsのテンプレートを作成してみた

こんにちは。エキサイト株式会社のあはれんです。

今回は、GitHub Discussionsのテンプレートを作成方法について紹介します。

サンプルコードは以下で公開しています。

github.com

GitHub Discussionsとは

GitHub Discussionsは、GitHubリポジトリの一機能で、コミュニティの共同コミュニケーションフォーラムです。GitHub Discussionsを利用することで、コミュニティメンバーは最新情報を共有したり、質問をしたり、アンケートを取ることができます。

デフォルトの状態でも十分に活用できますが、独自でカテゴリを追加することもできます。 今回は、独自でカテゴリを追加した際のGitHub Discussionsのテンプレート作成方法について紹介します。

docs.github.com

GitHub Discussionsのテンプレート作成方法

(1) テンプレートを作成するDiscussionsのカテゴリ用意

  1. Discussions ページに遷移し、カテゴリの編集ボタンを押します。

  2. カテゴリを作成します。

  3. カテゴリを登録します。今回はカテゴリ名を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で該当のカテゴリを選択してディスカッションを作成します。 作成ページでは、テンプレートで用意した入力フォームが表示されます。

Discussion 作成ページ

まとめ

GitHub Discussionsのテンプレートを作成することで、ディスカッションの作成を効率化することができます。 独自のカテゴリを用意してGitHub Discussionsを使う際はテンプレートを用意してみてはどうでしょうか。

小話

今回の例で扱っている アーキテクチャ決定文書(Architecture Decision Record) をgitで保管することについては様々な意見があります。この話についてはまたの機会に書きたいと思います。

アーキテクチャ決定文書(Architecture Decision Record)の詳しい話は、「ソフトウェアアーキテクチャの基礎」の「19.3 アーキテクチャデシジョンレコード」に書いてあります。 興味のある方は読んでみてください。