Help us learn about your current experience with the documentation. Take the survey.

VS Code 的 GitLab Workflow 扩展

GitLab Workflow 扩展 为 Visual Studio Code 集成了 GitLab Duo 和其他 GitLab 功能,直接集成到您的 IDE 中。它在 VS Code 侧边栏添加了一个 GitLab Workflow 面板,您可以在其中查看 issues、merge requests 和 pipelines,并通过 自定义查询 扩展您的视图。

要开始使用,请安装并配置扩展

配置完成后,此扩展将您日常使用的 GitLab 功能直接带入 VS Code 环境:

GitLab Workflow 扩展还通过 AI 辅助功能简化您的 VS Code 工作流:

当您在 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 账户,状态栏不显示任何信息。
  • 如果存在多个 GitLab 账户,且扩展可以确定使用哪个账户, 状态栏会在 tanuki( tanuki )图标旁边显示账户名。
  • 如果存在多个 GitLab 账户,且扩展无法确定使用哪个账户, 状态栏会显示 多个 GitLab 账户 question-o )。

要为当前 VS Code 窗口选择 GitLab 账户,请选择状态栏项目,或:

  1. 打开命令面板:
    • 对于 macOS,按 Command+Shift+P
    • 对于 Windows 或 Linux,按 Ctrl+Shift+P
  2. 运行命令 GitLab: Select Account for this Workspace
  3. 从列表中选择您想要的账户。

选择您的 GitLab 项目

当您的 Git 仓库可以关联到多个 GitLab 项目时,扩展无法确定使用哪个账户。当您有多个远程仓库时,可能会发生这种情况,例如:

  • origin: git@gitlab.com:gitlab-org/gitlab-vscode-extension.git
  • personal-fork: git@gitlab.com:myusername/gitlab-vscode-extension.git

在这些情况下,扩展会添加一个 (多个项目) 标签,提示您必须选择一个账户。

要选择账户:

  1. 在垂直菜单栏上,选择 GitLab Workflow tanuki )以显示扩展侧边栏。
  2. 展开 Issues 和 Merge Requests
  3. 选择包含 (多个项目) 的行以展开账户列表。
  4. 选择您想要的项目: 选择项目-账户组合

Issues 和 Merge requests 列表会更新为您所选项目的信息。

更改您的选择

要更改项目选择:

  1. 在垂直菜单栏上,选择 GitLab Workflow tanuki )以显示扩展侧边栏。
  2. 展开 Issues 和 Merge Requests 以显示项目列表。
  3. 右键单击项目名称。
  4. 选择 清除所选项目

使用斜杠命令

Issues 和 merge requests 支持 GitLab 斜杠命令 以在 VS Code 中直接执行操作。

创建 snippet

创建 snippet 以存储和与其他用户共享代码和文本片段。 Snippets 可以是选择的内容或整个文件。

要在 VS Code 中创建 snippet:

  1. 选择您的内容:
    • 对于来自文件的 Snippet,打开文件。
    • 对于来自选择的 Snippet,打开文件并选择要包含的行。
  2. 打开命令面板:
    • 对于 macOS,按 Command+Shift+P
    • 对于 Windows 或 Linux,按 Ctrl+Shift+P
  3. 在命令面板中,运行命令 GitLab: Create Snippet
  4. 选择 snippet 的隐私级别:
    • Private snippets 仅对项目成员可见。
    • Public snippets 对所有人可见。
  5. 选择 snippet 的范围:
    • 来自文件的 Snippet 使用活动文件的整个内容。
    • 来自选择的 Snippet 使用您在活动文件中选择的行。

GitLab 会在新的浏览器标签页中打开新 snippet 的页面。

创建补丁文件

当您审查 merge request 时,如果您想建议多文件更改,请创建一个 snippet 补丁。

  1. 在您的本地机器上,检出您想要提议更改的分支。
  2. 在 VS Code 中,编辑您想要更改的所有文件。不要提交您的更改。
  3. 打开命令面板:
    • 对于 macOS,按 Command+Shift+P
    • 对于 Windows 或 Linux,按 Ctrl+Shift+P
  4. 在命令面板中,输入 GitLab: Create snippet patch,然后选择它。此命令运行 git diff 命令并在您的项目中创建一个 GitLab snippet。
  5. 输入补丁名称并按 Enter。GitLab 使用此名称作为 snippet 标题,并将其转换为附加了 .patch 的文件名。
  6. 选择 snippet 的隐私级别:
    • Private snippets 仅对项目成员可见。
    • Public snippets 对所有人可见。

