> ## Documentation Index
> Fetch the complete documentation index at: https://help.craftstadium.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub でチームのリポジトリを用意する

> GitHub Organization と連携して、チームごとのプライベートリポジトリ作成、参加者の招待、提出締切でのコードフリーズを行う方法です。

<Info>
  **この操作をする場所**

  * 最初の接続（1回だけ）：左下の **組織設定** → **GitHub** タブ（組織の管理者のみ）
  * ハッカソンごとの設定と実行：ハッカソンを開く → **GitHub連携** タブ
</Info>

GitHub 連携を使うと、チームごとにプライベートリポジトリを自動で作り、メンバーを招待できます。提出締切の時点でリポジトリへの書き込みを止める（コードフリーズ）こともできます。

## 準備：GitHub Organization を接続する

組織で1回だけ行います。

<Steps>
  <Step title="必要なものを確認する">
    * 接続する人が、Organize の組織の **管理者** であること
    * 接続する人が、対象の GitHub Organization の管理者であること
    * 接続する人が、CraftStadium（参加者向けサイト）で自分の GitHub アカウントを連携していること
  </Step>

  <Step title="接続する">
    左下の **組織設定** → **GitHub** タブで **GitHub Organizationを接続** を押します。

    <Frame>
      <img src="https://mintcdn.com/copalette/9t0x80izmX3253wI/images/org-github.png?fit=max&auto=format&n=9t0x80izmX3253wI&q=85&s=154927b9557dd68b12072e0e634ca45c" alt="組織設定のGitHubタブ。GitHub Organizationが未接続です、とGitHub Organizationを接続ボタン" width="1080" height="400" data-path="images/org-github.png" />
    </Frame>

    GitHub の画面に移るので、使う Organization に CraftStadium のアプリをインストールします。
  </Step>

  <Step title="安全確認の結果を見る">
    ほかのチームのコードが見えないよう、Organization のメンバーの基本権限（Base permissions）が「No permission」になっているかを確認します。赤い警告が出た場合は、解消するまでリポジトリの作成と招待は行われません。**再確認** を押すか、GitHub の Organization 設定 → Member privileges → Base permissions を「No permission」に変えてください。
  </Step>
</Steps>

<Note>
  **連携を切断** しても、作成済みのリポジトリと Team は GitHub に残ります。別の Organization につなぎ替えても、作成済みのリポジトリは引き継がれません。
</Note>

## ハッカソンごとに設定する

<Steps>
  <Step title="GitHub連携タブを開く">
    ハッカソンの **GitHub連携** タブを開き、**設定する** を押します。下書きのハッカソンでは使えません。

    <Frame>
      <img src="https://mintcdn.com/copalette/9t0x80izmX3253wI/images/github-tab-empty.png?fit=max&auto=format&n=9t0x80izmX3253wI&q=85&s=4780e5037ac339e224f70aea1bfe10cb" alt="GitHub連携タブ。GitHub連携がまだ設定されていません、と設定するボタン" width="1184" height="270" data-path="images/github-tab-empty.png" />
    </Frame>
  </Step>

  <Step title="リポジトリ名と権限を決める">
    <Frame>
      <img src="https://mintcdn.com/copalette/9t0x80izmX3253wI/images/github-settings-1.png?fit=max&auto=format&n=9t0x80izmX3253wI&q=85&s=b202503fe9592e03cafa149d575a2a52" alt="GitHub連携の設定。同期を有効にする、リポジトリ名の接頭辞、テンプレート、作成される名前の例、参加者の権限" width="674" height="798" data-path="images/github-settings-1.png" />
    </Frame>

    * **リポジトリ名の接頭辞**（必須）：例 `mirai-tech-2026`。英数字・ハイフン・アンダースコア・ドットだけ使えます
    * **リポジトリ名のテンプレート**：最初は `{prefix}-{seq}` で、`mirai-tech-2026-01`、`mirai-tech-2026-02` のように連番になります。チーム名はリポジトリ名には使われず、リポジトリの説明欄に入ります
    * **参加者の権限**：最初は「書き込み（Write）」です
  </Step>

  <Step title="審査員・事務局の権限とコードフリーズを決める">
    <Frame>
      <img src="https://mintcdn.com/copalette/9t0x80izmX3253wI/images/github-settings-2.png?fit=max&auto=format&n=9t0x80izmX3253wI&q=85&s=6fe58e56e8e3239029f1340de266eb87" alt="GitHub連携の設定の続き。審査員・事務局チームのslugと権限、コードフリーズ、READMEテンプレート" width="674" height="798" data-path="images/github-settings-2.png" />
    </Frame>

    * **審査員チームのslug** / **事務局チームのslug**：GitHub 側で先に Team を作っておき、その slug を入れると全リポジトリに権限が付きます。空欄なら付きません。審査員は誤って書き込まないよう「読み取りのみ（Read）」がおすすめです
    * **コードフリーズ**：「凍結しない」「提出締切で自動凍結」「手動でのみ凍結」から選びます
    * **READMEテンプレート**：リポジトリを作った直後に1回だけ入れる README です。参加者が書き始めた README は上書きしません
  </Step>

  <Step title="保存する">
    **保存** を押します。保存しただけではリポジトリは作られません。
  </Step>
</Steps>

## リポジトリを作って招待する

チームが決まったら（[チームを編成する](/guides/teams)）、GitHub連携タブで次の順に進めます。

1. **参加者の GitHub アカウントを確認する**：一覧に、参加者ごとの GitHub アカウントと取得方法（本人連携 / 主催者が代理入力 / 本人が手入力）が出ます。「本人が手入力」のアカウントは、運営が確認して **登録** を押すまで招待されません
2. **同期を実行** を押す：チームごとにリポジトリと GitHub の Team が作られます
3. **Organizationに招待** を押す：参加者に GitHub から招待メールが届きます

<Warning>
  * GitHub の招待は **7日で失効** します。予選・本番の3〜5日前に送るのがおすすめです
  * 作ってから1か月たっていない Organization は、招待を24時間に50件までしか送れません
  * 失敗した行は自動ではやり直されません。行の **再実行** を押してください
</Warning>

チームのメンバーを入れ替えた場合は、もう一度 **同期を実行** すると、GitHub の Team のメンバーもそろえられます。

参加者は、参加者ページの **成果物** タブに表示される「チームのGitHubリポジトリ」からリポジトリを開けます。

## コードフリーズ（書き込みを止める）

提出締切の時点のコードで審査するために、参加者の書き込みを止めます。**今すぐ凍結** を押すと、参加者の権限が読み取りだけになり、凍結した時刻が記録されます。

<Warning>
  * Organization のオーナーと、アプリ経由の書き込みは止まりません。また、コミット履歴の書き換えを技術的に防ぐことはできません。審査は **凍結時刻を基準** にしてください
  * **凍結を解除すると、凍結時刻の記録は消えます。** 解除する前に時刻を控えてください
  * 凍結と解除は、組織の管理者だけが行えます
</Warning>

<Note>
  「提出締切で自動凍結」を選んでいる場合も、提出締切の後に GitHub連携タブで凍結時刻が表示されているかを確認してください。表示されていなければ **今すぐ凍結** を押してください。
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.