解决 GitLab Workflow for VS Code 的问题
如果您在使用 GitLab Workflow for VS Code 时遇到任何问题,或者有功能请求:
- 查看 扩展文档 了解已知问题和解决方案。
- 在
gitlab-vscode-extension问题跟踪器 中报告错误或请求功能。 提供 支持所需的信息。
有关解决 VS Code for GitLab Duo Code Suggestions 的问题, 请参阅 解决 VS Code 的代码建议问题。
启用调试日志
VS Code 扩展和 GitLab 语言服务器都提供可以帮助您进行故障排除的日志。要启用调试日志记录:
-
在 VS Code 中,在顶部栏,转到 代码 > 设置 > 设置。
-
在右上角,选择 打开设置(JSON) 以编辑您的
settings.json文件。 -
添加此行,如果已存在则编辑它:
"gitlab.debug": true, -
保存您的更改。
查看日志文件
要查看来自 VS Code 扩展或 GitLab 语言服务器的调试日志:
- 使用命令
GitLab: 显示扩展日志来查看输出面板。 - 在输出面板的右上角,从下拉列表中选择 GitLab Workflow 或 GitLab Language Server。
错误:代理出现 407 访问被拒绝 失败
如果您使用经过身份验证的代理,可能会遇到类似 407 访问被拒绝 (authentication_failed) 的错误:
请求失败:无法为 https://gitlab.com 添加 GitLab 账户。请检查您的实例 URL 和网络连接。
从 https://gitlab.com/api/v4/personal_access_tokens/self 获取资源失败您必须为 GitLab 语言服务器 启用代理身份验证。
配置自签名证书
要使用自签名证书连接到您的 GitLab 实例,请使用这些设置进行配置。 这些设置是社区贡献,因为 GitLab 团队使用公共 CA。所有字段都不是必需的。
先决条件:
- 您没有在 VS Code 中使用
http.proxy设置。 有关更多信息,请参阅 问题 314。
| 设置名称 | 默认值 | 信息 |
|---|---|---|
gitlab.ca |
null | 已弃用。有关如何设置自签名 CA 的更多信息,请参阅 SSL 设置指南。 |
gitlab.cert |
null | 不支持。请参阅 史诗 6244。如果 GitLab Self-Managed 需要自定义证书或密钥对,请设置此选项以指向您的证书文件。请参阅 gitlab.certKey。 |
gitlab.certKey |
null | 不支持。请参阅 史诗 6244。如果 GitLab Self-Managed 需要自定义证书或密钥对,请设置此选项以指向您的证书密钥文件。请参阅 gitlab.cert。 |
gitlab.ignoreCertificateErrors |
false | 不支持。请参阅 史诗 6244。如果您使用没有 SSL 证书的 GitLab Self-Managed,或者有证书问题阻止您使用该扩展,请将此选项设置为 true 以忽略证书错误。 |
HTTPS 项目克隆有效但 SSH 克隆失败
当您的 SSH URL 主机或路径与您的 HTTPS 路径不同时,VS Code 中会出现此问题。GitLab Workflow 扩展使用:
- 主机来匹配您设置的账户。
- 路径来获取命名空间和项目名称。
例如,VS Code 扩展的 URL 是:
- SSH:
[email protected]: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 项目:
有关简化此过程的信息,请参阅
gitlab-vscode-extension 项目中的
问题 577。
已知问题:GitLab Duo Chat 在远程环境中无法初始化
在远程开发环境(如基于浏览器的 VS Code 或远程 SSH 连接)中使用 GitLab Duo Chat 时,您可能会遇到初始化失败,例如:
- 空白或未加载的聊天面板。
- 日志中的错误:
The webview didn't initialize in 10000ms。 - 扩展尝试连接到无法访问的本地 URL。
要解决这些问题:
-
在 VS Code 中,在顶部栏,转到 代码 > 设置 > 设置。
-
在右上角,选择 打开设置(JSON) 以编辑您的
settings.json文件。- 或者,按 F1,输入 首选项:打开设置(JSON),然后选择它。
-
添加或修改此设置:
"gitlab.featureFlags.languageServerWebviews": false -
保存您的更改并重新加载 VS Code。
有关永久解决方案的更新,请参阅 问题 #1944 和 问题 #1943
错误:无法访问操作系统密钥链
在 MacOS 和 Ubuntu 上都可能发生如下错误消息:
GitLab Workflow 无法访问操作系统密钥链。
如果您使用 Ubuntu,请参阅此现有问题。错误:无法获取密码
在 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 有一个解决方法:
- 在您的机器上,打开 钥匙串访问 并搜索
vscodegitlab.gitlab-workflow。 - 从您的密钥串中删除
vscodegitlab.gitlab-workflow。 - 使用
GitLab: 从 VS Code 中删除账户命令从 VS Code 中删除损坏的账户。 - 要再次添加账户,运行
Gitlab: 添加账户到 VS Code或GitLab: 认证到 GitLab.com。
Ubuntu 解决方法
当您在 Ubuntu 20.04 和 22.04 中使用 snap 安装 VS Code 时,VS Code 无法从
操作系统密钥链读取密码。扩展版本 3.44.0 及更高版本使用操作系统密钥链进行安全令牌存储。
对于使用早于 1.68.0 版本的 VS Code 的 Ubuntu 用户,有一个解决方法:
- 您可以将 GitLab Workflow 扩展降级到版本 3.43.1。
- 您可以从
.deb包安装 VS Code,而不是snap:- 卸载
snap版本的 VS Code。 - 从
.deb包 安装 VS Code。 - 转到 Ubuntu 的 密码和密钥,找到
vscodegitlab.workflow/gitlab-tokens条目,并删除它。 - 在 VS Code 中,运行
Gitlab: 删除您的账户以删除缺少凭据的账户。 - 要再次添加账户,运行
GitLab: 认证。
- 卸载
如果您使用 VS Code 版本 1.68.0 或更高版本,重新安装可能不可行。但是,您仍然可以运行 最后三个步骤来重新认证。
使用环境变量设置令牌
如果您经常删除 VS Code 存储,例如在 Gitpod 容器中,请在启动 VS Code 之前设置环境变量。 如果您在 VS Code 环境变量 中设置令牌,您就不必在每次删除 VS Code 存储时设置个人访问令牌。设置这些变量:
GITLAB_WORKFLOW_INSTANCE_URL:您的 GitLab 实例 URL,如https://gitlab.com。GITLAB_WORKFLOW_TOKEN:您的个人访问令牌,您在 与 GitLab 认证 时创建的。
如果在扩展中为同一 GitLab 实例配置了令牌,则通过环境变量配置的令牌将被覆盖。
使用 GDK 时的连接和授权错误
当使用 VS Code 和 GDK 时,您可能会收到一个错误,指出您的系统 无法建立到运行在 localhost 上的 GitLab 实例的安全 TLS 连接。
例如,如果您使用 127.0.0.1:3000 作为您的 GitLab 服务器:
请求 https://127.0.0.1:3000/api/v4/version 失败,原因:客户端网络套接字
在建立安全 TLS 连接之前断开连接如果您在 http 上运行 GDK 并且您的 GitLab 实例托管在 https 上,则会出现此问题。
要解决此问题,当您运行 GitLab: 认证 命令时,手动输入实例的 http URL。
支持所需的信息
在联系支持之前,请确保安装了最新的 GitLab Workflow 扩展。所有版本 都在 VS Code Marketplace 的 版本历史 选项卡下。
从受影响的用户收集此信息,并在您的错误报告中提供:
- 显示给用户的错误消息。
- 工作流和语言服务器日志:
- 诊断输出。
- 使用 Command+Shift+P 或 Control+Shift+P 打开命令面板
- 运行命令
GitLab: 诊断,并记下扩展版本。
- 系统详细信息:
- 在 VS Code 中,转到 代码 > 关于 Visual Studio Code 并找到 操作系统。
- 机器规格(CPU、RAM):从您的机器提供这些信息。它们在 IDE 中不可访问。
- 描述影响范围。有多少用户受到影响?
- 描述如何重现错误。如果可能,包括屏幕录像。
- 描述其他 GitLab Duo 功能如何受到影响:
- GitLab Quick Chat 是否正常工作?
- 代码建议是否有效?
- Web IDE Duo Chat 是否返回响应?
- 按照 GitLab Workflow 扩展隔离指南 执行扩展隔离测试。尝试禁用(或卸载)所有其他扩展,以确定另一个扩展是否导致 此问题。这有助于确定问题是出在我们的扩展上,还是来自外部来源。