GitHub Codespaces
GitHub Codespaces は、長期的なプロジェクトであろうと、プルリクエストのレビューのような短期的なタスクであろうと、あらゆるアクティビティに対応するクラウドベースの開発環境を提供します。これらの環境は、Visual Studio Code またはブラウザベースのエディターから利用できます。
環境
環境は、GitHub Codespaces の「バックエンド」の半分です。コンパイル、デバッグ、復元など、ソフトウェア開発に関連するすべての計算処理がここで行われます。新しいプロジェクトに取り組む必要がある場合、新しいタスクに取り組む場合、または PR をレビューする場合、クラウドホスト型の環境を簡単に立ち上げることができ、GitHub Codespaces が適切に構成します。ソースコード、ランタイム、コンパイラー、デバッガー、エディター、カスタムドットファイル構成、関連するエディター拡張機能など、プロジェクトに取り組むために必要なすべてを自動的に構成します。
カスタマイズ
GitHub Codespaces は、プロジェクトごとに完全にカスタマイズ可能です。これは、VS Code Dev Containers 開発と同様に、プロジェクトのリポジトリに devcontainer.json
ファイルを含めることで実現します。
カスタマイズの例を以下に示します。
- 使用する Linux ベースのオペレーティングシステムを設定します。
- さまざまなツール、ランタイム、フレームワークを自動的にインストールします。
- 一般的に使用されるポートを転送します。
- 環境変数を設定します。
- エディターの設定を構成し、推奨される拡張機能をインストールします。
codespace 固有の devcontainer.json
設定については、Codespaces の構成 ドキュメントを参照してください。
ユーザー構成ごとのドットファイル
ドットファイルとは、ファイル名がドット (.) で始まるファイルのことです。通常、アプリケーションの構成情報が含まれており、ターミナル、エディター、ソース管理、およびその他のさまざまなツールの動作を制御できます。.bashrc
、.gitignore
、および .editorconfig
は、開発者が一般的に使用するドットファイルの例です。
Codespace の作成時に、ドットファイルを含む GitHub リポジトリ、ファイルのターゲットロケーション、およびインストールコマンドを指定できます。
ドットファイル構成を codespace に追加する方法については、Codespaces のパーソナライズ ドキュメントを参照してください。
はじめに
GitHub Codespaces クライアントの両方について、入門トピックがあります。これらは、GitHub Codespaces へのサインイン、最初の codespace の作成、およびお好みのクライアントでの接続を迅速に進めることができます。
- VS Code の Codespaces - GitHub Codespaces 拡張機能を使用して、環境に接続して作業します。
- ブラウザの Codespaces - ブラウザベースのエディターを介して codespace に接続します。
拡張機能の作成者
VS Code 拡張機能 API は、リモートで実行する実装の詳細のほとんどを隠蔽しているため、多くの拡張機能は GitHub Codespaces 環境で修正なしで動作します。ただし、すべての機能が期待どおりに動作することを確認するために、codespace で拡張機能をテストすることをお勧めします。詳細については、リモート開発と GitHub Codespaces のサポート に関する記事を参照してください。
ブラウザベースのエディター
また、ブラウザ内で完全に無料の軽量な Visual Studio Code エクスペリエンスを利用できます。Web ベースのエディターを使用すると、GitHub からソースコードリポジトリを安全かつ迅速に参照し、軽量なコード変更を行うことができます。エディターで任意のリポジトリ、フォーク、またはプルリクエストを開くことができ、検索や構文の強調表示など、VS Code の多くの機能があります。コードを実行またはデバッグする場合は、クラウドホスト型の環境または VS Code デスクトップに切り替えることができます。
このブラウザベースのエディターにアクセスするには、github.com でリポジトリに移動し、. (ピリオドキー) を押すか、リポジトリの URL を github.dev/org/repo
に変更して、github.com
を github.dev
に置き換えます。
制限事項: ブラウザを Incognito モードで実行している場合、または広告ブロッカーが有効になっている場合は、Web ベースのエディターを使用できない場合があります。
注: このエディターは現在テクニカルプレビュー中です。今日お試しいただき、https://github.co/browser-editor-feedback でフィードバックを提供してください。
既知の制限事項と対応
Codespaces、特に Web 版 VS Code を操作する場合、留意すべき特定の制限事項があります。これらの制限事項の一部には、一貫した開発エクスペリエンスを提供するための回避策または対応策が用意されています。
いくつかの問題 (特にキーボードショートカットやデスクトップの回避策がリストされているもの) については、Codespace を プログレッシブ Web アプリケーション (PWA) としてインストールして使用できます。
問題 | 理由 | 回避策 |
---|---|---|
Ctrl+Shift+P は Firefox でコマンドパレットを起動しません。 | Ctrl+Shift+P は Firefox で予約されています。 | コマンドパレットを起動するには F1 を使用します。 |
特定のデフォルトキーボードショートカット (デバッグ用) は Web で異なります。 | ブラウザがそれらのキーボードショートカットにアクションを既に登録している可能性があるため、Web 版 VS Code のデフォルトを調整します。 | 調整されたデフォルトを使用します。これらは、デバッグアクションの上にマウスカーソルを合わせるとツールチップに表示されます。
|
Web またはデスクトップの macOS では、デバッグ用の F11 は機能しません。 | これは、ブラウザ固有ではない既知の制限事項です。詳細については、issue #5102 を参照してください。 | macOS でデスクトップを表示するために F11 を無効にします。
|
Web では、新しいファイル用の Ctrl+N が機能しません。 | Ctrl+N は代わりに新しいウィンドウを開きます。 | 新しいファイル用の Ctrl+N はデスクトップで機能します。 |
Web では、エディターを閉じるための Ctrl+W が機能しません。 | Ctrl+W はブラウザで現在のタブを閉じます。 | Ctrl+W はデスクトップで機能します。 |
Ctrl+Shift+B はブラウザでお気に入りバーを切り替えません。 | Codespaces はこれをオーバーライドし、コマンドパレットの「ビルド」メニューにリダイレクトします。 | 現在のところ回避策はありません。 |
VS Code から Codespace (およびその逆) へのファイルのドラッグアンドドロップは機能しません。 | 詳細については、issue #115535 を参照してください。 | いくつかのオプションがあります
|
Angular アプリのデバッグは Web でサポートされていません。 | ブラウザで実行されているコードは、セキュリティ上の理由から、デバッグモードで別のブラウザインスタンスを起動できません。 | いくつかのオプションがあります
|
拡張子のないファイルをブラウザからダウンロードすると、自動的に ".txt" が追加されます | これは、Chrome と Edge の動作です。 | コンテキストと将来の潜在的な解決策については、issue #118436 を参照してください。 |
リモート (Codespaces を含む) からファイルをダウンロードすると、実行可能ビットなどの属性が削除されます。 | コンテキストと将来の潜在的な解決策については、issue #112099 を参照してください。 | 現在のところ回避策はありません。 |
Codespace から特定のフォルダーをダウンロードしようとすると、「Your_codespace_name はシステムファイルが含まれているため、このフォルダーを開けません」というプロンプトが表示される場合があります。 |
ユーザーエージェントは、機密ディレクトリに対する制限のレベルを自由に課すことができます。詳細については、この仕様 と Chromium のブロックリスト を参照してください。 | 仕様とブロックリスト以外に追加の回避策はありません。 |
http://localhost:forwarded_port に手動でアクセスしても、Web の Codespace から転送されたポートにアクセスできません。 |
これは、Codespaces がポートフォワーディングを処理し、Web 用の正しい URL を生成する方法に基づいています。 | ポートフォワーディング通知のリンクをクリックしてアプリを開くか、ポートビュー の地球アイコンをクリックします。どちらも適切に生成されたリンクを提供します。詳細については、Codespaces ドキュメント を参照してください。 |
一部の拡張機能は Web で動作が異なります
拡張機能 | 問題 / 理由 | 回避策 |
---|---|---|
Git Graph など、ブラウザショートカットと重複するキーボードショートカットを持つ拡張機能。これは、Ctrl+R を使用して更新します。 | キーボードショートカットが既存のブラウザショートカットと重複する可能性があります。たとえば、Ctrl+R は Safari でウィンドウを更新します。 | キーボードショートカットを最大限に活用するには、Web ベースではなくデスクトップベースの Codespace を使用できます。ブラウザによって動作が異なる場合もあります (Chrome で Git Graph を更新できます)。 |
Visual Studio Code 用日本語 Language Pack などの言語パック | 言語パック拡張機能は、現在 Web ベースの Codespaces でサポートされていません。 | 言語パックを使用して表示言語を構成するには、デスクトップベースの Codespace を使用できます。 |
Bracket Pair Colorizer 2 | インストール場所の依存関係が簡単に修正できないため、ブラウザでは動作しません。 | Bracket Pair Colorizer を使用してください。 |
Debugger for Firefox などのブラウザデバッガー。 | UI/デスクトップ拡張機能ホストを必要とする拡張機能は、ブラウザではロードされません。 | これらの拡張機能はローカル VS Code で使用できます (Codespaces に接続されていません)。または、アプリが Codespace から実行されている間は、Chrome DevTools などの代替手段を使用して要素を検査し、ブレークポイントを設定できます。 |
ブラウザで開く など、ブラウザを開くための拡張機能。 | UI/デスクトップ拡張機能ホストを必要とする拡張機能は、ブラウザではロードされません。 | 可能な場合は、Live Server などの代替拡張機能を使用してください。 |
Project Manager | Project Manager は、カスタム projects.json ファイルの同期に依存していますが、現在サポートされていません。 |
デスクトップ Codespaces またはローカル VS Code で拡張機能を使用してプロジェクトを保存および管理できます。これらのオプションでは、カスタムファイルの同期は必要ありません。 |
Protractor Test Runner や Browser Preview など、Chrome に依存する拡張機能。 | Chrome は Codespace に含まれていません。 | 代替エクスペリエンスを見つけるか、ローカル VS Code (Codespaces に接続されていません) でプロジェクトでこれらの拡張機能を使用できます。 |
Flutter (および Flutter 開発全般) | Flutter ワークフローのいくつかの側面は、Docker コンテナと Codespaces の性質により制限されています。
|
Flutter 開発にはローカル VS Code を使用できます。 |
LaTeX Workshop | 拡張機能は、LaTeX オーサリングを支援するために、1) 一般的なコマンドを表示する一連のビュー、2) PDF プレビューアー、および 3) スニペットや IntelliSense などの言語機能の 3 種類の機能を提供します。拡張機能はかなりフル機能で使用できますが、Web またはセキュリティに関するいくつかの制限事項があります。 | 次の回避策は、ビューおよびプレビューアー機能領域の制限事項に対処します
|
Git Graph | 一部の Git Graph Webview 機能は、Codespaces で制限されている場合があります。たとえば、コミットのファイルと Git Graph Webview を切り替えると、Webview が空白になる場合があります。 | VS Code デスクトップ内で Git Graph を完全に使用できます。 |
他の リモート開発拡張機能 (WSL、Dev Containers、Remote - SSH) は、Codespace にインストールできません。 | Codespace はすでにリモートコンテキストです。 | 別のリモートコンテキスト (たとえば、WSL またはリモート SSH コンピューター) で実行する場合は、(Codespace に接続されていない) VS Code デスクトップを開き、他のリモート拡張機能のいずれかを起動します。カスタム開発コンテナ を使用する場合は、Codespaces と Dev Containers の両方で同じ .devcontainer を使用できます。 |
お気に入りの拡張機能 が動作せず、上記にリストされていません。 | リモートコンテキストで機能が期待どおりに動作しないようにする他のいくつかの問題があります。 | 場合によっては、別のコマンドを使用して問題を回避できますが、場合によっては、拡張機能を変更する必要がある場合があります。一般的なリモートの問題とその解決策のヒントについては、リモート拡張機能のヒント を参照してください。 |
よくある質問
拡張機能がブラウザにインストールできないのはなぜですか
デスクトップで実行する必要がある組み込みの前提条件がある、またはデスクトップで実行する必要がある拡張機能は少数です。例としては、拡張機能がデスクトップ上の VS Code インストールからファイルにアクセスする場合や、拡張機能がデスクトップ環境で実行する必要がある実行可能ファイルに依存する場合などがあります。ブラウザでそのような拡張機能をインストールしようとすると、拡張機能が利用できないことが通知されます。
注意 このような拡張機能は、デスクトップで実行されている VS Code から Codespace に接続する場合でも使用できます。
VS Code が読み取りのためにクリップボードにアクセスすることを許可するにはどうすればよいですか?
場合によっては、VS Code がクリップボードから読み取る際にクリップボードへのアクセス許可を求めることがあります。ブラウザの設定 (「サイトのアクセス許可」を検索) から、または右側のアドレスバーでこのオプションを探して、ブラウザからクリップボードへのアクセスを許可できるはずです
VS Code にクリップボードへのアクセスを許可したら、操作を再試行できます。
VS Code が常に新しいタブとウィンドウを開くことを許可するにはどうすればよいですか?
ブラウザは、セキュリティ対策として、VS Code が新しいタブまたはウィンドウを開くのをブロックすることがあります。これが発生した場合、VS Code はブロックアクションを検出し、ユーザーに明示的にプロンプトを表示します。ただし、ブラウザナビゲーションバーのコンテキストメニューからサイト設定を開き、ポップアップウィンドウ を許可することで、VS Code が常に新しいウィンドウとタブを開くことを許可できます。
ブラウザで VS Code がローカルファイルとフォルダーにアクセスすることを許可するにはどうすればよいですか?
ブラウザから VS Code でローカルファイルとフォルダーを開くには、ブラウザが File System Access API をサポートしている必要があります。今日現在、Microsoft Edge と Google Chrome の両方がこのレベルのサポートを提供しています。ブラウザで VS Code を使用するときにローカルファイルとフォルダーにアクセスする場合は、これら 2 つのブラウザのいずれかに切り替えることを検討してください。
質問またはフィードバック
質問がある場合は、GitHub Codespaces トラブルシューティングガイド を参照してください。フィードバックを提供したい場合は、GitHub Codespaces ディスカッション に問題を投稿してください。