# リポジトリの codespace を作成する

リポジトリのブランチの codespace を作成して、オンラインで開発できます。

## リポジトリの codespace の作成について

codespace は、GitHub、Visual Studio Code、または GitHub CLI を使用して作成できます。 この記事のタブを使用して、codespace を作成するこれらの各方法の手順を表示します。

個人の GitHub Codespaces アカウントで GitHub を使用できます。Free プランと Pro プランのアカウントには毎月無料使用のクォータが含まれています。 毎月含まれているストレージとコンピューティングの使用量を超えて GitHub Codespaces を使い続けるには、支払い情報を入力して、利用限度を設定します。 「[GitHub Codespaces の課金](/ja/billing/managing-billing-for-your-products/managing-billing-for-github-codespaces/about-billing-for-github-codespaces)」をご覧ください。

組織は、メンバーと外部コラボレーターが組織の費用で codespace を作成して使用できるようにすることができます。 詳しくは、「[組織内の codespace を誰が所有し、支払うかの選択](/ja/codespaces/managing-codespaces-for-your-organization/choosing-who-owns-and-pays-for-codespaces-in-your-organization)」をご覧ください。

組織所有のリポジトリから codespace を作成できるかどうかは、リポジトリの可視性、組織またはその親企業の設定など、いくつかの要因によって異なります。 詳しくは、「[codespace の作成と削除のトラブルシューティング](/ja/codespaces/troubleshooting/troubleshooting-creation-and-deletion-of-codespaces#no-access-to-create-a-codespace)」をご覧ください。

これらのステップを実行してください：

新しいプロジェクトを始める場合は、テンプレートから codespace を作成して、後で GitHub でリポジトリを公開できます。 詳しくは、「[テンプレートから codespace を作成する](/ja/codespaces/developing-in-a-codespace/creating-a-codespace-from-a-template)」を参照してください。

リポジトリから codespace を作成すると、codespace は特定のブランチに関連付けられます。空にすることはできません。 リポジトリごと、さらにはブランチごとに1つ以上のcodespaceを作成できます。

\[コードスペース] ページで、作成したすべての使用可能なすべてのコードスペースを確認できます。 このページを表示するには、GitHub の左上隅にある \[<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-three-bars" aria-label="Open global navigation menu" role="img"><path d="M1 2.75A.75.75 0 0 1 1.75 2h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 2.75Zm0 5A.75.75 0 0 1 1.75 7h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 7.75ZM1.75 12h12.5a.75.75 0 0 1 0 1.5H1.75a.75.75 0 0 1 0-1.5Z"></path></svg>] を選択し、**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-codespaces" aria-label="codespaces" role="img"><path d="M0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm2-9.5C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 0 1-1.75 1.75h-8.5A1.75 1.75 0 0 1 2 6.75Zm1.75-.25a.25.25 0 0 0-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5a.25.25 0 0 0-.25-.25Zm-2 9.5a.25.25 0 0 0-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-3a.25.25 0 0 0-.25-.25Z"></path><path d="M7 12.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path></svg> \[Codespaces]** をクリックします。 これにより、[github.com/codespaces](https://github.com/codespaces) に移動します。

### codespace の作成プロセス

codespace を作成すると、開発環境を作成して開発環境に接続するためのいくつかの手順が発生します。

* 手順 1: VM とストレージが codespace に割り当てられます。
* 手順 2: コンテナーが作成され、リポジトリが複製されます。
* 手順 3: codespace に接続できます。
* 手順 4: codespace では、作成後のセットアップが続行されます。

codespace を作成するときに行われることについて詳しくは、「[GitHub Codespaces に深く迫る](/ja/codespaces/about-codespaces/deep-dive)」をご覧ください。

codespace のライフサイクルについて詳しくは、「[codespace ライフサイクルについて](/ja/codespaces/about-codespaces/understanding-the-codespace-lifecycle)」をご覧ください。

codespace に Git フックを使用する場合は、`devcontainer.json` ライフサイクル スクリプト (例: `postCreateCommand`) を使用してフックを設定する必要があります。 これらは、上記の手順 4 で実行されます。 ライフサイクル スクリプトについて詳しくは、開発コンテナーの Web サイト上にある「[開発コンテナー仕様](https://containers.dev/implementors/json_reference/#lifecycle-scripts)」をご覧ください。 リポジトリの複製後に codespace 用の開発コンテナーが作成されるため、開発コンテナー イメージで構成された [Git テンプレート ディレクトリ](https://git-scm.com/docs/git-init#_template_directory) は codespace には適用されません。 代わりに、codespace の作成後にフックをインストールする必要があります。

VS Code の codespace で開発をする際に、コードを編集し、デバッグし、Gti のコマンドを使うことができます。 詳しい情報については、[VS Code のドキュメント](https://code.visualstudio.com/docs)を参照してください。

コードスペースの作成を高速化するために、リポジトリ管理者はリポジトリの GitHub Codespaces プレビルドを有効にすることができます。 詳しくは、「[GitHub Codespaces prebuilds について](/ja/codespaces/prebuilding-your-codespaces/about-github-codespaces-prebuilds)」をご覧ください。

## リポジトリの codespace を作成する

<div class="ghd-tool webui">

1. GitHub で、リポジトリのメイン ページに移動します。

2. リポジトリ名の下で、現在のブランチの名前が付いたブランチ ドロップダウン メニューを選び、codespace を作るブランチをクリックします。

   ![展開されたブランチのドロップダウン メニューのスクリーンショット。さまざまなブランチが一覧表示されています。 \[trunk\] ドロップダウン メニューがブランチ アイコンと共に表示されており、オレンジ色の枠線で囲まれています。](/assets/images/help/codespaces/branch-drop-down.png)

3. ```
          **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="code" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg> [Code]** ボタンをクリックしてから、**[Codespaces]** タブをクリックします。
   ```

   ダイアログの下部に、codespace の料金を支払うユーザーを示すメッセージが表示されています。

   ![Codespaces ダイアログのスクリーンショット。 codespace の料金を支払うユーザーを示すメッセージが、濃いオレンジ色の枠線で強調表示されています。](/assets/images/help/codespaces/who-will-pay.png)

4. 既定のオプションを使用するか、詳細オプションを構成した後に、codespace を作成します。

   * ```
          **既定のオプションを使用する**
     ```

     既定のオプションを使用して codespace を作成するには、\[<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-plus" aria-label="Create a codespace on BRANCH" role="img"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z"></path></svg>] をクリックします。 <br/><br/>

   * ```
          **詳細設定オプションの構成**
     ```

     別のマシンの種類や特定の `devcontainer.json` ファイルなど、codespace の詳細オプションを構成するには:

     1. ```
         **[Codespaces]** タブの右上にある [<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-kebab-horizontal" aria-label="Codespace repository configuration" role="img"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg>] を選び、 **[オプションを指定して新規作成]** をクリックします。
        ```

        ![\[Codespaces\] タブのオプション ドロップダウンのスクリーンショット。\[オプションを指定して新規作成\] オプションが強調表示されています。](/assets/images/help/codespaces/default-machine-type.png)

     2. codespace のオプション ページで、ドロップダウン メニューから任意のオプションを選びます。

        ![\[ブランチ\]、\[開発コンテナーの構成\]、\[リージョン\]、\[マシンの種類\] のボタンが表示された詳細オプション ページのスクリーンショット。](/assets/images/help/codespaces/advanced-options.png)

        オプション ページには、Codespaces 設定での作成が推奨されるシークレットの名前も 1 つまたはそれ以上表示されます。 詳しくは、「[推奨されるシークレット](#recommended-secrets)」をご覧ください。

        > \[!NOTE]
        >
        > * オプション ページをブックマークすると、このリポジトリとブランチの codespace をすばやく作成できるようになります。
        > *

        ```
         [
        ```

        ```
         https://github.com/codespaces/new
         ](https://github.com/codespaces/new) ページでは、リポジトリとブランチの codespace をすばやく作成できます。 ブラウザーのアドレス バーに「`codespace.new`」と入力すると、このページにすばやくアクセスできます。
        ```

        > * 開発コンテナーの構成ファイルについて詳しくは、「[開発コンテナーの概要](/ja/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers)」をご覧ください。
        > * マシンの種類について詳しくは、「[codespace のマシンの種類を変更する](/ja/codespaces/customizing-your-codespace/changing-the-machine-type-for-your-codespace#about-machine-types)」をご覧ください。
        > * 使用可能なマシンは、数多くの要因によって、選択の幅が制限されます。 これには、Organization に対して構成されているポリシーや、リポジトリでの最低限の種類のマシン仕様が含まれます。 詳細については、「[コンピューターの種類へのアクセスを制限する](/ja/codespaces/managing-codespaces-for-your-organization/restricting-access-to-machine-types)」および「[codespace コンピューターに対して最小仕様を設定する](/ja/codespaces/setting-up-your-project-for-codespaces/configuring-dev-containers/setting-a-minimum-specification-for-codespace-machines)」を参照してください。

     3. ```
         **[Create codespace](codespace の作成)** をクリックします。
        ```

## 推奨されるシークレット

codespace を作成するとき、ユーザー定義のシークレットの名前が詳細オプションのページに表示されることがあります。 ユーザーが選んだ開発コンテナー構成に推奨シークレットが指定されている場合、表示されます。 詳しくは、「[リポジトリに推奨シークレットを指定する](/ja/codespaces/setting-up-your-project-for-codespaces/configuring-dev-containers/specifying-recommended-secrets-for-a-repository)」をご覧ください。

<img src="/assets/images/help/codespaces/recommended-secrets.png" style="max-height:50rem" alt='Screenshot of the "Create codespace" page with four recommended secrets highlighted with a dark orange outline.' />

これらの開発環境シークレット値の入力を求められたら、入力することが推奨されています。プロジェクトでこれらのシークレットの値が必要になる可能性が高いためです。 ただし、codespace の作成には必須ではありません。 必要に応じて、codespace 内でこのシークレットを設定できます。

推奨シークレットの値を入力すると、そのシークレットが新しい codespace で使用できるようになります。
**\[codespace の作成]** をクリックすると、Codespaces の個人設定にもシークレットが追加されます。そのため、今後、このリポジトリで codespace を作成するとき、シークレット値を入力する必要がありません。

あるシークレットの名前が表示されているが、チェックボックスにチェックが入らず、入力用のボックスもない場合、それは、Codespaces の個人設定でその名前のシークレットを既に構成し、このリポジトリに関連付けているためです。 この名前のシークレットを作成したが、このリポジトリに関連付けていない場合、チェックボックスにチェックが入ります。チェックを入れることで、設定を更新し、関連付けを追加できます。

前に選んだシークレットの値は、[github.com/settings/codespaces](https://github.com/settings/codespaces) で、Codespaces の個人設定から変えられます。 詳しくは、「[GitHub Codespaces のアカウント固有のシークレットの管理](/ja/codespaces/managing-your-codespaces/managing-your-account-specific-secrets-for-github-codespaces)」をご覧ください。

</div>

<div class="ghd-tool vscode">

GitHub のアカウントを GitHub Codespaces 拡張機能に接続したら、新しい codespace を作成することができます。 GitHub Codespaces 拡張機能の詳しい情報については、[VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces) に関するページを参照してください。

1. VS Code のアクティビティ バーで、\[リモート エクスプローラー] アイコンをクリックします。

   ![アクティビティ バーのスクリーンショット。 \[リモート エクスプローラー\] サイド バーのアイコン (四角形の上に円が重なっている) がオレンジ色の枠線で強調表示されています。](/assets/images/help/codespaces/click-remote-explorer-icon-vscode.png)

   > \[!NOTE]
   > リモート エクスプローラーがアクティビティ バーに表示されない場合:
   >
   > 1. コマンド パレットにアクセスします。 たとえば、<kbd>Shift</kbd> + <kbd>Command</kbd> + <kbd>P</kbd> (Mac) / <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> (Windows/Linux) を押します。
   > 2. 次のコマンドを入力します: `details`
   > 3. **\[コードスペース: 詳細]** をクリックします。

2. \[リモート エクスプローラー] サイド バーの上にマウス ポインターを合わせ、\[<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-plus" aria-label="The plus icon" role="img"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z"></path></svg>] をクリックします。

   ![GitHub Codespaces の \[リモート エクスプローラー\] サイド バーのスクリーンショット。 プラス記号ボタンの横に \[新しい codespace の作成\] というヒントが表示されています。](/assets/images/help/codespaces/create-codespace-vscode.png)

3. テキスト ボックスに開発を行うリポジトリの名前を入力し、それを選択します。

   ![テキスト ボックスに入力された「octo-org/he」と、この文字列で始まる 4 つのリポジトリの一覧のスクリーンショット。](/assets/images/help/codespaces/choose-repository-vscode.png)

   後続のプロンプトの右側に、codespace の料金を支払うユーザーを示すメッセージが表示されます。

   ![ブランチのプロンプトのスクリーンショット。"hubwriter によって支払われた使用量" というメッセージが表示されています。](/assets/images/help/codespaces/who-will-pay-vscode.png)

4. 開発するブランチをクリックします。

5. 開発コンテナー構成ファイルの選択を求められたら、一覧からファイルを選びます。

6. 使用するマシンの種類をクリックします。

   > \[!NOTE]
   > 使用可能なマシンは、数多くの要因によって、選択の幅が制限されます。 これには、Organization に対して構成されているポリシーや、リポジトリでの最低限の種類のマシン仕様が含まれます。 詳細については、「[コンピューターの種類へのアクセスを制限する](/ja/codespaces/managing-codespaces-for-your-organization/restricting-access-to-machine-types)」および「[codespace コンピューターに対して最小仕様を設定する](/ja/codespaces/setting-up-your-project-for-codespaces/configuring-dev-containers/setting-a-minimum-specification-for-codespace-machines)」を参照してください。

</div>

<div class="ghd-tool cli">

> \[!NOTE]
> GitHub CLI の詳細については、「[GitHub CLI について](/ja/github-cli/github-cli/about-github-cli)」を参照してください。

新しい codespace を作成するには、`gh codespace create` サブコマンドを使用します。

```shell
gh codespace create
```

リポジトリの選択を求められます。 codespace の料金を支払うユーザーを示すメッセージが表示されています。 その場合、ブランチ、開発コンテナー構成ファイル (複数ある場合)、コンピューターの種類 (複数ある場合) を選ぶように求められます。

または、フラグを使用して、次に示すオプションの一部またはすべてを特定することもできます。

```shell
gh codespace create -r OWNER/REPO -b BRANCH --devcontainer-path PATH -m MACHINE-TYPE
```

この例の `owner/repo` をリポジトリ識別子に置き換えます。
`branch` を codespace で最初にチェックアウトするブランチの名前、またはコミットの完全な SHA ハッシュに置き換えます。
`-r` フラグなしで `b` フラグを使用する場合、codespace は既定のブランチから作成されます。

新しいコードスペースで使用する開発コンテナー構成ファイルへのパスに `path` を置き換えます。 このフラグを省略し、複数の開発コンテナー ファイルを使用できる場合は、リストから 1 つを選ぶダイアログが表示されます。 開発コンテナーの構成ファイルについて詳しくは、「[開発コンテナーの概要](/ja/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers)」をご覧ください。

```
          `machine-type` を使用可能なマシンの種類の有効な識別子に置き換えます。 識別子は、`basicLinux32gb` や `standardLinux32gb` のような文字列です。 使用可能なマシンの種類は、リポジトリ、個人用アカウント、場所によって異なります。 無効または使用できないマシンの種類を入力すると、使用可能な種類がエラー メッセージに表示されます。 このフラグを省略し、複数のマシンの種類を使用できる場合は、リストから 1 つを選択するダイアログが表示されます。
```

このコマンドのオプションについて詳しくは、[GitHub CLI マニュアル](https://cli.github.com/manual/gh_codespace_create)を参照してください。

</div>

## 参考資料

* [既存の codespace を開く](/ja/codespaces/developing-in-a-codespace/opening-an-existing-codespace)
* [codespace の迅速な作成と再開を容易にする](/ja/codespaces/setting-up-your-project-for-codespaces/setting-up-your-repository/facilitating-quick-creation-and-resumption-of-codespaces)
* [Codespaces 組織用 REST API エンドポイント](/ja/rest/codespaces/organizations)