如何使用azure devops api或其他方法从拉取请求获取目标分支?

如何使用azure devops api或其他方法从拉取请求获取目标分支?,azure,azure-devops,devops,azure-devops-rest-api,Azure,Azure Devops,Devops,Azure Devops Rest Api,我正在尝试为3env(dev、qa、prod)创建一个构建管道,但能够选择从哪个构建管道进行构建 我们的想法是将管道保留在prod分支机构或其他回购协议上,而不是在每个环境中都有管道。 现在的问题是,在PR上,它将只在主(prod)分支上启动管道,因为它将包含yml文件 是否有方法获取PR目标分支,以便为PR触发器添加附加条件?您仍然可以有一个生成管道。 PR触发器用于github/bitbucket存储库。您可以创建触发代码的分支策略等 每个步骤/任务的条件: 例如: - stage: B

我正在尝试为3env(dev、qa、prod)创建一个构建管道,但能够选择从哪个构建管道进行构建

我们的想法是将管道保留在prod分支机构或其他回购协议上,而不是在每个环境中都有管道。 现在的问题是,在PR上,它将只在主(prod)分支上启动管道,因为它将包含yml文件


是否有方法获取PR目标分支,以便为PR触发器添加附加条件?

您仍然可以有一个生成管道。 PR触发器用于github/bitbucket存储库。您可以创建触发代码的分支策略等

每个步骤/任务的条件: 例如:

- stage: B
  condition: and(succeeded(), eq(variables['build.sourceBranch'], 'refs/heads/master'))
在该条件下,仅当源分支名为“master”时,此阶段才会运行

如何使用azure devops api或其他方法从拉取请求获取目标分支

同意Yan Sklyarenko的观点。Azure devops为我们提供了一些功能,如:

要从pull请求中获取目标分支,我们可以使用预定义变量
System.PullRequest.TargetBranch

因此,我们可以使用此预定义变量作为条件:

condition: and(succeeded(), eq(variables['System.PullRequest.TargetBranch'], 'refs/heads/master'))

有一个包含目标分支名称的名称:
System.PullRequest.TargetBranch
问题如何?下面的答案是否解决了您的问题,如果是,您可以接受它作为一个答案,这样它可以帮助其他社区成员谁得到相同的问题,我们可以存档此线程,谢谢。如果没有,请告诉我们您是否需要进一步的帮助。
condition: and(succeeded(), eq(variables['System.PullRequest.TargetBranch'], 'refs/heads/master'))