从极狐GitLab 提交信息中提及的 Jira 议题中查看部署情况
以前,只有在与部署相关的分支或合并请求中提到 Jira 议题时,才会将 Jira 开发面板和极狐GitLab 部署连接起来。对于用户来讲,这通常不太方便,因为这需要他们从合并请求来完成部署,而这并不是一个典型的工作流。
在此版本中,GitLab 部署还会对自最后一次部署成功之后的最近 5,000 次提交消息进行扫描,查找其中提及的 Jira 问题。极狐GitLab 部署会将所有被提及的 Jira 议题关联起来。
在极狐GitLab 私有化部署上使用 Slack app
此次发版,私有化部署的实例支持 Slack app 的集成了。在私有化部署的极狐GitLab 中,你可以从清单文件中来创建一个极狐GitLab Slack app 的副本并且将其安装到你的 Slack 工作空间中。每一个副本都是私有且不会被分发到公共域中。
如需创建和配置 app,请查看极狐GitLab Slack app 管理文档。
提高 Feed 令牌的安全性
通过只让 Feed 令牌作用于其生成的 URL来提高其安全性。这会缩小令牌泄漏时的爆炸半径。
自动删除未经确认的用户
当给错误的邮箱地址发送邀请时,可能从来不会收到邀请确认。之前的版本中,管理员需要寻求极狐GitLab 的帮助来删除这些非确认的用户。现在,管理员可以开启在数天后自动删除未经确认的用户这一功能。
在上传设计的评论中添加表情符号
现在你可以在设计管理中通过添加符号表情来更具创造性的表达你的想法了。此功能为协作添加了更多乐趣,能够促进沟通,病似的团队能够以更具表现力的方式提供快速反馈。
CI/CD:支持在条件引用下使用 `when: never`
当编写完整的 CI/CD 流水线时,include 向来是一个非常受欢迎的关键字。如果你正在构建一个大型流水线,你或许正在用 include 关键字来将额外的 YAML 配置引入到流水线中。
此次发版,我们扩展了关键的能力,以便在 rules 中使用 include 的时候可以使用 when:never 语法。现在,当满足特定 rule 时,你可以决定何时将 CI/CD 配置排除在外。这将帮助你编写一个标准化的流水线,使其能够更好地根据你选择的条件来动态修改自身。
在 CI/CD 流水线中导入 PyPI 包
你是否有考虑过将你的 PyPI 仓库迁移至极狐GitLab,但是却没有时间去调研需要花费多少时间?此次发版,极狐GitLab 发布了其第一版 PyPI 包导入器。
现在你可以使用包导入工具来从任何 PyPI-compliant 仓库,比如 Artifactory,来导入 PyPI 包。
在依赖项及许可证扫描中支持 NuGet v2
除了支持 NeGut v1 lock 文件,极狐GitLab 依赖项和许可证扫描现在都支持定义在 NuGet v2 lock 文件中的依赖。
改善了 SAST 的漏洞跟踪能力
极狐GitLab SAST 的高级漏洞追踪能力通过对漏洞的持续追踪来让漏洞分类变得更加容易。16.2 中的改进如下:
- 扩展了支持的语言:高级漏洞追踪能力现在支持 C#。
- 更好的追踪能力:我们已经改进了追踪算法来更好的处理 C、C#、Java、JavaScript 以及 Pytho 中的空格和注释。我们还修复了在追踪特定 Go 函数时的一些缺陷。
我们还在持续做一些改进,包括支持更多的语言、更好的处理多语言构造以及改善 Python 和 Ruby 的追踪。
这些变更都包含在了极狐GitLab SAST 分析器的更新版本中。使用更新的分析器扫描项目后,项目的漏洞发现结果将使用新的追踪签名来进行更新。你无需做任何动作即可获取这些更新,除非你将分析器的版本固定到了一个特定版本。
在 Helm Chart 中使用外部 volume 来安装 Kubernetes agent
极狐GitLab Kubernetes agent 中的 agentk 组建需要用一个令牌来和极狐GitLab 进行认证。之前,你可以直接提供令牌,或者将其以 Kubernetes secret 的形式来提供。然而,你可能是在一个密码已经存在于某个 volume 的环境中进行操作,这时候你更愿意去挂载 volume 而不是单独创建一个 secret。从极狐GitLab 16.2 开始,极狐GitLab agent Helm chart 就具备了这种功能,感谢来自社区贡献者 Thomas Spear 的贡献。
安全合规框架报告导出
现在你可以将合规框架及与其相关联的项目报告导出到 CSV 文件中。
有了群组级别的合规框架报告,你就可以对已经应用了合规框架的项目进行查看和管理。
有了新的报告,可以保留一份副本以供参考。你还可以将文件视为项目理想状态及合规框架关系的的单一可信源。或者你可以将文件发送给可能不在极狐GitLab 组织中工作的人员,但是有兴趣查看哪些项目使用了哪个合规框架。
实例级别的流审计事件
在极狐GitLab 16.1 之前,只有群组级别的审计事件才能够将事件流分发到外部地址。
现在实例管理员可以将实例产生的审计事件添加到事件流目标地址上。
新增在备份时跳过项目的能力
内置的备份和恢复工具增加了跳过特定项目的能力。通过使用新的 SKIP_REPOSITORIES_PATHS 环境变量,Rake 任务现在可以接受以逗号分隔的群组或者项目路径以实现在备份或恢复过程中跳过项目,例如,那些不会随时间变化的老旧、已经归档的项目,此功能可以帮助你:
a)通过加速备份运行来节约时间
b)由于在备份文件中不用包含这些项目相关的数据而带来空间的节约
感谢来自社区贡献者 Yuri Konotopov 的社区贡献。
群组/子群组级别的依赖列表
当对一系列依赖进行审核时,有一个全局视图是非常重要的。对于那些想要对所有项目的依赖进行审计的大型组织来讲,对于项目级别的依赖进行管理是存在问题的。此次发版,你可以在项目或群组级别看到所有的依赖,包括子群组。此功能是有 group_level_dependencies 功能开关来控制的。
使用多个访问令牌来加速 GitHub 项目导入
默认情况下, GitHub 导入者只有一个访问令牌来将项目从 GitHub 导入到极狐GitLab。用户账号的单个访问令牌的速率限制一般来说是每小时 5000 次请求。当遇到以下情况这会严重降低导入速率:
- 导入多个中小型的项目
- 导入一个具有大量数据的大型项目
此次发版,可以给 GitHub 导入器 API 传入多个访问令牌以便在速率受到限制时可以对令牌进行轮询使用。当使用多个访问令牌时:
- 令牌不能来自于同一个账号,因为它们将共用同一个速率限制。
- 令牌必须具有与要导入的存储库相同的权限和足够的特权。
将审核员角色和 OIDC 提供商进行同步
现在你可以将 OIDC 群组同步至极狐GitLab 的 auditor 角色中。这允许 OIDC 通过使用 auditor 角色来实现用户生命周期的自动化管理,而这在之前的版本中是不支持的。
改进了登录和注册页面
极狐GitLab 登录和注册页面有以下改进:
- 存在自定义文本时变为两列布局。
- 修复了使用多个 LDAP 时“记住我”勾选框所产生的问题。
- 改进了暗黑模式体验。
- 让单点登录按钮变大了。
- 将页脚移至页面底部以避免隐藏页面元素。
- 在 SAML 登陆页面添加了语言切换。
- 在注册试用页面开启了密码检查。
合并请求中的交互 diff 建议
当你在合并请求中对一些变更提出建议时,你可以更加快速地来编辑你的建议了。在注释中,切换到富文本编辑器,然后使用 UI 来对文本实现上下移动。在此变更的加持下,你可以完全按照发布评论时的显示方式来查看建议。
富文本编辑器也是极狐GitLab 的一种新编辑方式。它在合并请求中可用,但是也可以在议题和史诗中与纯文本编辑器一起使用。
我们计划在极狐GitLab 的更多地方来使用富文本编辑器,我们也在积极努力工作来实现这一切。
提升 Git LFS 的下载性能
对于在对象存储中存储了 LFS 对象但是并未开启代理下载模式的实例来讲,极狐GitLab 现在可以并行处理 LFS 请求了。这极大的提升了下载大量 LFS 对象时的性能。
之前,对于 LFS 对象的拉取,极狐GitLab 会创建很多非常小的请求,这些请求会检查用户的权限并且重定向到外部的存储对象上。这种方式对于性能存在潜在影响。通过此次修改,大大降低了主实例上的负载而且为用户提供了更快的下载体验。
极狐GitLab Runner 16.2
此次我们还发布了 16.2 Runner!极狐GitLab Runner 是一个轻量级、高扩展的带来用来运行 CI/CD 作业,并且可以将结果发送给极狐GitLab 实例。极狐GitLab Runner 和 CI/CD 这一内置于极狐GitLab 自身的开源集成服务一起使用。
新特性:
- 在 Kubernetes 执行器中重试所有 k8s API 调用
缺陷修复:
- 当后台运行 dockerd 或其他任何进程时,CI 作业脚本无法完成运行
- Gitlab-runner-helper servercore v16.1.0 镜像的缺失
- 错误:无法创建 cache chapter
关于极狐GitLab Runner 的所有变更可以查看变更日志。
SAST 分析器更新
极狐GitLab SAST 包含很多由 GitLab 静态分析团队积极维护、更新及支持的分析器。
在 16.2 里程碑中,我们的变更集中在 Semgrep 分析器及极狐GitLab 自维护的一些用来扫描的规则更新上。我们发布了以下变更:
- 澄清了 JavaScript 规则的解释和指导,基于极狐GitLab 16.1 中发布的其他语言的一些改进
- 更新了针对 Java 和 JavaScript 的一些规则,用来发现额外的漏洞
- 通过以下方式实现对于扫描过程中可忽略文件的默认配置更改:
- 删除 .gitignore 。感谢来自社区贡献者 @SimonGurney 的贡献。
- 重视本地定义的 .semgrepignore 文件。感谢来自社区贡献者@hmrc.colinameigh 的贡献。
- 改进了一个与 Go 内存别名相关的规则。感谢来自社区贡献者@tyage 的贡献。
- 针对 JavaScript 规则,删除了 Semgrep 规则 ID 前面的前缀 -1。
更多细节可以查看 semgrep 以及 sast-rules 的变更日志。我们正在跟进 epic 10907 中所描述的对于极狐GitLab 管理的规则集的进一步更新。
如果你在极狐GitLab 16.0 以后引用了极狐GitLab 管理的 SAST 模版(SAST.gitlab-ci.yml),那么你会自动接受到这些更新。为了使用特定版本的分析器并且阻止自动更新,你可以固定分析器的版本。
密钥检测更新
我们按照常规发布了极狐GitLab 密钥检测分析器的更新。在 16.2 中做了以下改进:
- 为以下内容增加了极狐GitLab 管理的检测规则:
- OpenAPI API key
- CircleCI 个人和项目访问令牌。感谢@nathanwfish 的贡献。
- 提高了使用 keywords 进行优化的一些规则的性能。
- 修复了将密钥检测结果结果的永久链接指向仓库的错误位置。
更多详情可以查看变更日志。
如果你在使用极狐GitLab 管理的密钥检测模版(Secret-Detection.gitlab-ci.yml)并且在使用 16.0 以后的版本,你将会自动接受到这些更新。如果想停留在某个特定的分析器版本并且防止更新器的自动更新,你可以将分析器的版本进行固定。
Geo 为所有组件新增了单独的重新同步和重新验证功能
Geo 为自服务框架所管理的所有组件类型添加了针对单个条目的重新同步和重新验证能力。现在你可以在 UI 上对与 Geo 管理的任意单独条目来执行强制重新同步或者重新验证操作了。这能够加速那些已经失败条目的重新同步或重新验证操作,或者应用变更来修复同步或者验证错误问题。
允许向受保护分支进行初始推送
在之前的极狐GitLab 版本中,当默认分支是完全受保护的,只有项目维护者或者所有者才能够向默认分支推送初始提交。
这对于新建项目的开发者来讲是有问题的,因为他们无法向默认分支推送初始提交。
通过初始推送后完全受保护这一配置,开发者可以将初始提交推送至仓库的默认分支,但是之后就不能向默认分支推送任何变更了。与之相似的是,当一个分支完全受保护时,项目维护者总是能够向默认分支推送代码但是没人可以强制推送。
在开发项目中允许扫描执行策略来启用 CI/CD 流水线
极狐GitLab 的之前版本中,在项目中没有 .gitlab-ci.yml 文件或者 AutoDevOps 未启用的情况下,是不会强制执行安全策略的。在 16.2 中,即使项目中不包含 .gitlab-ci.yml 文件,安全策略也会启用CI/CD流水线。这又进一步地确保了安全合规策略的执行并且允许你来强制执行密钥检测、静态分析或者其他任何不需要构建的作业。
安全策略中针对“默认”或“受保护分支”进行设置
扫描执行及扫描结果策略将允许你将执行范围限定为“默认分支”或“受保护分支”,并且在跨多个项目间强制执行该策略。与其要求必须明确分支名称才能来执行策略,还不如采取更广泛的策略执行并确保非典型命名的分支不会被策略执行排除在外。
通过使用branch_type 字段来实现在不同安全策略规则类型中进行分支规则配置:
支持在扫描执行策略编辑器中自定义 CI 变量
现在你可以在扫描执行策略编辑器中自定义 CI 变量了,包括他们的值。策略中定义的 CI 变量会覆盖在策略强制执行的项目中定义的变量。比如,一个策略中可能定义了一个 CI 变量 SAST_EXCLUDED_ANALYZERS,其值为 brakeman。当在项目中强制执行扫描时,扫描器将以 brakeman 为变量值去运行,而不会管在项目的 CI 配置中定义的任何变量。对于每一种扫描类型,你都可以定义变量的默认值,而且还能对自定义 CI 变量创建自定义的键值对。这能让自定义的扫描执行策略更快、更容易。
流审计事件过滤 UI
在之前的版本中,你不得不使用 GraphQL API 来向你的审计时间流来添加审计事件类型过滤器。
现在你可以在极狐GitLab UI 上使用过滤器下拉菜单来看到所有可用的审计事件类型,并且用相关性进行了分组,还可以搜索要在流中发送的确切类型。
这大大地缩短了添加审计事件流过滤器的事件,因为你再也不需要去用 API 来拉取整个列表并且手动在列表中进行搜索。
群组级别的 Wiki 在高级搜索中已可用
此次发版,我们扩展了高级搜索功能,包含了群组级别的 Wiki。相比之前,现在用户能够更快更容易地在 wiki 中找到他们想要的内容。