Skip to content

GitHub Collaboration and Security

humanbeans893 edited this page Jul 16, 2026 · 2 revisions

GitHub での共同作業と安全運用

このテンプレートリポジトリの現在の保護

humanbeans893/research-template は public ですが、public であることは「誰でも push できる」という意味ではありません。閲覧と fork は可能でも、書き込みには明示的な権限が必要です。

既定ブランチ main には protect-main ruleset が有効で、次を要求しています。

  • Pull Request 経由で更新する
  • 承認 1 件を要求する
  • force push を禁止する
  • ブランチ削除を禁止する
  • repository admin の bypass も Pull Request 経由に限定する

また、Secret scanning、secret push protection、Dependabot vulnerability alerts、Dependabot security updates を有効にしています。

推奨する共同作業

権限を持つ共同研究者:

git switch -c analysis/<short-topic>
# 編集、テスト
git status
git add <intentional-files>
git commit -m "Describe the research change"
git push -u origin analysis/<short-topic>

GitHub で Pull Request を作り、変更内容、検証方法、研究上の影響、生成物の再現方法を書きます。main へ直接 push しません。

外部コントリビューターには原則として collaborator 権限を付けず、fork から Pull Request を出してもらいます。

新しい研究リポジトリで必ず設定すること

テンプレートからファイルを複製しても、GitHub の ruleset や security settings が引き継がれない場合があります。リポジトリ作成直後に Settings で確認します。

Rules

  • 対象を default branch にする
  • Require a pull request before merging
  • 必要な approving review 数
  • Block force pushes
  • Restrict deletions
  • bypass は最小限とし、可能なら Pull request only

Collaborators

  • write/admin 権限は必要な人だけ
  • 退職・異動・共同研究終了時に削除
  • 日常作業に admin を配らない
  • GitHub アカウントで 2 要素認証または passkey を使用

Code security

  • Secret scanning
  • Push protection
  • Dependabot alerts
  • Dependabot security updates

コミット前の公開確認

git status --short
git diff
git diff --cached
git ls-files data/raw

次が含まれていないことを確認します。

  • .env、秘密鍵、API token、cookie、認証 URL
  • raw data、個人情報、精密位置情報、共同研究者からの非公開資料
  • 個人名を含む絶対パス、内部ホスト名
  • 大容量のモデル、動画、アーカイブ、生成 PDF
  • notebook の出力に残ったデータや token

秘密情報を push してしまった場合

単に最新 commit から削除しても、Git 履歴には残ります。

  1. 該当 token/鍵を直ちに失効・ローテーションする。
  2. 影響範囲とアクセスログを確認する。
  3. 必要に応じて Git 履歴から削除し、共同研究者へ再 clone を依頼する。
  4. Secret scanning alert を確認して close 理由を記録する。
  5. .gitignore、push protection、手順、CI を改善する。

履歴書き換えは共同作業へ影響するため、通常の修正とは分けて明示的に調整します。

公開リポジトリとしての追加確認

  • 現在このテンプレートには LICENSE がありません。閲覧できても第三者が再利用できる条件は明確ではないため、再利用を促すなら目的に合うライセンスを選んで追加します。
  • commit の著者名・メールアドレス、削除済みファイル名、Issue/PR の会話も公開対象です。
  • 研究データのライセンスとコードのライセンスは別々に確認します。
  • 投稿規程や共同研究契約がコード・データの事前公開を認めるか確認します。

Clone this wiki locally