VS Code 会在新的浏览器标签页中打开 snippet 补丁。snippet 补丁的 描述包含如何应用补丁的说明。

插入 snippet

要插入您所属项目中的现有单文件或多文件 multi-file snippet:

  1. 将光标放在您想要插入 snippet 的位置。
  2. 打开命令面板:
    • 对于 macOS,按 Command+Shift+P
    • 对于 Windows 或 Linux,按 Ctrl+Shift+P
  3. 输入 GitLab: Insert Snippet 并选择它。
  4. 选择包含您 snippet 的项目。
  5. 选择要应用的 snippet。
  6. 对于多文件 snippet,选择要应用的文件。

查看 issues 和 merge requests

要查看特定项目的 issues 和 merge requests:

  1. 在菜单栏上,选择 GitLab Workflow tanuki )以显示扩展侧边栏。
  2. 在侧边栏上,展开 Issues 和 merge requests
  3. 选择您想要的项目以展开它。
  4. 选择以下结果类型之一:
    • 分配给我的 issues
    • 我创建的 issues
    • 分配给我的 merge requests
    • 我正在审查的 merge requests
    • 我创建的 merge requests
    • 所有项目 merge requests
    • 您的自定义查询

选择一个 issue 或 merge request 以在新的 VS Code 标签页中打开它。

审查 merge request

使用此扩展来审查、评论和批准 merge request,无需离开 VS Code:

  1. 在 VS Code 中查看 issues 和 merge requests 时,选择您想要审查的 merge request。其侧边栏条目会展开显示更多信息。

  2. 在 merge request 的编号和标题下,选择描述以了解更多关于 merge request 的信息。

  3. 要审查文件的提议更改,从列表中选择文件以在 VS Code 标签页中显示它。 GitLab 在标签页中内联显示 diff 评论。在列表中,删除的文件标记为红色:

    此 merge request 中更改文件的字母列表,包括更改类型。

使用 diff 来:

  • 审查和创建讨论。
  • 解决和重新打开这些讨论。
  • 删除和编辑单个评论。

与默认分支比较

要将您的分支与项目的默认分支进行比较,而不创建 merge request:

  1. 打开命令面板:
    • 对于 macOS,按 Command+Shift+P
    • 对于 Windows 或 Linux,按 Ctrl+Shift+P
  2. 在命令面板中,搜索 GitLab: Compare current branch with master 并按 Enter

扩展会打开一个新的浏览器标签页。它显示您分支上最新提交与 项目默认分支上最新提交之间的 diff。

在 GitLab UI 中打开当前文件

要在 GitLab UI 中打开您当前 GitLab 项目的文件,并突出显示特定行:

  1. 在 VS Code 中打开您想要的文件。
  2. 选择您想要突出显示的行。
  3. 打开命令面板:
    • 对于 macOS,按 Command+Shift+P
    • 对于 Windows 或 Linux,按 Ctrl+Shift+P
  4. 在命令面板中,搜索 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 功能。

要查看安全发现:

  1. 在垂直菜单栏上,选择 GitLab Workflow tanuki )以显示扩展侧边栏。
  2. 在侧边栏上,展开 Security scanning
  3. 选择新发现已修复发现
  4. 选择所需严重性级别。
  5. 选择一个发现以在 VS Code 标签页中打开它。

执行 SAST 扫描

  • Tier: Ultimate
  • Offering: GitLab.com
  • Status: Experiment

VS Code 中的静态应用程序安全测试 (SAST) 检测活动文件中的漏洞。 通过早期检测,您可以在将更改合并到 默认分支之前修复漏洞。

当您触发 SAST 扫描时,活动文件的内容会传递给 GitLab,并根据 SAST 漏洞规则进行检查。GitLab 在主侧边栏中显示扫描结果。

要了解如何设置 SAST 扫描,请参阅 VS Code 中的 SAST 扫描 在 GitLab Unfiltered 上。

先决条件:

