VS Code 的 GitLab Workflow 扩展
GitLab Workflow 扩展 为 Visual Studio Code 集成了 GitLab Duo 和其他 GitLab 功能,直接集成到您的 IDE 中。它在 VS Code 侧边栏添加了一个 GitLab Workflow 面板,您可以在其中查看 issues、merge requests 和 pipelines,并通过 自定义查询 扩展您的视图。
要开始使用,请安装并配置扩展。
配置完成后,此扩展将您日常使用的 GitLab 功能直接带入 VS Code 环境:
- 查看 issues 和 merge requests。
- 从 Visual Studio Code 命令面板中运行常用命令。
- 创建和审查 merge requests。
- 测试您的 GitLab CI/CD 配置。
- 查看 pipeline 状态 和 job 输出。
- 创建和管理 snippets。
- 浏览仓库 而无需克隆它们。
- 查看安全发现。
- 执行 SAST 扫描。
GitLab Workflow 扩展还通过 AI 辅助功能简化您的 VS Code 工作流:
- GitLab Duo Chat: 直接在 VS Code 中与 AI 助手交互。
- GitLab Duo Code Suggestions: 为您当前代码行提供补全建议,或者编写自然语言代码注释以获得更实质性的建议。
当您在 VS Code 中查看 GitLab 项目时,扩展会显示您当前分支的信息:
- 分支最近的 CI/CD pipeline 状态。
- 指向此分支 merge request 的链接。
- 如果 merge request 包含 issue 关闭模式, 则指向 issue 的链接。
在 VS Code 中切换 GitLab 账户
GitLab Workflow 扩展为每个 VS Code 工作区(窗口)使用一个账户。扩展在以下情况下自动选择账户:
- 您只为扩展添加了一个 GitLab 账户。
- 您 VS Code 窗口中的所有工作区都使用相同的 GitLab 账户,基于
git remote配置。
扩展在状态栏中显示的内容取决于您的账户设置:
- 如果只存在一个 GitLab 账户,状态栏不显示任何信息。
- 如果存在多个 GitLab 账户,且扩展可以确定使用哪个账户, 状态栏会在 tanuki( )图标旁边显示账户名。
- 如果存在多个 GitLab 账户,且扩展无法确定使用哪个账户, 状态栏会显示 多个 GitLab 账户( )。
要为当前 VS Code 窗口选择 GitLab 账户,请选择状态栏项目,或:
- 打开命令面板:
- 对于 macOS,按 Command+Shift+P。
- 对于 Windows 或 Linux,按 Ctrl+Shift+P。
- 运行命令
GitLab: Select Account for this Workspace。 - 从列表中选择您想要的账户。
选择您的 GitLab 项目
当您的 Git 仓库可以关联到多个 GitLab 项目时,扩展无法确定使用哪个账户。当您有多个远程仓库时,可能会发生这种情况,例如:
origin:git@gitlab.com:gitlab-org/gitlab-vscode-extension.gitpersonal-fork:git@gitlab.com:myusername/gitlab-vscode-extension.git
在这些情况下,扩展会添加一个 (多个项目) 标签,提示您必须选择一个账户。
要选择账户:
Issues 和 Merge requests 列表会更新为您所选项目的信息。
更改您的选择
要更改项目选择:
- 在垂直菜单栏上,选择 GitLab Workflow( )以显示扩展侧边栏。
- 展开 Issues 和 Merge Requests 以显示项目列表。
- 右键单击项目名称。
- 选择 清除所选项目。
使用斜杠命令
Issues 和 merge requests 支持 GitLab 斜杠命令 以在 VS Code 中直接执行操作。
创建 snippet
创建 snippet 以存储和与其他用户共享代码和文本片段。 Snippets 可以是选择的内容或整个文件。
要在 VS Code 中创建 snippet:
- 选择您的内容:
- 对于来自文件的 Snippet,打开文件。
- 对于来自选择的 Snippet,打开文件并选择要包含的行。
- 打开命令面板:
- 对于 macOS,按 Command+Shift+P。
- 对于 Windows 或 Linux,按 Ctrl+Shift+P。
- 在命令面板中,运行命令
GitLab: Create Snippet。 - 选择 snippet 的隐私级别:
- Private snippets 仅对项目成员可见。
- Public snippets 对所有人可见。
- 选择 snippet 的范围:
- 来自文件的 Snippet 使用活动文件的整个内容。
- 来自选择的 Snippet 使用您在活动文件中选择的行。
GitLab 会在新的浏览器标签页中打开新 snippet 的页面。
创建补丁文件
当您审查 merge request 时,如果您想建议多文件更改,请创建一个 snippet 补丁。
- 在您的本地机器上,检出您想要提议更改的分支。
- 在 VS Code 中,编辑您想要更改的所有文件。不要提交您的更改。
- 打开命令面板:
- 对于 macOS,按 Command+Shift+P。
- 对于 Windows 或 Linux,按 Ctrl+Shift+P。
- 在命令面板中,输入
GitLab: Create snippet patch,然后选择它。此命令运行git diff命令并在您的项目中创建一个 GitLab snippet。 - 输入补丁名称并按 Enter。GitLab 使用此名称作为
snippet 标题,并将其转换为附加了
.patch的文件名。 - 选择 snippet 的隐私级别:
- Private snippets 仅对项目成员可见。
- Public snippets 对所有人可见。
VS Code 会在新的浏览器标签页中打开 snippet 补丁。snippet 补丁的 描述包含如何应用补丁的说明。
插入 snippet
要插入您所属项目中的现有单文件或多文件 multi-file snippet:
- 将光标放在您想要插入 snippet 的位置。
- 打开命令面板:
- 对于 macOS,按 Command+Shift+P。
- 对于 Windows 或 Linux,按 Ctrl+Shift+P。
- 输入
GitLab: Insert Snippet并选择它。 - 选择包含您 snippet 的项目。
- 选择要应用的 snippet。
- 对于多文件 snippet,选择要应用的文件。
查看 issues 和 merge requests
要查看特定项目的 issues 和 merge requests:
- 在菜单栏上,选择 GitLab Workflow( )以显示扩展侧边栏。
- 在侧边栏上,展开 Issues 和 merge requests。
- 选择您想要的项目以展开它。
- 选择以下结果类型之一:
- 分配给我的 issues
- 我创建的 issues
- 分配给我的 merge requests
- 我正在审查的 merge requests
- 我创建的 merge requests
- 所有项目 merge requests
- 您的自定义查询
选择一个 issue 或 merge request 以在新的 VS Code 标签页中打开它。
审查 merge request
使用此扩展来审查、评论和批准 merge request,无需离开 VS Code:
-
在 VS Code 中查看 issues 和 merge requests 时,选择您想要审查的 merge request。其侧边栏条目会展开显示更多信息。
-
在 merge request 的编号和标题下,选择描述以了解更多关于 merge request 的信息。
-
要审查文件的提议更改,从列表中选择文件以在 VS Code 标签页中显示它。 GitLab 在标签页中内联显示 diff 评论。在列表中,删除的文件标记为红色:
使用 diff 来:
- 审查和创建讨论。
- 解决和重新打开这些讨论。
- 删除和编辑单个评论。
与默认分支比较
要将您的分支与项目的默认分支进行比较,而不创建 merge request:
- 打开命令面板:
- 对于 macOS,按 Command+Shift+P。
- 对于 Windows 或 Linux,按 Ctrl+Shift+P。
- 在命令面板中,搜索 GitLab: Compare current branch with master 并按 Enter。
扩展会打开一个新的浏览器标签页。它显示您分支上最新提交与 项目默认分支上最新提交之间的 diff。
在 GitLab UI 中打开当前文件
要在 GitLab UI 中打开您当前 GitLab 项目的文件,并突出显示特定行:
- 在 VS Code 中打开您想要的文件。
- 选择您想要突出显示的行。
- 打开命令面板:
- 对于 macOS,按 Command+Shift+P。
- 对于 Windows 或 Linux,按 Ctrl+Shift+P。
- 在命令面板中,搜索 GitLab: Open active file on GitLab 并按 Enter。
查看安全发现
- Tier: Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
先决条件:
- 您使用的是 GitLab Workflow 版本 3.74.0 或更高版本。
- 您的项目包含 Security Risk Management 功能,例如 静态应用程序安全测试 (SAST)、动态应用程序安全测试 (DAST)、 容器扫描或依赖项扫描。
- 您已配置 Security Risk Management 功能。
要查看安全发现:
- 在垂直菜单栏上,选择 GitLab Workflow( )以显示扩展侧边栏。
- 在侧边栏上,展开 Security scanning。
- 选择新发现或已修复发现。
- 选择所需严重性级别。
- 选择一个发现以在 VS Code 标签页中打开它。
执行 SAST 扫描
- Tier: Ultimate
- Offering: GitLab.com
- Status: Experiment
VS Code 中的静态应用程序安全测试 (SAST) 检测活动文件中的漏洞。 通过早期检测,您可以在将更改合并到 默认分支之前修复漏洞。
当您触发 SAST 扫描时,活动文件的内容会传递给 GitLab,并根据 SAST 漏洞规则进行检查。GitLab 在主侧边栏中显示扫描结果。
要了解如何设置 SAST 扫描,请参阅 VS Code 中的 SAST 扫描 在 GitLab Unfiltered 上。
先决条件:
- 您使用的是 GitLab Workflow 版本 5.31.0 或更高版本。
- 您已通过 GitLab 进行身份验证。
- 您已选择启用实时 SAST 扫描复选框。
要在 VS Code 中执行文件的 SAST 扫描:
-
打开文件。
-
通过以下方式触发 SAST 扫描:
- 保存文件(如果您已选择在文件保存时扫描选项)。
- 使用命令面板:
- 打开命令面板:
- 对于 macOS,按 Command+Shift+P。
- 对于 Windows 或 Linux,按 Ctrl+Shift+P。
- 搜索 GitLab: Run Remote Scan (SAST) 并按 Enter。
- 打开命令面板:
-
查看 SAST 扫描的结果。
- 查看主侧边栏。
- 选择 GitLab Workflow ({tanuki}) 以显示扩展侧边栏。
- 展开 GITLAB REMOTE SCAN (SAST) 部分。
SAST 扫描的结果按严重性降序列出。要查看发现的详细信息, 请在扩展侧边栏的 GITLAB REMOTE SCAN (SAST) 部分中选择它。
搜索 issues 和 merge requests
要在 VS Code 中直接搜索您项目的 issues 和 merge requests,请使用过滤搜索或 高级搜索。使用过滤搜索, 您可以使用预定义的标记来优化搜索结果。 高级搜索在整个 GitLab 实例中提供更快、更高效的搜索。
先决条件:
- 您是 GitLab 项目的成员。
- 您已安装 GitLab Workflow 扩展。
- 您已登录到您的 GitLab 实例,如通过 GitLab 进行身份验证中所述。
要搜索您项目中的标题和描述字段:
- 在 VS Code 中,打开命令面板:
- 对于 macOS,按 Command+Shift+P。
- 对于 Windows 或 Linux,按 Ctrl+Shift+P。
- 选择您想要的搜索类型:
GitLab: Search project merge requests或GitLab: Search project issues。 - 输入您的文本,根据需要使用过滤标记。
- 要确认您的搜索文本,请按 Enter。要取消,请按 Escape。
GitLab 会在浏览器标签页中打开结果。
使用标记过滤搜索
在大型项目中添加过滤器时,搜索会返回更好的结果。扩展支持这些标记 来过滤 merge requests 和 issues:
| 标记 | 示例 | 描述 |
|---|---|---|
| assignee | assignee: timzallmann |
分配者的用户名,不带 @。 |
| author | author: fatihacet |
作者的用户名,不带 @。 |
| label | label: frontend 或 label:frontend label: Discussion |
单个标签。可多次使用,可与 labels 在同一查询中使用。 |
| labels | labels: frontend, Discussion, performance |
逗号分隔的多个标签列表。可与 label 在同一查询中使用。 |
| milestone | milestone: 18.1 |
不带 % 的里程碑标题。 |
| scope | scope: created-by-me 或 scope: assigned-to-me 或 scope: all |
匹配给定范围的 issues 和 merge requests。值:created-by-me(默认)、assigned-to-me 或 all。 |
| title | title: discussions refactor |
标题或描述中包含这些单词的 issues 和 merge requests。不要在短语周围添加引号。 |
标记语法和指南:
- 每个标记名称后面需要一个冒号 (
:),如label:。- 冒号前有空格(
label :)是无效的,会返回解析错误。 - 标记名称后的空格是可选的。
label: frontend和label:frontend都有效。
- 冒号前有空格(
- 您可以多次使用
label和labels标记,并且可以一起使用。这些查询返回相同的结果:labels: frontend discussion label: performancelabel: frontend label: discussion label: performancelabels: frontend discussion performance(结果组合查询)
您可以在单个搜索查询中组合多个标记。例如:
title: new merge request widget author: fatihacet assignee: jschatz1 labels: frontend, performance milestone: 17.5此搜索查询查找:
- 标题:
new merge request widget - 作者:
fatihacet - 分配者:
jschatz1 - 标签:
frontend和performance - 里程碑:
17.5
自定义键盘快捷键
您可以为接受内联建议、接受内联建议的下一个单词或 接受内联建议的下一行分配不同的键盘快捷键:
- 在 VS Code 中,运行
Preferences: Open Keyboard Shortcuts命令。 - 找到您想要编辑的快捷键,然后选择更改键绑定( )。
- 为接受内联建议、接受内联建议的下一个单词或 接受内联建议的下一行分配您偏好的快捷键。
- 按 Enter 保存您的更改。
更新扩展
要将您的扩展更新到最新版本:
- 在 Visual Studio Code 中,转到设置 > 扩展。
- 搜索由 GitLab (
gitlab.com) 发布的 GitLab Workflow。 - 从扩展:GitLab Workflow,选择更新到 {较新版本}。
- 可选。要在将来启用自动更新,选择自动更新