减少导入查询的时间 and/or 在 Azure DevOps 中复制仪表板

Cut down time importing queries and/or copying dashboards in Azure DevOps

我花了一些时间在 Azure DevOps 中的一个项目上收集仪表板。我有 14 个查询支持它,并使用了 3 种不同的小部件类型。杰出的。我遇到的问题是我现在需要将其推广到 70 多个项目。

我使用 WIQL 市场扩展导出了所有查询,但似乎一次只能将它们导入到其他项目中,这非常耗时。然后,我需要将正确的查询与仪表板中的正确小部件相匹配,这又很耗时。我一直在寻找一种复制仪表板的方法,但从我发现的情况来看似乎不存在这种方法。

任何人都可以建议我减少时间的方法吗?即使这只是让我在不同项目中查询的一种方式 - 这也会节省大量时间。

我也尝试过谷歌搜索和 YouTube,但似乎遇到了困难 - 也许我的搜索词有误? - 因为我被定向到有关导入工作项的页面和说明,而不是查询。

除了python script and c# code shared in this ticket之外,您还可以尝试使用RESTAPI复制仪表板。以下是步骤:

  1. Get a dashboard by its ID.

    获取https://dev.azure.com/{organization}/{project}/{team}/_apis/dashboard/dashboards/{dashboardId}?api-version=6.1-preview.3

  2. 复制获取仪表板 REST 的响应正文API并删除仪表板 ID。

  1. Create the supplied dashboard.

    POST https://dev.azure.com/{organization}/{project}/{team}/_apis/dashboard/dashboards?api-version=6.1-preview.3

请将响应主体粘贴到此 REST API 中的请求主体。 你只需要在这里更改项目名称和团队名称即可复制到不同的项目。 4.Currently,一些小部件设置可能会得到空值,您可能需要在新的仪表板中手动配置它们。

此外,产品组正在开发此功能。这是最新更新的feature timeline. Please track and follow this ticket

如果您熟悉 PowerShell,则可以使用 AzurePipelinesPS 复制仪表板或查询。 Copy-APDashboard 和 Copy-APQuery 命令支持跨集合和跨项目复制。

仪表板

下面会将仪表板复制到与源相同的项目中。

Copy-APDashboard -Name 'My Current Dashboard' -Session 'mySourceSession' 

以下会将仪表板复制到同一集合中的不同项目中。

Copy-APDashboard -Name 'My Current Dashboard' -Session 'mySourceSession' -TargetProject 'Other Project Name'

查询

下面会将名为 'My Query To Copy' 的查询复制到名为 'Project2' 的项目中。

Copy-APQuery -QueryId 'Shared Queries/My Query To Copy' -Name 'My New Query' -TargetProject 'Project2' -Session 'mySourceSession' 

有关如何创建会话并将其保存以供以后的 PowerShell 会话使用的更多详细信息,请参阅 AzurePipelines Session Management

:

Copy-APDashboard 不复制底层查询,只复制仪表板小部件和范围。您必须使用 Copy-APQuery 复制查询。