Azure Devops自定义扩展和当前发行版上下文

时间:2020-04-22 00:45:02

标签: azure azure-devops azure-devops-rest-api azure-devops-extensions

使用Azure Devops Services,我需要从task.json获取触发发布的azure devops用户ID。

我有一个与Azure API Management服务绑定的数据源。这必须获得基于用户ID的Azure API管理标记。我尝试了不同的方法:

  {
    "target": "TEST",
    "endpointId": "$(ConnectedServiceName)",
    "endpointUrl": "{{endpoint.url}}/subscriptions/{{endpoint.subscriptionId}}/resourceGroups/$(ResourceGroupName)/providers/Microsoft.ApiManagement/service/$(APIM)/products?tags=**$(Release.RequestedForId)**&api-version=2019-12-01",
    "resultSelector": "jsonpath:$.value[*]",
    "resultTemplate": "{\"Value\" : \"{{{id}}}\", \"DisplayValue\" : \"{{{properties.displayName}}}\" }"
  },

我也尝试过{{Release.RequestedForId}},但没有用。

我看到了不同的数据源绑定支持资源:

tfs:teamfoundation – TFS内托管的任何微服务(例如Build,Test等) tfs:packaging –包装服务 tfs:feed –提要服务 tfs:rm –发布管理服务 tfs:governance-治理服务 tfs:ems-扩展管理服务

我仅找到了tfs:feed和tfs:teamfoundation的示例。

有没有针对用户的部分?除了Azure Devops Services REST API之外,是否还有其他信息?

中的示例很少,但没有用于用户请求的示例。

是否可以直接在task.json中获取当前的上下文释放变量或azure devops用户ID?

这将是巨大的帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

您犯了个小错误。代替Release.RequestedForId,请尝试Release.Deployment.RequestedFor中的Release.Deployment.RequestedForId

Release.Deployment.RequestedFor的文档说:

触发(开始)身份的身份的显示名称 目前正在进行部署。在TFS 2015中不可用。

示例:Mateo Escobedo

Release.Deployment.RequestedForId的文档说:

触发(开始)部署的身份标识 目前正在进行中。在TFS 2015中不可用。

例如:2f435d07-769f-4e46-849d-10d1ab9ba6ab

您已经写了here