VS Code用GitLab Workflow拡張機能のトラブルシューティング
GitLab Workflow拡張機能(VS Code用)で問題が発生した場合、または機能リクエストがある場合は、以下をお試しください:
- 既知のイシューと解決策については、拡張機能のドキュメントを確認してください。
- バグの報告や機能のリクエストは、
gitlab-vscode-extensionイシュートラッカーで行ってください。サポートに必要な情報を提供してください。
VS Code向けGitLab Duoコード提案のトラブルシューティングについては、VS Code向けコード提案のトラブルシューティングを参照してください。
デバッグログを有効にする
VS Code拡張機能とGitLab言語サーバーはどちらも、トラブルシューティングに役立つログファイルを提供します。デバッグログを有効にするには、次の手順に従います:
VS Codeで、上部のバーにあるコード > 設定 > 設定に移動します。
右上隅で、Open Settings (JSON)(設定を開く(JSON))を選択して、
settings.jsonファイルを編集します。この行を追加するか、すでに存在する場合は編集します:
"gitlab.debug": true,変更を保存します。
ログファイルを表示する
VS Code拡張機能またはGitLab言語サーバーからデバッグログを表示するには:
- コマンド
GitLab: Show Extension Logsを使用して、出力パネルを表示します。 - 出力パネルの右上隅にあるドロップダウンリストから、GitLab Workflow(GitLab Workflow)またはGitLab Language Server(GitLab言語サーバー)のいずれかを選択します。
エラー: プロキシを使用した407 Access Deniedの失敗
認証済みプロキシを使用している場合は、407 Access Denied (authentication_failed)のようなエラーが発生する可能性があります:
Request failed: Can't add GitLab account for https://gitlab.com. Check your instance URL and network connection.
Fetching resource from https://gitlab.com/api/v4/personal_access_tokens/self failedGitLab言語サーバーのプロキシ認証を有効にする必要があります。
自己署名証明書の設定
自己署名認証局を使用してGitLabインスタンスに接続するには、これらの設定を使用して設定します。GitLabチームはパブリック認証局を使用しているため、これらの設定はコミュニティのコントリビュートです。どのフィールドも必須ではありません。
前提要件:
- VS Codeで
http.proxy設定を使用していません。詳細については、issue 314を参照してください。
| 設定名 | デフォルト | 情報 |
|---|---|---|
gitlab.ca | null | 非推奨。自己署名認証局を設定する方法の詳細については、SSL設定ガイドを参照してください。 |
gitlab.cert | null | サポートされていません。エピック6244を参照してください。GitLab Self-Managedでカスタム証明書またはキーペアが必要な場合は、証明書ファイルを指すようにこのオプションを設定します。gitlab.certKeyを参照してください。 |
gitlab.certKey | null | サポートされていません。エピック6244を参照してください。GitLab Self-Managedでカスタム証明書またはキーペアが必要な場合は、証明書キーファイルを指すようにこのオプションを設定します。gitlab.certを参照してください。 |
gitlab.ignoreCertificateErrors | いいえ | サポートされていません。エピック6244を参照してください。SSL証明書なしでGitLab Self-Managedを使用する場合、または拡張機能の使用を妨げる証明書の問題がある場合は、このオプションをtrueに設定して証明書エラーを無視します。 |
SSL証明書の期限切れ
場合によっては、証明書が誤って期限切れとして分類されることがあります。これにより、エラーAPI request failed - Error: certificate has expiredが発生する可能性があります。この問題が発生した場合は、システム証明書のVS Codeサポートを無効にできます。
システム証明書を無効にするには:
- VS Codeで、上部のバーにあるコード > 設定 > 設定に移動します。
- ユーザー設定タブで、Application(アプリケーション) > Proxy(プロキシ)を選択します。
- Proxy Strict SSL(プロキシ厳密SSL)とSystem Certificates(システム証明書)の設定を無効にします。
HTTPSプロジェクトのクローン作成は機能するが、SSHのクローン作成は失敗する
この問題は、SSH URLのホストまたはパスがHTTPSパスと異なる場合にVS Codeで発生します。GitLab Workflow拡張機能では、以下を使用します:
- 設定したアカウントと一致するホスト。
- ネームスペースとプロジェクト名を取得するパス。
たとえば、VS Code拡張機能のURLは次のとおりです:
- SSH:
git@gitlab.com:gitlab-org/gitlab-vscode-extension.git - HTTPS:
https://gitlab.com/gitlab-org/gitlab-vscode-extension.git
どちらもgitlab.comとgitlab-org/gitlab-vscode-extensionのパスを持ちます。
この問題を解決するには、SSH URLが別のホスト上にあるかどうか、またはパスに追加のセグメントがあるかどうかを確認してください。どちらかが当てはまる場合は、GitリポジトリをGitLabプロジェクトに手動で割り当てできます:
- VS Codeの左側のサイドバーで、GitLab Workflow(GitLab Workflow)( )を選択します。
(no GitLab project)とマークされたプロジェクトを選択し、Manually assign GitLab project(GitLabプロジェクトを手動で割り当て)を選択します:
- リストから正しいプロジェクトを選択します。
このプロセスを簡素化する方法の詳細については、gitlab-vscode-extensionプロジェクトのイシュー577を参照してください。
既知のイシュー: リモート環境でGitLab Duoチャットが初期化に失敗する
リモート開発環境(ブラウザベースのVS CodeやリモートSSH接続など)でGitLab Duoチャットを使用すると、次のような初期化の失敗が発生する可能性があります:
- 空白またはロードされないチャットパネル。
- ログファイルのエラー:
The webview didn't initialize in 10000ms。 - 拡張機能がアクセスできないローカルURLに接続しようとしています。
これらの問題を解決するには:
VS Codeで、上部のバーにあるコード > 設定 > 設定に移動します。
右上隅で、Open Settings (JSON)(設定を開く(JSON))を選択して、
settings.jsonファイルを編集します。- または、F1キーを押し、**環境設定を入力します: 設定を開く(JSON)**を選択します。
この設定を追加または変更します:
"gitlab.featureFlags.languageServerWebviews": false変更を保存して、VS Codeをリロードします。
恒久的な解決策の更新については、イシュー #1944とイシュー #1943を参照してください
エラー: can't access the OS Keychain
このようなエラーメッセージは、macOSとUbuntuの両方で発生する可能性があります:
GitLab Workflow can't access the OS Keychain.
If you use Ubuntu, see this existing issue.Error: Cannot get password
at I.$getPassword (vscode-file://vscode-app/snap/code/97/usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js:1712:49592)これらのエラーの詳細については、以下を参照してください:
macOS回避策
macOSの回避策が存在します:
- マシンで、Keychain Access(キーチェーンアクセス)を開き、
vscodegitlab.gitlab-workflowを検索します。 - キーチェーンから
vscodegitlab.gitlab-workflowを削除します。 GitLab: Remove Account from VS Codeコマンドを使用して、破損したアカウントをVS Codeから削除します。- アカウントを再度追加するには、
Gitlab: Add Account to VS CodeまたはGitLab: Authenticate to GitLab.comを実行します。
Ubuntu回避策
Ubuntu 20.04および22.04でsnapを使用してVS Codeをインストールすると、VS CodeはOSキーチェーンからパスワードを読み取ることができません。拡張機能バージョン3.44.0以降では、安全なトークンストレージにOSキーチェーンを使用します。VS Codeのバージョン1.68.0より前のバージョンを使用するUbuntuユーザーには、回避策が存在します:
- GitLab Workflow拡張機能をバージョン3.43.1にダウングレードできます。
snapではなく、.debパッケージからVS Codeをインストールできます:snapVS Codeをアンインストールします。.debパッケージからVS Codeをインストールします。- UbuntuのPassword & Keys(パスワードとキー)に移動し、
vscodegitlab.workflow/gitlab-tokensエントリを見つけて削除します。 - VS Codeで、
Gitlab: Remove Your Accountを実行して、認証情報がないアカウントを削除します。 - アカウントを再度追加するには、
GitLab: Authenticateを実行します。
VS Codeバージョン1.68.0以降を使用している場合、再インストールはできない可能性があります。ただし、最後の3つの手順を実行して再度認証することができます。
環境変数でトークンを設定する
Gitpodコンテナなど、VS Codeストレージを頻繁に削除する場合は、VS Codeを起動する前に環境変数を設定します。VS Code環境変数でトークンを設定すると、VS Codeストレージを削除するたびにパーソナルアクセストークンを設定する必要はありません。これらの変数を設定します:
GITLAB_WORKFLOW_INSTANCE_URL:https://gitlab.comのようなGitLabインスタンスのURL。GITLAB_WORKFLOW_TOKEN: GitLabで認証するときに作成したパーソナルアクセストークン。
環境変数で設定されたトークンは、拡張機能で同じGitLabインスタンスのトークンを設定するとオーバーライドされます。
GDKの使用時の接続と認可のエラー
VS CodeをGDKで使用する場合、localhostで実行されているGitLabインスタンスへの安全なTLS接続をシステムが確立できないというエラーが発生する可能性があります。
たとえば、GitLabサーバーとして127.0.0.1:3000を使用している場合:
Request to https://127.0.0.1:3000/api/v4/version failed, reason: Client network
socket disconnected before secure TLS connection was establishedこの問題は、httpでGDKを実行していて、GitLabインスタンスがhttpsでホストされている場合に発生します。
これを解決するには、GitLab: Authenticateコマンドを実行するときに、インスタンスのhttp URLを手動で入力します。
サポートに必要な情報
サポートに問い合わせる前に、最新のGitLab Workflow拡張機能がインストールされていることを確認してください。すべてのリリースは、VS Code MarketplaceのVersion History(バージョン履歴)タブにあります。
影響を受けるユーザーからこの情報を収集し、バグレポートで提供してください:
- ユーザーに表示されるエラーメッセージ。
- ワークフローと言語サーバーのログファイル:
- デバッグログを有効にする。
- 拡張機能と言語サーバーのログファイルを取得する。
- 診断出力。
- コマンド+Shift+PまたはControl+Shift+Pを使用してコマンドパレットを開きます
- コマンド
GitLab: Diagnosticsを実行し、拡張機能のバージョンをメモします。
- システム詳細:
- VS Codeで、コード > About Visual Studio Code(Visual Studio Codeについて)に移動し、OSを見つけます。
- マシンの仕様(CPU、RAM): マシンからこれらを提供します。これらはWeb IDEではアクセスできません。
- 影響のスコープを記述します。影響を受けるユーザーの数は?
- エラーの再現方法を説明します。可能であれば、画面録画を含めます。
- 他のGitLab Duo機能がどのように影響を受けているかを記述します:
- GitLabクイックチャットは機能していますか?
- コード提案は機能していますか?
- Web IDE Duoチャットは応答を返しますか?
- GitLab Workflow拡張機能分離ガイドの説明に従って、拡張機能の分離テストを実行します。他のすべての拡張機能を無効にする(またはアンインストールする)ことを試して、別の拡張機能が問題の原因になっているかどうかを判断します。これにより、問題が当社の拡張機能にあるのか、外部ソースからのものなのかを判断できます。