在发布到生产环境之前将变更请求 form/approval 表单集成到 Azure DevOps

Integrating change request form/approval form into Azure DevOps before a release to Production

我们将 Azure DevOps 用于我们的代码存储库,并将管道发布到生产环境。

我们还有一个单独的变更请求表(托管在 SharePoint 中),团队在 运行 实际管道之前填写并获得批准(由产品所有者、发布经理)。它包含利益相关者批准、time/date 变更、部署和回滚计划等信息。

有没有人将这种类型的变更管理类型的功能整合到 Azure DevOps 中?我想要一个集成解决方案,以便我们可以将两个流程结合在一起,最好是在单一工具 Azure DevOps 中?还有助于整合数据和报告视图。

提前致谢!

没有任何开箱即用的东西可以直接与您的自定义 SharePoint 表单集成,但是 Azure DevOps supports a number of Gates 可以从 Release 和 YAML 管道调用。开箱即用的门支持调用 REST APIs、Function Apps 和一些其他选项,可用于查询外部系统并在满足条件时自动继续。

对于您的情况,可以查询您的 SharePoint 网站以获得批准状态的函数应用程序将是最佳方法。例如,假设您的 SharePoint 列表具有 Build NameBuild IdEnvironment批准状态,如果当前版本不存在或 return 当前批准状态,您的自定义函数应用程序可以在 SharePoint 列表中创建一条记录。您可以使用查询字符串参数或作为 POST 正文的一部分(如果您愿意)将构建信息传递给 Function 应用程序。

Invoke Function App gate 应配置为每隔几分钟重试此端点,直到出现成功条件或达到最大超时。

例如,如果 SharePoint 列表中的构建已获批准,函数应用程序将 return:

{
  "status": "approved"
}

您将使用以下内容验证 API 响应:

可以通过多种不同的方式将函数应用程序与 SharePoint 集成。我的团队使用 SharePoint CSOM API,但确实存在其他选项。

如果你不想使用函数应用程序,Azure DevOps 确实支持编写你自己的自定义门。这些自定义门是 无服务器,这意味着代码由 Azure DevOps 服务器执行,并且必须在 public 互联网端点上。有一个指南可以帮助您创建 custom gates and server tasks and cites the source-code for their own tasks (InvokeRestAPI, AzureFunction, etc). My guess is you would need to create a custom task that uses chained HTTP requests, similar to the ServiceNow gate or the Azure Policy gate。 ServiceNow 集成通常在管道的早期阶段创建票证,然后使用 Gate 等待其批准。在我看来,这可能是一种更具成本效益的方法,因为它不需要额外的基础设施,但学习曲线陡峭,开发和调试的复杂性远高于开发可在本地测试的简单函数应用程序。