GitHub 集成 - 改进了 AB# 验证

通过此更新,我们很高兴提供 Azure Boards + GitHub 集成中最新改进的专用预览版!

此外,管理员现在可以绕过正在运行的审批和检查来完成 Azure Pipelines 中的修补程序。

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

常规

Azure Boards

Azure Pipelines

报告

常规

Azure DevOps Web 扩展 SDK 的新版本

通过此更新,我们将发布新版本的 Azure DevOps Web 扩展 SDK。 客户端 SDK 使 Web 扩展能够与主机帧通信。 它可用于:

  • 通知主机扩展已加载或出错
  • 获取有关当前页的基本上下文信息(当前用户、主机和扩展信息)
  • 获取主题信息
  • 获取在 REST 调用中用于对 Azure DevOps 的授权令牌
  • 获取主机帧提供的远程服务

可以在 azure-devops-extension-sdk 包文档中找到完整的 API 参考。 此新版本提供对以下模块的支持:

  • ES 模块支持: SDK 现在除了现有的 AMD(异步模块定义)模块外,还支持 ES (ECMAScript) 模块。 现在,可以使用 ES 模块语法导入 SDK,该语法提供性能改进并减少应用程序大小。

  • AMD 模块的向后兼容性: 对 AMD 模块的现有支持保持不变。 如果项目使用的是 AMD 模块,可以像以前一样继续使用它们,而无需进行任何更改。

如何使用:

对于 ES 模块,可以使用 import 语句导入模块:

import * as SDK from 'azure-devops-extension-sdk';
// Use the module here

如果使用 AMD 模块,可以使用函数 require 继续导入 SDK:

require(['azure-devops-extension-sdk'], function(SDK) {

  // Use the module here
});

Azure Boards

GitHub 集成 - 改进了 AB# 验证(个人预览版)

我们开始了 Boards + GitHub 集成改进之旅,方法是在使用 AB# 语法链接到工作项时解决机器人响应。 使用 AB#{ID} 语法链接到拉取请求时,唯一知道链接是否成功的方法就是查看工作项或将转换通知 AB#{ID} 为链接。

今天,我们将推出一个个人预览版,其中包含 Azure Boards GitHub 应用的多项增强功能,以更好地告知你指向工作项的链接有效或无效。 这有助于识别错误的链接,并在合并拉取请求之前修复它们。

Screenshots of Team Settings.

如果你有兴趣参与个人预览版,请通过电子邮件直接与我们联系。 请务必包括组织名称(dev.azure.com/{organization})

请查看公共路线图,详细了解即将推出的 Azure Boards + GitHub 集成功能

Azure Pipelines

Azure Pipelines 任务使用 Node 16

管道中的任务使用运行程序执行,大多数情况下使用 Node.js。 利用 Node 作为运行程序的 Azure Pipelines 任务现在都使用 Node 16。 由于 Node 16 是本机支持 Apple silicon 的第一个 Node 版本,因此它还完成了对 Apple Silicon 上的 macOS 的完整任务支持。 在 Apple 硅上运行的代理不需要 Rosetta 运行。

随着 Node 16 生命周期结束日期的 推进,我们已开始使用 Node 20 运行任务。

宣布停用已弃用的任务

Azure Pipelines 有许多已弃用的任务。 弃用的任务将于 2024 年 1 月 31 日停用。 为了帮助你识别正在使用已弃用任务的管道,如果使用此类任务,管道将显示警告。 我们更新 了任务参考 ,以清楚地传达弃用状态和停用日期。

以下任务已弃用,并开始发出警告:

  • AppCenterDistributeV1、
  • AppCenterDistributeV2
  • AzureMonitorV0
  • ChefKnifeV1
  • ChefV1
  • CondaEnvironmentV1
  • DeployVisualStudioTestAgentV2
  • DotNetCoreInstallerV1
  • IISWebAppDeployment
  • QuickPerfTestV1
  • RunJMeterLoadTestV1
  • RunLoadTestV1
  • SqlServerDacpacDeploymentV1
  • XamarinTestCloudV1

更新管道以在 2024 年 1 月 31 日之前使用较新的任务版本或替代项。

AzureRmWebAppDeployment 任务支持 Microsoft Entra ID 身份验证

AzureRmWebAppDeploymentV3 和AzureRmWebAppDeployment@4任务已更新,以支持禁用基本身份验证App 服务。 如果在App 服务上禁用了基本身份验证,AzureRmWebAppDeploymentV3/4 任务将使用 Microsoft Entra ID 身份验证对 App 服务 Kudu 终结点执行部署。 这要求在代理上安装最新版本的 msdeploy.exe,这是在 windows-2022/windows 最新 托管代理 (请参阅 任务参考)上的情况。

