在发布到生产环境之前将变更请求 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 Name、Build Id、Environment 和 批准状态,如果当前版本不存在或 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 等待其批准。在我看来,这可能是一种更具成本效益的方法,因为它不需要额外的基础设施,但学习曲线陡峭,开发和调试的复杂性远高于开发可在本地测试的简单函数应用程序。
我们将 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 Name、Build Id、Environment 和 批准状态,如果当前版本不存在或 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 等待其批准。在我看来,这可能是一种更具成本效益的方法,因为它不需要额外的基础设施,但学习曲线陡峭,开发和调试的复杂性远高于开发可在本地测试的简单函数应用程序。