VSTS:组织名称的内置变量?
VSTS: Built in variable for organization name?
在 Azure DevOps REST API 文档中描述的许多调用中,我需要提供组织的名称,例如:
https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases?api-version=5.0-preview.8
我可以从System.TeamProject获得的项目。我希望组织名称类似,例如:
System.TeamFoundationCollectionName
这似乎不可用。我什至在代理上打印了我所有的环境变量,但没有看到任何完全符合需要的东西。当然,我可以从其他值之一解析它,但这似乎很脆弱,因为 MS 似乎喜欢更改 URL 的格式。
我也无法对组织名称进行硬编码,因为此发布定义将存在于多个组织中,我们不想为每个组织手动更新它。其他人是如何解决这个问题的?
尝试使用 System.TeamFoundationServerUri
和 System.TeamFoundationCollectionUri
构建您的 API 请求。他们有组织。
https://docs.microsoft.com/en-us/azure/devops/pipelines/release/variables?view=vsts&tabs=batch
编辑:SYSTEM_TEAMFOUNDATIONSERVERURI/BUILD_PROJECTNAME/_apis/release/releases?api-version=5.0-preview.8
目前看来 organization
没有这样的变量,另外,变量 return 旧的 URL (xxx.visualstudio.com
) 而不是新的 URL (dev.azure.com/xxx
) 因此,如果您使用 System.TeamFoundationCollectionName
,则 API 应该在没有 {organization}
的情况下工作:
https://System.TeamFoundationCollectionName/{project}/_apis/release/releases?api-version=5.0-preview.8
.
在 Powershell 中,执行此操作:
# Where SYSTEM_TEAMFOUNDATIONCOLLECTIONURI=https://some_org_name.visualstudio.com/
([System.Uri]$Env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI).Host.split('.')[-3] # returns 'some_org_name'
现在,只需将其分配给一个变量并在您喜欢的任何地方使用它。 "SYSTEM_TEAMPROJECT" 是项目名称,所以不需要在那里做任何解析。它已经可用。
在 Azure DevOps REST API 文档中描述的许多调用中,我需要提供组织的名称,例如:
https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases?api-version=5.0-preview.8
我可以从System.TeamProject获得的项目。我希望组织名称类似,例如:
System.TeamFoundationCollectionName
这似乎不可用。我什至在代理上打印了我所有的环境变量,但没有看到任何完全符合需要的东西。当然,我可以从其他值之一解析它,但这似乎很脆弱,因为 MS 似乎喜欢更改 URL 的格式。
我也无法对组织名称进行硬编码,因为此发布定义将存在于多个组织中,我们不想为每个组织手动更新它。其他人是如何解决这个问题的?
尝试使用 System.TeamFoundationServerUri
和 System.TeamFoundationCollectionUri
构建您的 API 请求。他们有组织。
https://docs.microsoft.com/en-us/azure/devops/pipelines/release/variables?view=vsts&tabs=batch
编辑:SYSTEM_TEAMFOUNDATIONSERVERURI/BUILD_PROJECTNAME/_apis/release/releases?api-version=5.0-preview.8
目前看来 organization
没有这样的变量,另外,变量 return 旧的 URL (xxx.visualstudio.com
) 而不是新的 URL (dev.azure.com/xxx
) 因此,如果您使用 System.TeamFoundationCollectionName
,则 API 应该在没有 {organization}
的情况下工作:
https://System.TeamFoundationCollectionName/{project}/_apis/release/releases?api-version=5.0-preview.8
.
在 Powershell 中,执行此操作:
# Where SYSTEM_TEAMFOUNDATIONCOLLECTIONURI=https://some_org_name.visualstudio.com/
([System.Uri]$Env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI).Host.split('.')[-3] # returns 'some_org_name'
现在,只需将其分配给一个变量并在您喜欢的任何地方使用它。 "SYSTEM_TEAMPROJECT" 是项目名称,所以不需要在那里做任何解析。它已经可用。