Skip to main content

GitHub CLI で GitHub Codespaces を使用する

GitHub コマンド ライン インターフェイスの gh を使うと、コマンド ラインから直接 GitHub Codespaces を操作できます。

GitHub CLI について

GitHub CLI は、コンピューターのコマンド ラインから GitHub を使用するためのオープン ソース ツールです。 コマンドラインから作業しているときは、GitHub CLI を使用して時間を節約し、コンテキストの切り替えを回避できます。 詳しくは、「GitHub CLI について」をご覧ください。

GitHub CLI 内の GitHub Codespaces を操作すると、次のことができます。

GitHub CLI のインストール

GitHub CLI のインストール手順については、GitHub CLI リポジトリを参照してください。

GitHub CLI の使用

まだの場合は、GitHub アカウントで gh auth login を実行して認証を行います。

gh を GitHub Codespaces の操作に使用するには、gh codespace SUBCOMMAND またはそのエイリアス gh cs SUBCOMMAND を入力します。

GitHub Codespaces を操作するために使用できる一連のコマンドの例として、次の操作を行うことができます。

  • 現在の codespaces を一覧表示して、特定のリポジトリの codespace があるかどうかを確認します。
    gh codespace list
  • 必要なリポジトリ ブランチの新しい codespace を作成します。
    gh codespace create -r github/docs -b main
  • 新しい codespace に SSH 接続します。
    gh codespace ssh -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq
  • ローカル コンピューターにポートを転送します。
    gh codespace ports forward 8000:8000 -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq

GitHub Codespaces 用の gh コマンド

以下のセクションでは、使用可能な各操作のコマンドの例を示します。

各コマンドで使用可能なすべてのオプションの詳細を含む GitHub Codespaces の gh コマンドの完全なリファレンスについては、「gh codespace」の GitHub CLI オンライン ヘルプを参照してください。 または、コマンド ラインで gh codespace --help (一般的なヘルプ) または gh codespace SUBCOMMAND --help (特定のサブコマンドのヘルプ) を使用できます。

: 多数のコマンドで使用される -c CODESPACE_NAME フラグは省略可能です。 省略すると、選択できる codespaces の一覧が表示されます。

すべての codespaces を一覧表示する

gh codespace list

リストには、他の gh codespace コマンドで使用できる各 codespace の一意の名前が含まれています。

codespace のブランチ名の末尾にあるアスタリスクは、その codespace にコミットされていない、またはプッシュされていない変更があることを示します。

新しい codespace を作成する

gh codespace create -r OWNER/REPO_NAME [-b BRANCH]

詳しくは、「リポジトリの codespace を作成する」を参照してください。

codespace の詳細を表示する

gh codespace view

このコマンドを実行すると、既存の codespace のいずれかを選択するように求められます。 その後、次の情報が表示されます。

  • codespace の名称
  • 状態 ("使用可能" や "シャットダウン" など)
  • リポジトリ
  • Git の状態
  • codespace の作成に使用される開発コンテナー構成ファイルへのパス
  • マシンの種類
  • アイドル タイムアウト
  • codespace が作成された日時
  • 保持期間

詳細については、GitHub CLI リファレンスに関するページを参照してください。

codespace を停止する

gh codespace stop -c CODESPACE-NAME

詳しくは、「GitHub Codespaces の詳細」を参照してください。

codespace を削除する

gh codespace delete -c CODESPACE-NAME

詳しくは、「codespace を削除する」を参照してください。

codespace の名前を変更する

gh codespace edit -c CODESPACE-NAME -d 'DISPLAY-NAME'

詳しくは、「codespace の名前を変更する」を参照してください。

codespace をリビルドする

gh codespace rebuild

完全なリビルドを実行するには、このコマンドの最後に --full を追加します。 詳しくは、「codespace でのコンテナーのリビルド」を参照してください。

このコマンドを使用して codespace をリビルドすると、codespace のシステムに現在保存されている devcontainer.json ファイルが使用されます。 ファイルの現在の状態がソース管理に保存されているかどうかに関係なく、そのようになります。 詳しくは、「開発コンテナーの概要」を参照してください。

codespace に SSH 接続する

リモート codespace コンピューターでコマンドを実行するには、ターミナルから codespace に SSH 接続できます。

gh codespace ssh -c CODESPACE-NAME

: 接続する codespace では、SSH サーバーを実行している必要があります。 既定の開発コンテナー イメージには、自動的に開始される SSH サーバーが含まれています。 codespaces が既定のイメージから作成されていない場合は、devcontainer.json ファイル内の features オブジェクトに次を追加することで、SSH サーバーをインストールして起動できます。

"features": {
    // ...
    "ghcr.io/devcontainers/features/sshd:1": {
        "version": "latest"
    },
    // ...
}


devcontainer.json ファイルと既定のコンテナー イメージについて詳しくは、「開発コンテナーの概要」をご覧ください。

GitHub Codespaces では、シームレスな認証エクスペリエンスを提供するためにローカル SSH キーを自動的に作成します。 SSH 暗号化を使用した接続について詳しくは、「gh codespace ssh」を参照してください。

