VS Code 的极狐GitLab 工作流扩展

Visual Studio Code 的极狐GitLab 工作流扩展直接将极狐GitLab 的功能集成进了 IDE 中。它在 VS Code 的侧边栏中添加了一个极狐GitLab 工作流面板。你可以查看你的议题、合并请求和流水线,并通过自定义查询扩展你的视图。

此扩展直接将你每天使用的极狐GitLab 功能集成到了 VS Code 环境中:

The GitLab Workflow extension also streamlines your VS Code workflow with AI-assisted features:

极狐GitLab 工作流扩展还能够通过 AI 助手功能简化你的 VS Code 工作流程。比如极狐GitLab 自研的 AI 编程与软件研发智能助手 CodeRider。更多详情,可以参阅CodeRider 官网

当你在 VS Code 中查看极狐GitLab 项目时,扩展会显示当前分支的信息:

  • 当前分支的最新流水线状态。
  • 此分支的合并请求链接。
  • 如果合并请求包含关闭议题的模式,还会有议题的链接。

设置极狐GitLab 工作流扩展

扩展需要你创建一个极狐GitLab 个人访问令牌,并将其分配给扩展:

  1. 从 Visual Studio 插件市场安装扩展并启用它。如果你使用的是非官方版本的 VS Code,请从 Open VSX 注册表安装扩展。
  2. 登录你的极狐GitLab 示例,在 VS Code 中运行命令 GitLab: Authenticate
    1. 打开命令面板:
      • 对于 macOS,按 Command+Shift+P
      • 对于 Windows 或 Linux,按 Ctrl+Shift+P
    2. 在命令面板中,搜索 GitLab: Authenticate 并按 Enter
    3. 从提供的选项中选择你的极狐GitLab 实例 URL,或手动输入。
      • 当手动添加实例到 极狐GitLab 实例 URL 时,粘贴你的极狐GitLab 实例的完整 URL,包括 http://https://。按 Enter 确认。
    4. 对于 JihuLab.com,你可以使用 OAuth 认证方法。
    5. 如果你没有使用 OAuth,使用个人访问令牌来登录。
      • 如果你有一个具有 api 范围的现有个人访问令牌,请选择 输入现有的令牌 来输入它。
      • 如果你没有,选择 先创建一个令牌,扩展会为你打开令牌设置页面。如果这种方法失败了,请按照创建个人访问令牌的说明操作。
    6. 拷贝令牌。出于安全考虑,此值永远不会再次显示,因此你现在必须复制此值。
    7. 粘贴你的极狐GitLab 个人访问令牌并按 Enter。令牌不会显示,也不会被其他人访问。

扩展会将你的 Git 仓库远程 URL 与你为令牌指定的极狐GitLab 实例 URL 进行匹配。如果你有多个账户或项目,你可以选择你想要使用的账户或项目。更多详情,请参阅账户管理

扩展会在 VS Code 状态栏中显示信息,如果满足以下条件:

  • 你的项目有最新提交的流水线。
  • 你的当前分支与合并请求相关联。

配置扩展设置

当你安装极狐GitLab 工作流后,前往 设置 > 扩展 > GitLab 工作流来配置它的设置:

创建代码片段

创建一个代码片段来存储和分享代码和文本。代码片段可以是选中的行,也可以是整个文件。

要在 VS Code 中创建代码片段:

  1. 选择代码片段的内容:
    • 对于 从文件创建代码片段,打开文件。
    • 对于 从选中内容创建代码片段,打开文件并选择你想要包含的行。
  2. 打开命令面板:
    • 对于 macOS,按 Command+Shift+P
    • 对于 Windows 或 Linux,按 Ctrl+Shift+P
  3. 在命令面板中,运行命令 GitLab: Create Snippet
  4. 选择代码片段的隐私级别:
    • 私有 代码片段仅对项目成员可见。
    • 公开 代码片段对所有人可见。
  5. 选择代码片段的作用域:
    • 从文件创建代码片段 使用活动文件的全部内容。
    • 从选中内容创建代码片段 使用活动文件中你所选的行。

极狐GitLab 会在新的浏览选项卡中打开新的代码片段页面。

创建补丁文件

当你审查合并请求时,创建补丁文件来建议多文件更改。

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

VS Code 在新浏览选项卡中打开补丁代码片段。代码片段的描述中包含如何应用补丁的说明。

插入代码片段

要从你是成员的项目中插入一个现有的单个文件或多个文件代码片段:

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

查看议题和合并请求

要想查看特定项目的议题和合并请求:

  1. 在菜单栏,选择 GitLab 工作流 ( ) 来展示扩展侧边栏。
  2. 在侧边栏,展开 议题和合并请求
  3. 选择你想要的项目来展开它。
  4. 选择如下结果类型的中某一个:
    • 指派给我的议题
    • 我创建的议题
    • 指派给我的合并请求
    • 我正在审查的合并请求
    • 我创建的合并请求
    • 所有项目合并请求
    • 自定义查询
  5. 选择一个议题或合并请求并在 VS Code 中打开它。
  6. 可选。如果你选择了一个合并请求,它的侧边栏条目会展开以显示所有更改的文件。已删除的文件用红色标记。例如:

    An alphabetical list of files changed in this merge request, including the type of changes.

    1. 选择一个文件并在 VS Code 中查看它的差异。

查看安全漏洞

先决条件:

  • 你的项目包含安全风险管理功能,诸如静态应用程序安全测试(SAST)、动态应用程序安全测试(DAST)、容器扫描或依赖扫描。
  • 你配置了安全风险管理功能。

要查看安全漏洞:

  1. 在左侧的菜单栏中,选择 GitLab 工作流 ( ) 来展示扩展侧边栏。
  2. 在侧边栏中,展开 安全扫描
  3. 选择 新发现已修复发现
  4. 选择你想要的严重程度。
  5. 选择一个发现来在 VS Code 中打开它。

搜索议题或合并请求

要想直接从 VS Code 中搜索项目的议题和合并请求,使用过滤的搜索或高级搜索。使用过滤的搜索,你可以使用预定义的令牌来细化搜索结果。高级搜索提供在整个实例内更快、更高效的搜索。

先决条件:

要想在项目中搜索标题和描述字段:

  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 会在浏览选项卡中打开搜索结果。

用令牌过滤搜索

当添加过滤器时,会在大型项目中返回更好的结果。扩展支持以下令牌来过滤议题和合并请求:

令牌 示例 描述
assignee assignee: timzallmann 指派者的名称,没有 @
author author: fatihacet 作者的名称,没有 @
label label: frontend or label:frontend label: Discussion 单个标记。可多次使用,且可在相同的查询中如 label 一样使用。
labels labels: frontend, Discussion, performance 用逗号分隔开的多个标记。且可在相同的查询中如 label 一样使用。
milestone milestone: 18.1 没有 % 的里程碑主题。
scope scope: created-by-me or scope: assigned-to-me or scope: all. 匹配给定范围的议题和合并请求。值为: created-by-me (默认), assigned-to-meall
title title: discussions refactor 匹配字段的议题和合并请求主题和描述。不要在短语前后添加引号。

令牌语法和指南:

  • 每个令牌名称需要在其之后有一个冒号(:),例如 label:
    • 冒号(label :)前面的空格是无效的,并返回解析错误。
    • 令牌名称后面的空格是可选的。label: frontendlabel:frontend 都是有效的。
  • 你可以多次使用 labellabels 令牌,且可以在相同的查询中像 label 一样使用它们。这些查询返回相同的结果:
    • 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
  • 标记: frontend and performance
  • 里程碑: 17.5

相关主题