对 审批 REST API 的改进

通过将用户所属的组包括在搜索结果中,改进了分配给用户的审批。

审批现在包含有关管道运行的信息。

例如,以下 GET REST API 调用 https://dev.azure.com/fabrikam/FabrikamFiber/_apis/pipelines/approvals?api-version=7.2-preview.2&top=1&assignedTo=john@fabrikam.com&state=pending 返回

{
    "count": 1,
    "value":
    [
        {
            "id": "7e90b9f7-f3f8-4548-a108-8b80c0fa80e7",
            "steps":
            [],
            "status": "pending",
            "createdOn": "2023-11-09T10:54:37.977Z",
            "lastModifiedOn": "2023-11-09T10:54:37.9775685Z",
            "executionOrder": "anyOrder",
            "minRequiredApprovers": 1,
            "blockedApprovers":
            [],
            "_links":
            {
                "self":
                {
                    "href": "https://dev.azure.com/fabrikam/26dcfaeb-d8fe-495c-91cb-fec4acb44fbb/_apis/pipelines/approvals/7e80b987-f3fe-4578-a108-8a80c0fb80e7"
                }
            },
            "pipeline":
            {
                "owner":
                {
                    "_links":
                    {
                        "web":
                        {
                            "href": "https://dev.azure.com/buildcanary/26dcfaeb-d8fe-495c-91cb-fec4acb44fbb/_build/results?buildId=73222930"
                        },
                        "self":
                        {
                            "href": "https://dev.azure.com/buildcanary/26dcfaeb-d8fe-495c-91cb-fec4acb44fbb/_apis/build/Builds/73222930"
                        }
                    },
                    "id": 73222930,
                    "name": "20231109.1"
                },
                "id": "4597",
                "name": "FabrikamFiber"
            }
        }
    ]
}

绕过审批和检查

审批和检查有助于保护对重要资源(例如服务连接、存储库或代理池)的访问。 常见的用例是在部署到生产环境时使用审批和检查,并希望保护 ARM 服务连接。

假设你在服务连接上添加了以下检查:审批、工作时间检查和调用 Azure 函数检查(强制在不同区域之间强制执行延迟)。

现在,假设必须执行修补程序部署。 启动管道运行,但它不会继续,它会等待大部分检查完成。 你负担不起等待审批和检查完成。

在此冲刺中,我们允许绕过运行审批和检查,以便完成修补程序。

可以绕过运行审批、工作时间、调用 Azure 函数和调用 REST API 检查。

绕过审批。

Screenshot of Bypass an Approval.

绕过工作时间检查。

Screenshot of Bypass Business Hours check.

绕过调用 Azure 函数检查。 绕过工作时间检查。

Screenshot of Bypass Invoke Azure Function check.

绕过检查后,可以在“检查”面板中看到它。

Screenshot of check bypassed.

仅当是定义检查的资源的管理员管理员时,才能绕过检查。

支持所需的模板检查中的 GitHub 企业服务器

模板 是一种安全机制,可用于控制组织中的管道的各个阶段、作业和步骤。

通过“需要模板”检查,可以在访问受保护的资源(例如代理池或服务连接)之前强制实施管道从一组已批准的模板扩展。

从此冲刺开始,可以指定位于 GitHub Enterprise Server 存储库中的模板。

Screenshot of required YAML template.

重新运行调用 Azure 函数检查

假设你在多个阶段部署系统。 在部署第二个阶段之前,有一个“批准”和“调用 Azure 函数”检查,该检查在系统已部署的一部分运行理智。

查看审批请求时,你会注意到两天前运行了理智检查。 在此方案中,你可能知道另一个部署影响了理智检查的结果。

通过此更新,可以重新运行调用 Azure 函数和调用 REST API 检查。 此功能仅适用于成功且没有重试的检查。

Screenshot of dynamic check.

注意

仅当是定义检查的资源的 管理员istrator 时,才能重新运行检查。

报表

工作项筛选

我们很高兴地宣布 工作项图表筛选。 此功能可让你将鼠标悬停在工作项图表上,以便快速概述并向下钻取到特定图表段以获取详细见解。 不再需要创建自定义查询来访问所需的确切数据片段。 现在,只需单击几下鼠标即可深入了解工作项图表中的工作项。

Gif to demo work item filtering.

你的反馈对于塑造此功能的未来非常有用。 立即试用,让我们了解你在 Azure DevOps 社区的想法。

后续步骤

注意

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

前往 Azure DevOps 并了解一下。

如何提供反馈

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

Screenshot Make a suggestion.

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

此致

Silviu Andrica