Skip to content

Commit f1f8fdb

Browse files
committed
Add GitHub team development setup
- Add CODEOWNERS for automatic reviewer assignment - Add PR template for consistent code reviews - Add issue templates for bug reports and feature requests - Add CI/CD workflows for automated testing and deployment
1 parent 24f4373 commit f1f8fdb

File tree

6 files changed

+309
-0
lines changed

6 files changed

+309
-0
lines changed

.github/CODEOWNERS

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Global code owners
2+
# すべてのファイルのデフォルトオーナー
3+
* @hackdays-io/frontend-team
4+
5+
# Frontend specific areas
6+
/src/components/ @hackdays-io/frontend-team
7+
/src/pages/ @hackdays-io/frontend-team
8+
/src/themes/ @hackdays-io/frontend-team
9+
10+
# Configuration files
11+
package.json @hackdays-io/devops-team
12+
yarn.lock @hackdays-io/devops-team
13+
tsconfig.json @hackdays-io/frontend-team
14+
next.config.ts @hackdays-io/frontend-team
15+
biome.json @hackdays-io/frontend-team
16+
17+
# GitHub workflows and templates
18+
/.github/ @hackdays-io/devops-team
19+
20+
# Documentation
21+
README.md @hackdays-io/frontend-team
22+
*.md @hackdays-io/frontend-team
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
name: 🐛 バグレポート
3+
about: バグを報告する
4+
title: '[Bug] '
5+
labels: ['bug', 'needs-triage']
6+
assignees: ''
7+
---
8+
9+
## 🐛 バグの概要
10+
11+
<!-- バグの内容を簡潔に説明してください -->
12+
13+
## 🔄 再現手順
14+
15+
1.
16+
2.
17+
3.
18+
4.
19+
20+
## 🎯 期待される動作
21+
22+
<!-- 本来どのような動作をするべきかを説明してください -->
23+
24+
## 💥 実際の動作
25+
26+
<!-- 実際にどのような動作になっているかを説明してください -->
27+
28+
## 📷 スクリーンショット
29+
30+
<!-- 可能であれば、スクリーンショットやエラーメッセージを添付してください -->
31+
32+
## 🌍 環境情報
33+
34+
- **OS**: [例: macOS 13.0, Windows 11, Ubuntu 22.04]
35+
- **ブラウザ**: [例: Chrome 119, Firefox 118, Safari 17]
36+
- **デバイス**: [例: Desktop, Mobile, Tablet]
37+
- **画面サイズ**: [例: 1920x1080, iPhone 14 Pro]
38+
39+
## 📝 追加情報
40+
41+
<!-- その他、バグに関する追加情報があれば記載してください -->
42+
43+
## ✅ 確認事項
44+
45+
- [ ] 最新のコードで問題が再現することを確認した
46+
- [ ] 類似のIssueが既に作成されていないことを確認した
47+
- [ ] ブラウザのキャッシュをクリアして確認した
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
---
2+
name: ✨ 機能要求
3+
about: 新しい機能やアイデアを提案する
4+
title: '[Feature] '
5+
labels: ['enhancement', 'needs-discussion']
6+
assignees: ''
7+
---
8+
9+
## ✨ 機能の概要
10+
11+
<!-- 提案したい機能について簡潔に説明してください -->
12+
13+
## 🎯 解決したい課題・目的
14+
15+
<!-- この機能によって解決したい課題や達成したい目的を説明してください -->
16+
17+
## 💡 提案内容
18+
19+
<!-- 具体的にどのような機能を実装したいかを詳しく説明してください -->
20+
21+
### 機能詳細
22+
-
23+
-
24+
-
25+
26+
### UI/UX要件
27+
<!-- UIの変更が必要な場合は、どのような見た目・操作感にしたいかを説明 -->
28+
29+
## 📋 受け入れ条件
30+
31+
<!-- この機能が完成したと判断するための条件を列挙 -->
32+
- [ ]
33+
- [ ]
34+
- [ ]
35+
36+
## 🎨 デザイン・モックアップ
37+
38+
<!-- 可能であれば、デザインやモックアップを添付してください -->
39+
40+
## 📈 優先度
41+
42+
- [ ] 高(緊急性がある、ビジネスに大きな影響)
43+
- [ ] 中(重要だが急ぎではない)
44+
- [ ] 低(あると良い機能)
45+
46+
## 🔗 関連情報
47+
48+
<!-- 関連するIssue、参考資料、類似サービスの例などがあれば記載 -->
49+
50+
## 📝 補足事項
51+
52+
<!-- その他、この機能に関する補足があれば記載してください -->

