# 管理者用環境構築手順 (Admin Setup)

プロジェクト作成時に一度だけ行う初期設定．

## GitHub リポジトリの作成 (Repository Setup)

どのデバイスからでも clone できるよう，リポジトリを GitHub に置く．

```bash
# 1. GitHub にリポジトリを作成し，ローカルと紐付けてプッシュ
gh repo create TIASjudge --private --source=. --push

# 2. main ブランチの作成（初回コミットが作業ブランチにある場合）
#    PR を作成して main へマージするか，以下でローカルマージする
git checkout -b main
git merge chore/project-setup
git push -u origin main
```

## ブランチ保護（任意）(Branch Protection)

main への直接プッシュを防ぐ場合，GitHub の Settings → Branches で main に保護ルール（PR 必須化）を設定する．

## 依存パッケージのセキュリティ設定 (Dependabot)

GitHub の **Dependabot alerts**（既知脆弱性の検出）と **Dependabot security updates**（脆弱性を直す PR の自動作成）は**リポジトリごとに既定で OFF** であり，有効化しないと依存パッケージの脆弱性が一切通知されない．リポジトリ作成後に有効化する．

前提: `gh auth login` 済みであり，実行者がリポジトリの admin 権限を持つこと．`{owner}/{repo}` は `gh` がリモートから自動補完するため，リポジトリの clone 内で実行する．

```bash
# 有効化（冪等なので再実行してよい）
gh api -X PUT repos/{owner}/{repo}/vulnerability-alerts        # Dependabot alerts（依存グラフも同時に有効化される）
gh api -X PUT repos/{owner}/{repo}/automated-security-fixes    # Dependabot security updates

# 検証
gh api repos/{owner}/{repo}/vulnerability-alerts               # 204 なら有効．404 なら無効
gh api repos/{owner}/{repo}/automated-security-fixes           # {"enabled":true,...} なら有効
```

※ 本リポジトリ（`rintoHasegawa/TIASjudge`）では 2026-08-28 に有効化済み．fork・複製して新しいリポジトリを作った場合は改めて実行する．
※ 403 が返る場合は admin 権限またはトークンのスコープ不足．GitHub の Settings → Code security → Dependabot から手動で ON にする．404 の場合は `{owner}/{repo}` の補完に失敗しているため，`repos/rintoHasegawa/TIASjudge/...` のように明示する．
※ 依存バージョンの**定期更新 PR** は `.github/dependabot.yml`（Git 管理下）が担当しており，本節のリポジトリ設定とは独立に動作する．そのため本設定は `dependabot.yml` の有無に関係なく必要．更新 PR の処理には `/deps-update` を使う．

## 旧実装データの保管 (Legacy Source)

- `org/`（旧実装一式）は Git 管理外のため，紛失しないよう別途バックアップを保管する（クラウドストレージ等）．新デバイスで参照したい場合はそこから取得する
- 特に `data.csv`（医師評価データ）と変換行列 CSV は診断機能の動作に必須．新実装ではリポジトリ内の `data/` に移して Git 管理する予定（フェーズ 4 で設計）
