保护 Git 身份验证和改进的管道可伸缩性

我们很高兴地宣布 Azure DevOps 中的新增强功能,以提高安全性和简化工作流。 “生成 Git 凭据”按钮已从 Repos 和 Wiki 中的“克隆存储库”对话框中删除,这与迁移到 Microsoft Entra 令牌进行身份验证保持一致,从而帮助团队采用更安全高效的 Git 工作流。

此外,我们很高兴地宣布,Azure Pipelines 中的托管的 DevOps 资源池现已正式发布。 此功能可增强 Azure DevOps 虚拟机规模集代理池的可伸缩性、可靠性和简化的管理。

有关详细信息,请查看发行说明。

概况

GitHub 为 Azure DevOps 提供的高级安全功能

Azure Pipelines(Azure 管道服务)

测试计划

概况

删除 Repos 和 Wiki 中的“生成 Git 凭据”按钮

生成 Git 凭据按钮已从存储库和 Wiki UI 的克隆存储库对话框中删除,以支持转换为用于在 Git 操作中进行身份验证的 Microsoft Entra 令牌。 以前,选择此按钮会使用 vso.code 范围生成一个有效期为 7 天的新个人访问令牌 (PAT)。 每次使用都创建了一个新的 PAT,这通常会导致不必要的凭据。

若要增强安全性和简化身份验证,请考虑在 Repos 和 Wiki 中使用 Entra 令牌执行临时 Git 克隆作。 文档可用于帮助你通过 命令行 或在 Git 凭据管理器 (GCM)中配置身份验证。

虽然 PAT 仍然可用于 Git 操作,但现在必须从个人访问令牌页面手动创建具有相应 vso.code 范围的令牌。 确保仅在需要时激活 PAT,并在不再使用时吊销。 最佳做法是将 PAT 安全地存储在 Azure Key Vault(AKV)等机密管理服务中,并定期轮换它们。

对 Azure DevOps 允许的 IP 地址进行更新

我们很高兴地宣布对网络基础结构的持续改进,以提高性能和可靠性。 作为这项工作的一部分,将引入新的 IP 地址。 为了确保不间断的访问,请尽快将新的 IP 地址添加到防火墙允许列表。

IP V4 范围:

  • 150.171.22.0/24
  • 150.171.23.0/24
  • 150.171.73.0/24
  • 150.171.74.0/24
  • 150.171.75.0/24
  • 150.171.76.0/24

IP V6 范围:

  • 2620:1ec:50::/48
  • 2620:1ec:51::/48
  • 2603:1061:10::/48

有关更多详细信息,请访问我们的博客: 更新到 Azure DevOps 允许的 IP 地址

GitHub 为 Azure DevOps 提供的高级安全功能

用于默认分支更改的 GitHub 高级安全更新

在 GitHub 高级安全性中,导航到“高级安全”选项卡会首先显示默认分支的警报状态,而“安全概述”视图仅拉取默认分支的警报信息。

现在,高级安全检测到对默认分支的更改,并在更改默认分支分配后不久更新安全概述和存储库级警报视图。

自托管代理的 CodeQL 安装支持代理配置

如果已配置网络代理并在 enableAutomaticCodeQLInstall 任务中使用了 AdvancedSecurity-CodeQL-Init 变量,则任务在将 CodeQL 工具缓存下载到自承载代理时,可能之前遇到错误消息 [warning] Maximum number of redirects exceeded。 通过此更新,我们引入了对网络代理的处理,以便自动安装成功运行。

警报分支选择器现在显示所有已成功扫描的分支

GitHub 高级安全性中的分支选取器已更新,以显示具有成功扫描的所有分支,即使未检测到任何漏洞。 以前,只显示包含警报的分支,因此很难确认扫描是否已成功完成。

存储库级警报 UX 和 分析 - 列表 API 现在返回具有成功提交依赖项和代码扫描的 SARIF 分支,从而提高扫描可见性。

GitHub 高级安全性中的增强拉取请求注释

在此版本中,我们通过以下方法改进了 GitHub 高级安全性中的拉取请求批注体验:

  • 增加依赖项扫描注释:即使高级安全无法确定物理文件位置, 高级安全也会显示拉取请求注释。

  • 自动关闭:如果关联警报被关闭, 的拉取请求评论将自动被解决。 我们还为拉取请求事件引入了性能改进和批处理处理,以便获得更流畅的体验。

获取警报 API 的改进

通过此更新,我们引入了高级安全获取警报 API 的新改进:

  • 最小 API 扩展选项:使用有效负载中的参数 expand=minimal 提取最小版本的警报 API。 例如:https://advsec.dev.azure.com/{organization}/{project}/_apis/Alert/repositories/{repository}/Alerts?expand=minimal
  • 警报的新元数据:警报 API 现在返回特定的 AdditionalProperties,例如依赖项警报的 CVE ID 或公告 ID,以及代码扫描警报的标记。

  • 批处理警报 API 调用:将 criteria.alertIds={alertId1},{alertId2} 与警报 API 配合使用,以接收以逗号分隔的警报 ID 列表的详细信息。 例如:https://advsec.dev.azure.com/{organization}/{project}/_apis/Alert/repositories/{repository}/Alerts?criteria.alertIds=100,200,130