.github/pull_request_template.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
## 📝 変更内容
2+
3+
<!-- このPRで何を変更したか簡潔に説明してください -->
4+
5+
## 🎯 目的・背景
6+
7+
<!-- なぜこの変更が必要なのか、解決する課題は何かを説明してください -->
8+
9+
## 🔧 変更詳細
10+
11+
- [ ] 新機能の追加
12+
- [ ] バグ修正
13+
- [ ] リファクタリング
14+
- [ ] ドキュメント更新
15+
- [ ] テストの追加・修正
16+
- [ ] その他:
17+
18+
### 主な変更ファイル
19+
20+
<!-- 変更した主要なファイルとその理由を記載 -->
21+
- `src/components/xxx.tsx` -
22+
- `src/pages/xxx.tsx` -
23+
24+
## 🧪 テスト
25+
26+
### テスト済み項目
27+
- [ ] ローカル環境での動作確認
28+
- [ ] 既存機能への影響確認
29+
- [ ] レスポンシブデザインの確認
30+
- [ ] ブラウザ間での動作確認
31+
32+
### テスト手順
33+
<!-- レビュアーがテストできるよう、具体的な手順を記載 -->
34+
1.
35+
2.
36+
3.
37+
38+
## 📷 スクリーンショット・デモ
39+
40+
<!-- UI変更がある場合はスクリーンショットを添付 -->
41+
<!-- 動作デモが必要な場合はGIFやビデオを添付 -->
42+
43+
### Before
44+
<!-- 変更前 -->
45+
46+
### After
47+
<!-- 変更後 -->
48+
49+
## ⚠️ 注意事項
50+
51+
<!-- レビュアーに特に注意してもらいたい点があれば記載 -->
52+
-
53+
-
54+
55+
## 🔗 関連Issue・PR
56+
57+
<!-- 関連するIssueやPRがあればリンクを記載 -->
58+
- Closes #
59+
- Related to #
60+
61+
## ✅ チェックリスト
62+
63+
### コード品質
64+
- [ ] コードレビューを依頼する準備ができている
65+
- [ ] 自分でコードレビューを実施済み
66+
- [ ] リント・フォーマットエラーがない
67+
- [ ] TypeScriptエラーがない
68+
- [ ] 不要なコメントやconsole.logが残っていない
69+
70+
### ドキュメント
71+
- [ ] 必要に応じてREADMEを更新した
72+
- [ ] 新しい機能にはコメントを追加した
73+
- [ ] 複雑なロジックには説明コメントを追加した
74+
75+
### セキュリティ
76+
- [ ] 機密情報がコードに含まれていない
77+
- [ ] 環境変数を適切に使用している
78+
- [ ] XSSやその他のセキュリティ脆弱性がない

.github/workflows/ci.yml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ main, develop ]
6+
pull_request:
7+
branches: [ main, develop ]
8+
9+
jobs:
10+
lint-and-test:
11+
runs-on: ubuntu-latest
12+
13+
strategy:
14+
matrix:
15+
node-version: [18.x, 20.x]
16+
17+
steps:
18+
- name: Checkout repository
19+
uses: actions/checkout@v4
20+
21+
- name: Setup Node.js ${{ matrix.node-version }}
22+
uses: actions/setup-node@v4
23+
with:
24+
node-version: ${{ matrix.node-version }}
25+
cache: 'yarn'
26+
27+
- name: Install dependencies
28+
run: yarn install --frozen-lockfile
29+
30+
- name: Run linter
31+
run: yarn lint
32+
33+
- name: Run type check
34+
run: yarn tsc --noEmit
35+
36+
- name: Run format check
37+
run: yarn biome format ./src --check
38+
39+
- name: Build application
40+
run: yarn build
41+
env:
42+
NEXT_PUBLIC_AIRTABLE_PAT: ${{ secrets.NEXT_PUBLIC_AIRTABLE_PAT }}
43+
NEXT_PUBLIC_AIRTABLE_BASE: ${{ secrets.NEXT_PUBLIC_AIRTABLE_BASE }}
44+
NEXT_PUBLIC_AIRTABLE_TABLE: ${{ secrets.NEXT_PUBLIC_AIRTABLE_TABLE }}
45+
46+
security-check:
47+
runs-on: ubuntu-latest
48+
steps:
49+
- name: Checkout repository
50+
uses: actions/checkout@v4
51+
52+
- name: Run security audit
53+
run: yarn audit --level moderate

.github/workflows/deploy.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Deploy to GitHub Pages
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
pages: write
11+
id-token: write
12+
13+
concurrency:
14+
group: "pages"
15+
cancel-in-progress: false
16+
17+
jobs:
18+
build:
19+
runs-on: ubuntu-latest
20+
steps:
21+
- name: Checkout repository
22+
uses: actions/checkout@v4
23+
24+
- name: Setup Node.js
25+
uses: actions/setup-node@v4
26+
with:
27+
node-version: '20'
28+
cache: 'yarn'
29+
30+
- name: Install dependencies
31+
run: yarn install --frozen-lockfile
32+
33+
- name: Build application
34+
run: yarn build
35+
env:
36+
NEXT_PUBLIC_AIRTABLE_PAT: ${{ secrets.NEXT_PUBLIC_AIRTABLE_PAT }}
37+
NEXT_PUBLIC_AIRTABLE_BASE: ${{ secrets.NEXT_PUBLIC_AIRTABLE_BASE }}
38+
NEXT_PUBLIC_AIRTABLE_TABLE: ${{ secrets.NEXT_PUBLIC_AIRTABLE_TABLE }}
39+
40+
- name: Setup Pages
41+
uses: actions/configure-pages@v4
42+
43+
- name: Upload artifact
44+
uses: actions/upload-pages-artifact@v3
45+
with:
46+
path: ./out
47+
48+
deploy:
49+
environment:
50+
name: github-pages
51+
url: ${{ steps.deployment.outputs.page_url }}
52+
runs-on: ubuntu-latest
53+
needs: build
54+
steps:
55+
- name: Deploy to GitHub Pages
56+
id: deployment
57+
uses: actions/deploy-pages@v4

0 commit comments

Comments
 (0)