沿袭我们的月度发布传统,极狐GitLab 发布了 17.9 版本,该版本带来了使用并行部署运行多个 Pages 站点、自动删除旧流水线、极狐GitLab 管理的 Kubernetes 资源、多核高级 SAST 提供更快的扫描等几十个重点功能的改进。下面是部分重点功能的详细解读。
关于极狐GitLab 的安装升级,可以查看官方指导文档。
registry.gitlab.cn/omnibus/gitlab-jh:17.9.0-jh.0
helm search repo gitlab-jh
NAME CHART VERSION APP VERSION
gitlab-jh/gitlab 8.9.0 v17.9.0
gitlab-jh/gitlab-runner 0.74.0 17.9.0
|
|
|
|
|
|
|
|
|
|
|
|
现在您可以使用并行部署同时创建多个极狐GitLab Pages 站点。每一个部署都会基于您配置的前缀获得唯一的 URL。比如,有了唯一域名,您的站点将能在 project-123456.gitlab.io/prefix
被访问,或在没有唯一域名的情况下,则在 namespace.gitlab.io/project/prefix
被访问。
此功能当您在如下情况下时是非常有帮助的:
默认情况下,并行部署会在 24 小时后过期,以帮助管理存储空间,尽管您可以自定义此持续时长或设置部署为从不过期。对于自动清除来说,创建自合并请求的并行部署会在合并请求被合并获关闭时被删除。
|
|
|
|
|
|
|
|
|
|
|
|
现在,极狐GitLab 工作空间支持直接在您的开发环境中构建和运行容器了。当您的工作空间运行在配置了 Sysbox 的 Kubernetes 集群上时,您可以无需额外的配置就能构建和运行容器了。
此功能作为我们 sudo 访问功能的一部分,引入于极狐GitLab 17.4,此能力能够让您在您的极狐GitLab工作空间环境中维护您的完整容器工作流。
|
|
|
|
|
|
|
|
|
|
|
|
之前,设置工作空间需要创建 devfile.yaml
配置文件。现在极狐GitLab 为您提供了一个包含了常用开发工具的默认文件。这有助于:
开始开发且在无需额外设置或配置的情况下快速创建工作空间。
|
|
|
|
|
|
|
|
|
|
|
|
将您的应用程序部署到 Kubernetes 集群上,且使用极狐GitLab 管理的 Kubernetes 资源来获得更多的控制和自动化。之前,您不得不为每个环境手动配置 Kubernetes 资源。现在,您可以使用极狐GitLab 管理的 Kubernetes 资源来创建和管理这些资源。
有了极狐GitLab 管理的 Kubernetes 资源,您就可以:
当您的开发者部署应用程序时,极狐GitLab 会基于提供的资源模板来自动创建所需的 Kubernetes 资源,这能构建简化您的开发流程并维护跨环境的一致性。
|
|
|
|
|
|
|
|
|
|
|
|
您是否曾经在获取项目内部署情况的时候感觉很挣扎?现在,您可以在环境的详情页面上查看最近的部署详情,而无需展开每个环境。对每个环境,列表会为您展示最近成功的部署和您最近的部署尝试(如果不同的话)。
|
|
|
|
|
|
|
|
|
|
|
|
现在,您可以在直接在 wiki 页面上添加评论,将您的文件转换到可交互的协作空间。
wiki 页面上的评论和线程能够帮助团队:
有了 wiki 评论,团队可以通过直接的反馈和讨论,维护那些能够随着他们的项目一起发展的动态文档。
|
|
|
|
|
|
|
|
|
|
|
|
为了改进开发工作流追踪,价值流分析(VSA)已经用新事件进行了扩展——合并请求最后批准于。合并请求批准事件标志着审核阶段的结束以及最终流水线运行或合并阶段的开始。例如,要计算合并请求的总审核时间,你可以创建一个价值流分析(VSA)阶段,将“首次分配合并请求审核人”设为起始事件,“最后批准合并请求”设为结束事件。 通过这一改进,团队能够更深入地了解优化审核时间的机会,这有助于缩短开发的整体周期时间,从而实现更快的软件交付。
|
|
|
|
|
|
|
|
|
|
|
|
我们已经支持如下漏洞风险数据:
现在,你可以利用这些数据,高效地对依赖项和容器镜像中的漏洞所带来的风险进行优先级排序。 你可以在漏洞详情页面的漏洞报告数据中找到相应的数据。
|
|
|
|
|
|
|
|
|
|
|
|
为了高效测试复杂的应用程序,安全团队需要在配置 DAST 扫描时需要更多的灵活性。之前,通过 UI 进行的 DAST 扫描配置有受限制的配置选项,这阻碍了对具有特定安全要求的应用程序进行成功的扫描。 这也就意味着您不得不为了快速安全评估而使用基于流水线的扫描。
现在,您可以在 UI 上配置和基于流水线扫描具有相同控制粒度的 DAST 扫描。这包含:
将这些配置保存为可复用的个人资料来在您的应用程序中维护安全测试的一致性。每次配置变更都能用安全审计事件进行追踪,所以您就能知道设置是什么时候被添加的、编辑的甚至删除的。
这种增强的控制功能有助于你在利用详细的审计跟踪记录来确保合规性的同时,开展更有效的安全扫描。你无需花费时间去管理流水线配置,而是能够快速为每个应用程序启动合适的扫描,从而更迅速地发现并修复漏洞。
|
|
|
|
|
|
|
|
|
|
|
|
在过去,如果您想删除旧的 CI/CD 流水线,则您只能通过 API 来实现。
在极狐GitLab 17.9 中,我们引入了一个新的项目设置以允许您来设置 CI/CD 流水线过期时间。任何流水线与相关的制品要是比定义的保留时间“老”的话,则流水线就会被删除。这对那些运行大量流水线且会生成大型制品的项目来讲,可以减少磁盘使用,进而改善整体性能。
|
|
|
|
|
|
|
|
|
|
|
|
之前,您仅能在 UI 上从群组中来管理项目集成。在此版本中,可以使用 REST API 来管理这些集成了。
|
|
|
|
|
|
|
|
|
|
|
|
现在,您能够很容易地修改您工作项目的类型,这为您的项目管理提供了更高的灵活性和高效性。
|
|
|
|
|
|
|
|
|
|
|
|
现在,您可以在群组级别限制极狐GitLab Pages 的访问了。群组拥有者可以启用单个设置来让群组和其子群组中的所有 Pages 站点仅为项目成员可见。此集中式控制简化了安全管理,而无需修改单个项目设置。
|
|
|
|
|
|
|
|
|
|
|
|
我们优化了创建多个子项的流程,每次提交后表单会保持打开状态,这样你无需额外点击操作,就能更轻松地添加多个条目。这一更新为你节省了时间,确保你在管理任务时拥有更顺畅的工作流程。
|
|
|
|
|
|
|
|
|
|
|
|
现在,工作项 GraphQL API 包含额外的查询过滤器以让您通过如下方式来过滤:
这些新的过滤器让您在使用 API 进行工作项查询组织时有了更多的可控性。
|
|
|
|
|
|
|
|
|
|
|
|
我们还发布了极狐GitLab Runner 17.9。极狐GitLab Runner 是一个轻量级、高扩展的代理,用来运行你的 CI/CD 作业并且将结果发送回极狐GitLab 实例。极狐GitLab Runner 和极狐GitLab CI/CD 绑定在一起,而极狐GitLab CI/CD 是一个开源且内置在极狐GitLab 里面的服务。
新特性:
修复的缺陷:
script_failure
而不是 runner_system_failure
|
|
|
|
|
|
|
|
|
|
|
|
在此版本中,我们新增了 Kubernetes 使用指南以为您展示如何直接使用 FluxCD 和极狐GitLab 将应用程序部署到 Kubernetes 集群上。这些很简单的教程无需深度的 Kubernetes 知识即可完成,所以小白或专业人员都可以轻松学习如何将极狐GitLab 和 Kubernetes 集成起来。
为了补充 Kubernetes 入门指南的内容,我们还提供了一系列关于将极狐GitLab 集成到 Kubernetes 环境中的建议。
|
|
|
|
|
|
|
|
|
|
|
|
在极狐GitLab 17.9 中,组件分析团队用新的依赖扫描分析器,开启了向基于 SBOM 的依赖项扫描的过渡工作。此分析器是 Gemnasium 的替代,因为它将在 18.0 不再受支持,但是依旧会为用户所用直到极狐GitLab 19.0。在极狐GitLab 17.9 中,新的依赖项扫描分析器默认会在 latest
依赖项扫描 CI/CD 模板(Dependency-Scanning.latest.gitlab-ci.yml
)中为以下项目和文件类型启用:
conda-lock.yml
文件的 C/C++/Fortran/Go/Python/R 项目。podfile.lock
文件的 Objective-C 项目。cargo.lock
文件的 Rust 项目。package.resolved
文件的 Swift 项目。
对于此变更,我们引入了一个新的 CI/CD 变量:DS_ENFORCE_NEW_ANALYZER
,默认为 false
。
此方法确保所有使用 latest
模板的既有客户还能够继续默认使用 Gemnasium,而且它会自动为上述列出的文件类型启用新的依赖项扫描分析器。
对于想要迁移到新依赖项扫描分析器的既有客户来说,可以将 DS_ENFORCE_NEW_ANALYZER
设置为 true
(在项目、群组或实例级别)。
对于想要阻止使用新依赖项扫描分析器的客户来讲,必须要将 CI/CD 变量 DS_EXCLUDED_ANALYZER
设置为 dependency_scanning
。
|
|
|
|
|
|
|
|
|
|
|
|
极狐GitLab 高级 SAST 现在提供一个新的选项——多核扫描,用以改善性能。这能够显著缩短扫描持续时长,特别是针对大型仓库。
要启用此功能,将 CI/CD 变量SAST_SCANNER_ALLOWED_CLI_OPT
设置为 --multi-core N
,其中 N
是期望使用的核数。您应仅在 gitlab-advanced-sast
作业中设置此变量,而不是在其他作业中设置。
|
|
|
|
|
|
|
|
|
|
|
|
在项目的依赖项列表中,现在,您可以使用组件过滤器来通过软件名称来过滤了。
之前,您无法在项目的依赖项列表中搜索软件包。现在,设置组件过滤器就能找到包含特定字符串的软件包。
|
|
|
|
|
|
|
|
|
|
|
|
现在,在项目的漏洞报告中,您可以通过漏洞标识符来过滤结果,以便您可以找到项目中特定的漏洞(诸如 CVE 或 CEW)。现在,您可以将标识符和其他过滤器(诸如严重等级、状态或工具过滤器)一起使用了。漏洞标识符过滤器仅适用于包含 20,000 个及以下漏洞的报告。
|
|
|
|
|
|
|
|
|
|
|
|
现在,流水线执行策略可以支持额外的合并请求变量了,这能够让您创建更多更复杂的策略,这些策略会将合并请求相关的信息考虑在内。这为 CI/CD 执行提供了更具针对性且更高效的控制。 现在支持的变量有:
CI_MERGE_REQUEST_SOURCE_BRANCH_SHA
CI_MERGE_REQUEST_TARGET_BRANCH_SHA
CI_MERGE_REQUEST_DIFF_BASE_SHA
有了此加强措施,您就可以:
|
|
|
|
|
|
|
|
|
|
|
|
当轮换服务账号的访问令牌时,现在您可以使用 expires_at
来设置过期时间。之前,令牌会在轮换后的 7 天后自动过期。此功能为令牌生命周期提供了更细粒度的管理,强化了安全访问控制的管控能力。
|
|
|
|
|
|
|
|
|
|
|
|
您可以使用读取合规仪表盘权限来创建自定义角色。自定义角色能够让您仅为用户授予完成特定任务所需的特定权限。这有助于你定义符合团队需求的角色,还能减少需要“所有者”或“维护者”角色的用户数量。
self_rotate
范围的访问令牌
|
|
|
|
|
|
|
|
|
|
|
|
现在您可以使用 self_rotate
范围来轮换访问令牌。个人、项目或群组访问令牌均可使用此范围。之前,这需要两个请求:一个用来获取新令牌,另外一个用来执行令牌轮换。
|
|
|
|
|
|
|
|
|
|
|
|
现在,当您使用多个 OIDC 提供商时,您可以配置额外的群组成员关系。之前,如果您配置了多个 OIDC 提供商,那么您会被限制到单个群组成员关系中。
|
|
|
|
|
|
|
|
|
|
|
|
之前,当您查看个人访问令牌时,您能看到的信息仅有多少分钟之前令牌被使用。现在,您还可以查看令牌最近使用过的最多七个 IP 地址。这些综合信息可以帮助你追踪你的令牌在哪些地方被使用。
|
|
|
|
|
|
|
|
|
|
|
|
之前,到极狐GitLab 请求仅能被认证为单个用户。有了复合身份认证,我们现在可以将单个请求同时认证为一个服务账号和用户。AI 代理代理的使用场景通常要求权限基于在系统中发起任务的用户来设定,同时要展现出与发起任务的用户不同的独特身份。复合身份是我们推出的全新身份主体,它代表着 AI 代理的身份。该身份与向代理请求执行操作的人类用户身份相关联。每当 AI 代理尝试访问资源时,都会使用复合身份令牌。这个令牌属于一个服务账户,并且也与指示代理操作的人类用户相关联。在对令牌进行授权检查时,会在授予资源访问权限之前同时考虑这两个身份主体。这两个身份都需要具备访问该资源的权限,否则将拒绝访问。这一新功能增强了我们保护存储在 极狐GitLab 中的资源的能力。
|
|
|
|
|
|
|
|
|
|
|
|
工作空间扩展现已支持启用的提议 API 了,这改善了生产环境的兼容性和可靠性。此更新允许那些基于提议 API 的扩展能够无错运行,其中包括像 Python 调试器这样的关键开发工具。这一改动在保证稳定性的同时,扩大了 API 的访问范围。
|
|
|
|
|
|
|
|
|
|
|
|
基于证书的 Kubernetes 集成将在 2025 年 5 月 6 日 9:00 AM UTC 到 5 月 8 日 22:00 PM UTC 间为 JihuLab.com 上所有用户关闭,并且将在极狐GitLab 19.0 中为私有化部署的用户进行移除(时间大概在 2026 年 5 月)。
为了帮助用户迁移,我们新增了一个集群 API 端点,群组所有者可以用此 API 来查询群组内、子群组内和项目内的基于证书的 Kubernetes 集群。
我们鼓励所有 JihuLab.com 用户检查一下是否受此影响并尽快计划您的迁移。
|
|
|
|
|
|
|
|
|
|
|
|
您是否迟疑过如果使用极狐GitLab 实现 GitOps 最佳实践?新的 Flux 组件让此变得更加容易了。使用 Flux 组件将 Kubernetes 清单打包进 OCI 镜像并将镜像存储在 OCI 兼容的容器镜像仓库中。您可以选择登录到镜像仓库中并立马触发 Flux 调谐。
|
|
|
|
|
|
|
|
|
|
|
|
在极狐GitLab 17.9 中,我们增加了对于 Swift 软件包的许可证扫描。这能够让在项目中使用 Swift 的用户更好地了解他们所使用的 Swift 软件包的许可证情况。
成分分析用户可通过依赖项列表、软件物料清单(SBOM)报告和 GraphQL API 获取这些数据。
|
|
|
|
|
|
|
|
|
|
|
|
为了确保安全策略的安全管理并防止已启用和强制执行的策略受到干扰,我们增加了保护机制,以防止正在使用的安全策略项目被删除。
如果某个安全策略项目被链接至任何群组或项目,那么要在删除安全策略项目之前需要先移除这些链接。
|
|
|
|
|
|
|
|
|
|
|
|
我们很高兴地引入了一个新的流水线执行策略能力,以允许您在 Inject
模式下,在您的 CI/CD 流水线中强制 自定义阶段。此功能在满足安全和合规要求的同时,为你的流水线结构提供了更大的灵活性和控制权,为你带来以下益处:
工作原理:
流水线执行策略中新的、改进的 inject_policy
策略能让您在您的策略配置中定义自定义阶段。这些阶段随后就会使用有向无环图(DAG)算法“智能的”合并到项目中既有的阶段中,从而确保了正确的顺序和防止冲突。
比如,现在您可以很轻松地在您的构建和部署阶段之间注入一个自定义的安全扫描阶段。
inject_policy
阶段替代 inject_ci
将被弃用,这能够让您通过选择 inject_policy
模式来获益。当在策略编辑中使用 Inject
来配置策略时,inject_policy
模式将会变为默认的策略。
|
|
|
|
|
|
|
|
|
|
|
|
我们通过将自定义角色指派为审核者的能力来为合并请求审核策略提供更多灵活性。
现在,你可以根据你组织独特的团队架构和职责来定制审批要求,确保根据策略让合适的角色参与到审核流程中。例如,要求应用安全工程团队的人员进行安全审核,合规团队的人员进行许可证审批。
|
|
|
|
|
|
|
|
|
|
|
|
在极狐GitLab 17.2 中,我们为群组所有者发布了通过使用群组的合规中心为群组内的所有项目应用和移除合规框架的能力。
我们扩展了此能力以允许群组所有者在项目级别应用和移除合规框架。这也将让群组所有者在项目级别应用和监控合规框架变得更加容易。
此应用和移除合规框架的能力仅为群组所有者可用,而项目所有者不可用。
|
|
|
|
|
|
|
|
|
|
|
|
现在您可以为服务账号设置自定义邮件地址以接受邮件通知。当创建服务账号且指定自定义邮件地址时,极狐GitLab 就会向此邮件地址发送通知。每一个服务账号必须有一个唯一的邮件地址。这可以帮您更高效地监控进程和事件。
|
|
|
|
|
|
|
|
|
|
|
|
之前,当用户授权 OAuth 应用程序时,不会生成审计事件。然而,对于安全团队而言,此事件对于监控特定极狐GitLab 实例上用户授权的 OAuth 应用程序至关重要。
在此版本中,极狐GitLab 现在提供了 用户授权的 OAuth 应用程序 审计事件来追踪用户是什么时候成功授权 OAuth 应用程序的。此新的审计事件进一步改善了您审计极狐GitLab 实例的能力。
|
|
|
|
|
|
|
|
|
|
|
|
现在您可以在凭据清单中使用搜索和过滤能力。这使得识别符合特定用户自定义参数的令牌和密钥变得更加容易,这些参数包括在特定时间范围内过期的令牌。 之前,凭证清单中的条目以前是以静态列表的形式呈现的。
|
|
|
|
|
|
|
|
|
|
|
|
现在您可以使用 API 来清除单个企业用户的所有 2FA 注册。之前,只能在 UI 上实现此功能。使用 API 就能实现自动化和批量操作,这将在需要大规模重置 2FA 的时候节省大量时间。
|
|
|
|
|
|
|
|
|
|
|
|
现在您可以在 UI 上查看非活跃的群组和项目访问令牌了。之前,极狐GitLab 只能在项目和群组访问令牌过期或撤销立马被删除。非活跃令牌记录的缺失让审计和安全审核更加困难。现在,极狐GitLab 可以获取近 30 天内非活跃项目和群组访问令牌的记录,这能够帮助团队为了合规和监控目的而对令牌使用和过期进行追踪。
|
|
|
|
|
|
|
|
|
|
|
|
我们很高兴地宣布为实例内的共享群组扩展了可见性。之前,尽管您可以在群组的概览页面上看到共享项目的详情,但是无法查看你的群组收到了哪些群组的加入邀请。现在您可以在群组概览页面上同时看到 共享项目 和 共享群组 选项卡,从而全面了解你的群组在整个组织内是如何建立关联和进行共享的。这让你能更轻松地在整个组织范围内审核和管理群组访问权限。
|
|
|
|
|
|
|
|
|
|
|
|
用户可以选择将其个人资料公开或私有。现在,管理员可以控制用户是否有将其个人资料变为私有的选项。在管理中心中,“允许用户将其个人资料私有化”用来控制此设置。此设置默认启用,也就意味着允许用户选择私有化个人资料。
微信订阅号
扫一扫关注微信订阅号,
获取最前沿的极狐GitLab资讯