Visual Studio Code

で codespace を開く

gh codespace code -c CODESPACE-NAME

ローカル コンピューターに VS Code がインストールされている必要があります。 詳しくは、「Visual Studio Code で GitHub Codespaces を使用する」を参照してください。

JupyterLab で codespace を開く

gh codespace jupyter -c CODESPACE-NAME

JupyterLab アプリケーションは、開いている codespace にインストールされている必要があります。 既定の開発コンテナー イメージには JupyterLab が含まれているため、既定のイメージから作成された codespace には常に JupyterLab がインストールされます。 既定のイメージの詳細については、「開発コンテナーの概要」と devcontainers/images リポジトリを参照してください。 開発コンテナー構成で既定のイメージを使用していない場合は、devcontainer.json ファイルに ghcr.io/devcontainers/features/python 機能を追加して JupyterLab をインストールできます。 オプション "installJupyterlab": trueを含める必要があります。 詳細については、devcontainers/features リポジトリの python 機能の README を参照してください。

codespace 間でのファイルのコピー

gh codespace cp [-r] SOURCE(S) DESTINATION

ファイル名またはディレクトリ名のプレフィックス remote: を使用して、codespace 上にあることを示します。 UNIX cp コマンドと同様に、最初の引数はコピー元を指定し、最後の引数はコピー先を指定します。 コピー先がディレクトリの場合は、複数のコピー元を指定できます。 いずれかのコピー元がディレクトリの場合は、-r (再帰) フラグを使用します。

codespace 上のファイルとディレクトリの場所は、リモート ユーザーのホーム ディレクトリに対して相対的です。

  • ローカル コンピューターから codespace の $HOME ディレクトリにファイルをコピーします。

    gh codespace cp myfile.txt remote:

  • codespace でリポジトリがチェックアウトされているディレクトリにファイルをコピーします。

    gh codespace cp myfile.txt remote:/workspaces/REPOSITORY-NAME

  • codespace からローカル コンピューター上の現在のディレクトリにファイルをコピーします。

    gh codespace cp remote:myfile.txt .

  • 次の 3 つのローカル ファイルを codespace の $HOME/temp ディレクトリにコピーします。

    gh codespace cp a1.txt a2.txt a3.txt remote:temp

  • codespace からローカル コンピューター上の現在の作業ディレクトリに次の 3 つのファイルをコピーします。

    gh codespace cp remote:a1.txt remote:a2.txt remote:a3.txt .

  • 次のローカル ディレクトリを codespace の $HOME ディレクトリにコピーします。

    gh codespace cp -r mydir remote:

  • codespace からローカル コンピューターにディレクトリをコピーし、ディレクトリ名を変更します。

    gh codespace cp -r remote:mydir mydir-localcopy

使用できる追加フラグなど、gh codespace cp コマンドの詳細については、GitHub CLI マニュアルを参照してください。

codespace 内のポートの変更

codespace 上のポートをローカル ポートに転送できます。 プロセスが実行されている限り、ポートは転送されたままです。 ポートの転送を停止するには、Control+C キーを押します。

gh codespace ports forward CODESPACE-PORT_NAME:LOCAL-PORT-NAME -c CODESPACE-NAME

転送されたポートの詳細を表示するには、gh codespace ports を入力して codespace を選択します。

転送されたポートの可視性を設定できます。 3 種類の可視性の設定があります。

  • private - 自分にのみ表示されます。 これはポートを転送するときの既定の設定です。
  • org - リポジトリを所有する組織のメンバーに表示されます。
  • public - URL とポート番号を知っているすべてのユーザーに表示されます。
gh codespace ports visibility CODESPACE-PORT:private|org|public -c CODESPACE-NAME

1 つのコマンドを使用して、複数のポートの可視性を設定できます。 次に例を示します。

gh codespace ports visibility 80:private 3000:public 3306:org -c CODESPACE-NAME

詳しくは、「codespace でのポートの転送」を参照してください。

codespace ログにアクセスする

codespace の作成ログを確認できます。 このコマンドを入力すると、SSH キーのパスフレーズを入力するように求められます。

gh codespace logs -c CODESPACE-NAME

作成ログについて詳しくは、「GitHub Codespaces ログ」をご覧ください。

リモート リソースにアクセスする

GitHub CLI 拡張機能を使用すると、codespace とご自分のローカル コンピューターの間にブリッジを作成し、コンピューターからアクセスできるあらゆるリモート リソースに codespace がアクセスできるようにすることができます。 拡張機能の使用方法について詳しくは、GitHub CLI を使用してリモート リソースにアクセスする方法に関するページを参照してください。

注: GitHub CLI 拡張機能は現在ベータ段階であり、変更されることがあります。

codespace のマシンの種類を変更する

gh codespace edit -m MACHINE-TYPE-NAME

詳しくは、「codespace のマシンの種類を変更する」の「GitHub CLI」タブをご覧ください。