こんにちは。ソフトウェアエンジニアの id:masutaka26 です。最近は社内プロダクトの OSS 化を推進する活動をしています。
先日、GitHub の Issue テンプレートを調査しました。その中で Supabase が参考になったので共有します。
1. New Issue からの導線
これが Supabase の Issue テンプレートです。
🔗 https://github.com/supabase/supabase/issues/new/choose
②に興味を惹かれました。いずれも GitHub Organization の Discussions へのリンクです。
- Feature request
- Feature Requests のカテゴリで Discussion を作る
- Ask a question
- カテゴリを選んで Discussion を作る
ちなみに、リポジトリの Discussions は Org Discussions にリダイレクトされます。GitHub Organization の設定です。
③の求人リンクは自由で面白いと思いました。
コラム: Issue テンプレートはどこにある?
supabase/supabase リポジトリには Issue テンプレートはなく、探したら supabase/.github リポジトリにありました。
GitHub Organization の .github リポジトリは特別なリポジトリです。
ここに置いた Issue/PR テンプレートや、CONTRIBUTING.md、CODE_OF_CONDUCT.md などは、各リポジトリのデフォルトになります。
そのままで良ければ、各リポジトリで作らなくて OK です。変更したければ、各リポジトリで作ります。
Issue テンプレートは一点だけ注意事項があります。各リポジトリの .github/ISSUE_TEMPLATE/
以下に 1 つでも Issue テンプレートや、config.yml を置くと、.github リポジトリのものは無視されます。
2. Discussions のカテゴリ設計
こちらが Supabase Org の Discussions です。フォーラムのように設計されています。左側の Categories
と右側の Most helpful
に注目しました。
🔗 https://github.com/orgs/supabase/discussions
Categories
コントリビュートを促したり、Changelog での活発なアップデート情報、Supabase 関連の求人や作ったものの披露など、非常に参考になりました。
- Community
- Contribute to Supabase
- Supabase にコントリビュート出来そうな小さなタスクを共有
- Contributing guide もピン留めされている
- Feature Requests
- 新機能のアイデアを共有する
- General
- どこにも当てはまらないやつ
- Questions
- 質問はこちら。でもここ以外にも質問はある
- Contribute to Supabase
- Platform
- Changelog
- GitHub Release に加えて、ここでも活発にアップデート情報を出している
- Jobs Board
- ここに Supabase 関連の求人を出しても良いらしい❗
- Troubleshooting
- トラブルシューティングがまとまっている
- Changelog
- Build with Superbase
- Polls
- アンケートがいくつかある
- Shows and tell
- Supabase で作ったものを披露できる
- Polls
See also Default categories - GitHub Docs
Most helpful
質問や Feature リクエストのベストアンサーに選ばれた人のランキングです。
コントリビュートのモチベーションになるかも?
まとめ
Supabase の GitHub 設計が参考になったので共有しました。
- GiHub Discussions をフォーラムのように使っている
- supabase Org には supabase 関連のリポジトリだけを置くため、以下のようになっている
- 各リポジトリの Discussions(例)は、https://github.com/orgs/supabase/discussions にリダイレクトされる
- https://github.com/supabase/.github リポジトリに、Issue/PR テンプレートや CONTRIBUTING.md を置き、各リポジトリのデフォルトとしている