我试图根据提交的分支来构建构建定义。但是,我找不到与提交信息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": "fabrikamfiber3@hotmail.com",
"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": "fabrikamfiber3@hotmail.com",
"date": "2014-01-29T23:32:09Z"
},
"committer": {
"name": "Chuck Reinhart",
"email": "fabrikamfiber3@hotmail.com",
"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
答案 0 :(得分:0)
我不知道VSTS api,但我认为api没有提供开箱即用的功能。 由于提交不属于分支但包含在一个或多个分支中的充分理由。
分支只是git历史树(名为DAG)的引用。
您必须自己计算数据。 通过列出分支和每个分支,从提交到他们的父母,直到您到达根提交。 这非常昂贵!
如果您想验证提交是否在分支中,也许稍微容易一点,仅对单个分支执行此操作。
在这里,我看到你接受了root commit(没有父节点),所以它应该包含在所有分支中(除非你有一个存储库有多个root提交,这是非常罕见的)
答案 1 :(得分:0)
不,没有这样的REST API来通过提交来获取分支名称。并且它也无法访问,因为提交可以属于多个分支。让我们通过下面的图表来说明:
A---B---E---F master
\ /
C---D dev
这是一个master
和dev
分支的分支结构。并且dev
分支合并到master
并提交F
。如果要根据提交D
获取分支名称,您将获得两个分支名称。提交D
属于两个分支:dev
(第一个父级)和master
(第二个父级)。
如果你想让分支名称包含给定的提交,你可以使用git命令:
git branch --contains <commit>
答案 2 :(得分:0)