在本地 Git 安裝中,我可以使用“git show”來查找特定的提交,給定一個 SHA1 哈希前綴、一個分支名稱或一個標簽名稱。
如何使用 TFS/Azure Devops API 實作相同的目標?
我已經嘗試過Microsoft.TeamFoundation.SourceControl.WebApi.GitHttpClientBase.[GetCommitsAsync][1]()了,但是對于SearchCriteria.ItemVersionandCompareVersion,我需要提供一個VersionType(分支、標簽或提交),所以與 git-show 不同,我已經必須知道我擁有什么樣的識別符號。此外,如果是“提交”,則必須是完整的 SHA1 哈希;前綴不行。此外,我想準確地找到一個提交,而不是整個串列。
并且Microsoft.TeamFoundation.SourceControl.WebApi.GitHttpClientBase.GetCommitAsync()僅適用于完整的 SHA1 哈希,不適用于前綴、分支或標簽。
是否有任何與“git show”等效的 API 呼叫?
如果版本很重要,它是 TFS 服務器 2019 (Dev17.M153.5)。
uj5u.com熱心網友回復:
Azure DevOps 在 UI 的提交頁面上有一個搜索框。將其與部分哈希一起使用會給出以下查詢條件。它使用GET Commit REST 方法:
{
"fromCommitId": "b86c400000000000000000000000000000000000",
"toCommitId": "b86c4fffffffffffffffffffffffffffffffffff",
"skip": 0,
"maxResultCount": 25
}
如果您知道全名(分支、標簽或searchCriteria.itemVersion.version完整searchCriteria.itemVersion.versionType提交id),或者將branchtagcommit
我使用 Chrome 開發工具來捕獲請求。最壞的情況是短哈希不是唯一的,它會回傳多個選項。
對于分支和標簽,您還可以使用refsAPI,它有一個 start-with 和一個 contains 選項來查找您正在尋找的 ref。
例子:
GET https://dev.azure.com/fabrikam/_apis/git/repositories/{repositoryId}/refs?filter=heads/&filterContains=replacer&api-version=6.0
搜索filter=heads/分支和filter=tags/標簽,或將主過濾器留空以搜索兩者。
從理論上講,這個 API 可以回傳多個物件,因為它使用和startsWith用于.filtercontainsfilterContains
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/415329.html
標籤:
上一篇:kafka學習筆記