要在 VS Code 中执行文件的 SAST 扫描:

  1. 打开文件。

  2. 通过以下方式触发 SAST 扫描:

    • 保存文件(如果您已选择在文件保存时扫描选项)。
    • 使用命令面板:
      1. 打开命令面板:
        • 对于 macOS,按 Command+Shift+P
        • 对于 Windows 或 Linux,按 Ctrl+Shift+P
      2. 搜索 GitLab: Run Remote Scan (SAST) 并按 Enter
  3. 查看 SAST 扫描的结果。

    1. 查看主侧边栏
    2. 选择 GitLab Workflow ({tanuki}) 以显示扩展侧边栏。
    3. 展开 GITLAB REMOTE SCAN (SAST) 部分。

    SAST 扫描的结果按严重性降序列出。要查看发现的详细信息, 请在扩展侧边栏的 GITLAB REMOTE SCAN (SAST) 部分中选择它。

搜索 issues 和 merge requests

要在 VS Code 中直接搜索您项目的 issues 和 merge requests,请使用过滤搜索或 高级搜索。使用过滤搜索, 您可以使用预定义的标记来优化搜索结果。 高级搜索在整个 GitLab 实例中提供更快、更高效的搜索。

先决条件:

要搜索您项目中的标题和描述字段:

  1. 在 VS Code 中,打开命令面板:
    • 对于 macOS,按 Command+Shift+P
    • 对于 Windows 或 Linux,按 Ctrl+Shift+P
  2. 选择您想要的搜索类型:GitLab: Search project merge requestsGitLab: Search project issues
  3. 输入您的文本,根据需要使用过滤标记
  4. 要确认您的搜索文本,请按 Enter。要取消,请按 Escape

GitLab 会在浏览器标签页中打开结果。

使用标记过滤搜索

在大型项目中添加过滤器时,搜索会返回更好的结果。扩展支持这些标记 来过滤 merge requests 和 issues:

标记 示例 描述
assignee assignee: timzallmann 分配者的用户名,不带 @
author author: fatihacet 作者的用户名,不带 @
label label: frontendlabel:frontend label: Discussion 单个标签。可多次使用,可与 labels 在同一查询中使用。
labels labels: frontend, Discussion, performance 逗号分隔的多个标签列表。可与 label 在同一查询中使用。
milestone milestone: 18.1 不带 % 的里程碑标题。
scope scope: created-by-mescope: assigned-to-mescope: all 匹配给定范围的 issues 和 merge requests。值:created-by-me(默认)、assigned-to-meall
title title: discussions refactor 标题或描述中包含这些单词的 issues 和 merge requests。不要在短语周围添加引号。

标记语法和指南:

  • 每个标记名称后面需要一个冒号 (:),如 label:
    • 冒号前有空格(label :)是无效的,会返回解析错误。
    • 标记名称后的空格是可选的。label: frontendlabel:frontend 都有效。
  • 您可以多次使用 labellabels 标记,并且可以一起使用。这些查询返回相同的结果:
    • labels: frontend discussion label: performance
    • label: frontend label: discussion label: performance
    • labels: frontend discussion performance(结果组合查询)

您可以在单个搜索查询中组合多个标记。例如:

title: new merge request widget author: fatihacet assignee: jschatz1 labels: frontend, performance milestone: 17.5

此搜索查询查找:

  • 标题:new merge request widget
  • 作者:fatihacet
  • 分配者:jschatz1
  • 标签:frontendperformance
  • 里程碑:17.5

自定义键盘快捷键

您可以为接受内联建议接受内联建议的下一个单词接受内联建议的下一行分配不同的键盘快捷键:

  1. 在 VS Code 中,运行 Preferences: Open Keyboard Shortcuts 命令。
  2. 找到您想要编辑的快捷键,然后选择更改键绑定 pencil )。
  3. 接受内联建议接受内联建议的下一个单词接受内联建议的下一行分配您偏好的快捷键。
  4. Enter 保存您的更改。

更新扩展

要将您的扩展更新到最新版本:

  1. 在 Visual Studio Code 中,转到设置 > 扩展
  2. 搜索由 GitLab (gitlab.com) 发布的 GitLab Workflow
  3. 扩展:GitLab Workflow,选择更新到 {较新版本}
  4. 可选。要在将来启用自动更新,选择自动更新

相关主题