git - 使用 PRid 使用 Cherry-pick api 时出现问题
问题描述
我正在尝试在 power shell 中使用 Git-Cherry API 来自动化通过 PRid 挑选 PR 的过程。
$Body = @{
"generatedRefName" = "refs/test";
"ontoRefName" = $BranhcName;
"repository" = $RepoName;
"source" = $PRid #Prid is an integer value
}
#Cherr-Pick: https://docs.microsoft.com/en-us/rest/api/azure/devops/git/cherry%20picks/create?view=azure-devops-rest-6.0#gitasyncrefoperationsource
Invoke-WebRequest @req -Method POST -Uri "${baseuri}/git/repositories/${RepoName}/cherryPicks?${api}" -Body ($Body|ConvertTo-Json)
当我尝试以这种方式挑选时,我遇到了如下问题,
Invoke-WebRequest : {"$id":"1","innerException":null,"message":"必须指定一个樱桃选择的确切来源。","typeName":"Microsoft.TeamFoundation.Git. Server.GitAsyncRefOperationInvalidSourceException, Microsoft.TeamFo undation.Git.Server","typeKey":"GitAsyncRefOperationInvalidSourceException","errorCode":0,"eventId":3000} At line:99 char:1 + Invoke-WebRequest @req -Method POST -Uri "${baseuri}/git/repositories ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [调用-WebRequest],WebExce ption + FullyQualifiedErrorId:WebCmdletWebResponseException,Microsoft.PowerShell.Commands。调用WebRequestCommand
这是什么错误?- 根据我的理解,我只给出了一个来源。
解决方案
请求正文中的repository
和source
参数是对象类型。但是我看到您为它们分配了字符串和整数。请在此处查看其余 api (单击下面屏幕截图中突出显示的内容以查看对象类型的详细信息)。
您应该将repository
and定义source
为对象类型。请参见下面的示例:
$Body = @{
"generatedRefName" = "refs/heads/dev-on-master";
"ontoRefName" = "refs/heads/master";
"repository" = @{
"name"= $RepoName
};
"source" = @{
"pullRequestId"= $PRid
}
}
更新:
我使用以下单个 commitId 进行了测试。它工作得很好。
$Body= @{
"generatedRefName" = "refs/heads/commit-on-master";
"ontoRefName" = "refs/heads/master";
"repository" = @{
"name"= $RepoName
};
"source" = @{
"commitList"= @(
@{
"commitId" = "5cedf148826ed783786e5b9b6932cc07ec9d745e"
}
)
}
}
上述请求体需要转换为更深层次的 json:-Body ($Body|ConvertTo-Json -Depth 100)
Invoke-WebRequest @req -Method POST -Uri "${baseuri}/git/repositories/${RepoName}/cherryPicks?${api}" -Body ($Body|ConvertTo-Json -Depth 100)
推荐阅读
- javascript - 将 php 变量作为函数参数传递
- r - 用行值替换变量名,反之亦然
- python - 将 csv 数据框转换为 html 表
- python - simple if..else logic in python not working
- php - SQL 嵌套为一篇博文选择多个标签
- angular - 如何在 Angular 6 中访问文件浏览器路径
- python - 带有事务块的 Python Postgres 查询
- html - angular 6 ngx 芯片无法正确显示
- python - 如何将随机数添加到 numpy 数组的子部分?
- macos - osascript 比脚本编辑器慢得多