Azure Devops API:获取存储库上的最新操作

efzxgjgh  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(111)

我正在使用Azure Devops Rest API,我正在尝试找出获取特定存储库上的最新操作时间戳(日期)的最佳方法。
现在我尝试获取提交和标签,并检查那里的动作数据。但是我发现azure不支持只获取最新的标签,所以我必须对所有的标签进行分页。
我使用这些端点:

所有这些处理都需要大量的内存,所以我需要一些不同的东西。
也许有人能提出一个如何做到这一点的想法。
谢谢

bgibtngc

bgibtngc1#

您可以尝试在调用REST API时指定searchCriteria
例如,要从特定的存储库获取最新的提交,请参阅Commits - Get Commits了解详细信息。

GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/commits?searchCriteria.$top={searchCriteria.$top}&api-version=6.0

下面的PowerShell供大家参考:

Param(
    [string]$orgurl = "https://dev.azure.com/{organization}",
    [string]$project = "Test0924",
    [string]$repoid = "e7ad43eb-ecad-4098-93b4-b63fdf88711a",
    [string]$user = "",
    [string]$token = "xxx"
)
    
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))

$searchCriteria = "$" + "top=1"

#Get the latest commit from a specific repo 
$Url = "$orgurl/$project/_apis/git/repositories/$repoid/commits?searchCriteria.$searchCriteria&api-version=6.0" 

$commit = Invoke-RestMethod -Uri $Url -Method Get -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
cls
$commit.value.committer | select name, email, date

相关问题