git - 如何在 VSTS Rest API 中获取提交的分支名称?

标签 git azure-devops azure-pipelines

我正在尝试根据提交的分支来制定构建定义。但是,我在提交信息 API 中找不到与分支信息或引用信息相关的任何地方。

我的请求是这样的

https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_apis/git/repositories/278d5cd2-584d-4b63-824a-2ba458937249/commits/be67f8871a4d2c75f13a51c1d3c30ac0d74d4ef4?api-version=1.0

响应与引用完全相同:

{
"parents": [],
  "treeId": "7fa1a3523ffef51c525ea476bffff7d648b8cb3d",
  "push": {
    "pushedBy": {
      "id": "8c8c7d32-6b1b-47f4-b2e9-30b477b5ab3d",
      "displayName": "Chuck Reinhart",
      "uniqueName": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="82e4e3e0f0ebe9e3efe4ebe0e7f0b1c2eaedf6efe3ebeeace1edef" rel="noreferrer noopener nofollow">[email protected]</a>",
      "url": "https://fabrikam-fiber-inc.vssps.visualstudio.com/_apis/Identities/8c8c7d32-6b1b-47f4-b2e9-30b477b5ab3d",
      "imageUrl": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_api/_common/identityImage?id=8c8c7d32-6b1b-47f4-b2e9-30b477b5ab3d"
    },
    "pushId": 1,
    "date": "2014-01-29T23:33:15.2434002Z"
  },
  "commitId": "be67f8871a4d2c75f13a51c1d3c30ac0d74d4ef4",
  "author": {
    "name": "Chuck Reinhart",
    "email": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="9afcfbf8e8f3f1fbf7fcf3f8ffe8a9daf2f5eef7fbf3f6b4f9f5f7" rel="noreferrer noopener nofollow">[email protected]</a>",
    "date": "2014-01-29T23:32:09Z"
  },
  "committer": {
    "name": "Chuck Reinhart",
    "email": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4a2c2b283823212b272c23282f38790a22253e272b232664292527" rel="noreferrer noopener nofollow">[email protected]</a>",
    "date": "2014-01-29T23:32:09Z"
  },
  "comment": "First cut\n",
  "url": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_apis/git/repositories/278d5cd2-584d-4b63-824a-2ba458937249/commits/be67f8871a4d2c75f13a51c1d3c30ac0d74d4ef4",
  "remoteUrl": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_git/Fabrikam-Fiber-Git/commit/be67f8871a4d2c75f13a51c1d3c30ac0d74d4ef4",
  "_links": {
    "self": {
      "href": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_apis/git/repositories/278d5cd2-584d-4b63-824a-2ba458937249/commits/be67f8871a4d2c75f13a51c1d3c30ac0d74d4ef4"
    },
    "repository": {
      "href": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_apis/git/repositories/278d5cd2-584d-4b63-824a-2ba458937249"
    },
    "changes": {
      "href": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_apis/git/repositories/278d5cd2-584d-4b63-824a-2ba458937249/commits/be67f8871a4d2c75f13a51c1d3c30ac0d74d4ef4/changes"
    },
    "web": {
      "href": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_git/Fabrikam-Fiber-Git/commit/be67f8871a4d2c75f13a51c1d3c30ac0d74d4ef4"
    },
    "tree": {
      "href": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_apis/git/repositories/278d5cd2-584d-4b63-824a-2ba458937249/trees/7fa1a3523ffef51c525ea476bffff7d648b8cb3d"
    }
  }
}

如何获取提交的分支名称?

引用

https://www.visualstudio.com/en-us/docs/integrate/api/git/commits#just-the-commit 

最佳答案

不,没有这样的 REST API 可以通过提交获取分支名称。而且它也是无法访问的,因为一次提交可以属于多个分支。我们用下图来说明:

A---B---E---F master
     \     /
      C---D   dev

这是一个具有masterdev分支的分支结构。并且 dev 分支 merge 到 master 并提交 F。如果你想根据提交D获取分支名称,你将得到两个分支名称。提交 D 属于两个分支:dev(第一个父级)和 master(第二个父级)。

如果你想获取包含给定提交的分支名称,你可以使用 git 命令:

git branch --contains <commit>

关于git - 如何在 VSTS Rest API 中获取提交的分支名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45796106/

相关文章:

windows - Windows 上的 msysgit——如果有的话,我应该注意什么?

c - libgit2 如何成功提交文件?

unit-testing - 如何就 Build 管道中的单元测试失败向 Azure DevOps 的特定开发人员发送详细电子邮件?

azure-devops - 如何使用 Azure DevOps Pipelines 机器文件复制使用环境?

tfs - 从 TFS 2017 构建定义中的 'Copy Files' 步骤中排除整个文件夹/内容

azure - 获取持续部署版本的拉取请求 ID [Azure Pipelines]

git - 使用 git-revert 撤消推送 merge 的提交哈希?

git - git commit 中的文件命令

Azure Devops 从 Docker 内的 Azure Artifacts 安装 Python 包

azure - 使用破折号 (-) 作为参数中键名称的一部分