Azure Pipelines(Azure 管道服务)

Azure 经典服务连接即将停用

云服务(也称为 Azure Service Manager(ASM)是 Azure 的原始部署模型。 自 2014 年由 Azure 资源管理器(ARM)取代以来,它现已 停用。 因此,我们将停止创建新的 Azure 经典服务连接。 但是,现有的 Azure 经典服务连接将不受影响。

托管 DevOps 池已正式发布

托管的 DevOps 池是 Azure DevOps 虚拟机规模集代理池的发展。 它提供更好的池可伸缩性和可靠性,简化了池管理,并允许在自定义 Azure VM 上使用Microsoft托管代理中的 VM 映像。

托管 DevOps 池现已正式发布。 可以在此处阅读有关托管 DevOps 池功能以及为 GA 新增的功能, 此处

实现对 Azure 存储帐户的无机密访问的新任务

可将 AzureVmssDeployment、JavaToolInstaller、JenkinsDownloadArtifacts 任务配置为使用 Azure 存储:

- task: AzureVmssDeployment@1
  inputs:
    (required properties)
    azureSubscription: <service connection>
    customScriptsStorageAccount: <storage account>
- task: JavaToolInstaller@2
  inputs:
    (required properties)
    jdkSourceOption: 'AzureStorage'
    azureResourceManagerEndpoint: <service connection>
    azureStorageAccountName: <storage account>
- task: JenkinsDownloadArtifacts@2
  inputs:
    (required properties)
    artifactProvider: 'azureStorage'
    ConnectedServiceNameARM: <service connection>
    storageAccountName: <storage account>

现已生成新的任务版本,现在使用 Azure RBAC 而非存储帐户密钥/SAS。 新任务要求将 存储 Blob 数据参与者 角色分配给已配置的服务连接标识。

需要为任务中使用的服务连接分配适当的 Azure RBAC 角色才能访问 Azure 存储帐户。 请参阅 分配 Azure 角色以访问 blob 数据

AzureVmssDeployment@1 任务需要配置额外的 RBAC 角色,以访问 customScriptsStorageAccount中配置的存储帐户。

  1. azureSubscription 服务连接:贡献者虚拟机贡献者 角色在虚拟机规模集上
  2. azureSubscription 服务连接:在保存自定义脚本的存储帐户上担任存储 Blob 数据贡献者 角色
  3. 虚拟机规模集系统分配的托管标识:在保存自定义脚本的存储帐户上 存储 Blob 数据读取者 角色

测试计划

现在可以直接从“测试计划”工作项轻松访问“测试计划”页。 我们正在添加一个明确的直接入口点,帮助你快速导航到相应的测试计划,而无需执行额外的步骤。 这种改进使跟踪测试计划更快、更直观,确保在管理测试工作流时获得更流畅的体验。

Gif 用于演示测试计划、套件 ID 搜索详细信息。

尝试一下,通过 电子邮件告诉我们 你的想法吧!

Azure 测试计划 Bug 修复

通过此冲刺,我们对 Azure 测试计划进行了更新,以解决多个 bug 并改进可用性。 以下是已修复的内容:

  • 修复了在测试计划之间切换时测试套件未正确更新的问题。 有关初始 bug 的详细信息,请参阅此 DevComm 帖子

  • 修复了测试 & 反馈扩展中的问题,其中会话报告无法下载并将用户重定向到空白页。

  • 修复了新 Boards 中心中的一个问题,即共享步骤在旧工作项表单中打开时,用户无法删除讨论部分的评论。 此 DevComm 发布

  • 修复了“所有者”子句筛选测试结果不起作用的问题,导致查询返回错误而不是结果。 此 DevComm 发布

在 XLSX 中使用自定义列导出测试用例

现在可以在 XLSX 中导出自定义列。 我们听到了您的反馈,您请求测试计划支持使用自定义列导出测试用例。 此功能可让你更灵活地控制共享和分析的数据。 此外,它还有助于根据需求定制导出,确保导出的信息相关且可作。

自动暂停手动测试用例运行

使用自动暂停测试用例运行的情况下,测试运行永远不会丢失进度。 如果工作中断,此新功能会自动暂停测试用例运行,确保保存部分进度而无需手动暂停。 无论是离开会话还是关闭会话,都可以在离开的位置轻松恢复测试用例,降低数据丢失的风险和改进工作流。 通过简化暂停和恢复过程,自动暂停可帮助你专注于测试,而无需担心丢失进度。

请尝试一下,然后通过 电子邮件告诉我们你的想法

后续步骤

注释

这些功能将在未来两到三周内推出。

请去 Azure DevOps 上看看。

如何提供反馈

我们很乐意听到你对这些功能的看法。 使用帮助菜单报告问题或提供建议。

提出建议

你还可以在 Stack Overflow 上获取社区的建议和问题解答。

谢谢

Silviu Andrica