如果我有一个提交被合并到 20 个分支(可以有 20 个相应的 Pull 请求),是否有一个 API 可以使用原始叶提交 Id 作为参数来查找 20 个提交 Id 的列表?
GetPullRequests(string commitId)
Run Code Online (Sandbox Code Playgroud)
理想情况下会有一个 git rest API 方法来执行此操作,但我似乎找不到它。
谢谢!
这是一个示例 REST API uri,用于从 AzureDevOps 版本检索日志。
https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases/{releaseId}/logs?api-version=4.1-preview.2
动词是 GET,内容类型是“application/zip”
如何使用 powershell 通过 REST API 调用检索 zip 文件Invoke-RestMethod?
如果我传递Out-File此命令并将其另存为 zip,它不会将 API 响应的二进制输出转换为 zip。
我该怎么做 ?
我能够使用下面的请求成功创建带注释的标签(git 标签),但我无法以编程方式删除它。
POST https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/annotatedtags?api-version=4.1-preview.1
Run Code Online (Sandbox Code Playgroud)
要求:
{
"name": "wagner-test-3",
"message": "wagner-test-3",
"taggedObject": {
"objectId": "aaaaab6cad84a07b7bd65cf3519142a12f856baa"
}
}
Run Code Online (Sandbox Code Playgroud)
根据文档,没有删除端点,所以我尝试了删除引用端点,但到目前为止没有运气。它只返回 400(无效请求)。
DELETE https://dev.azure.com/{organization}/{project}/_apis/git/favorites/refs/{favoriteId}?api-version=4.1-preview.1
Run Code Online (Sandbox Code Playgroud)
回复:
{
"count": 1,
"value": {
"Message": "The request is invalid."
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢。
我正在开发一个内部应用程序,它根据内部准则创建解决方案的框架。
作为一项改进,我希望用户能够在我们的 DevOps 上自动“形式化”解决方案,他可以立即克隆并开始编码,而不是当前下载为 ZIP。
为了做到这一点,我开始查看 azure devops 文档,但无法找到通过 API 创建存储库的方法...
我怎样才能做到这一点?
我正在尝试调用 Azure DevOps 项目的 REST API,但得到了一些意想不到的结果。
我可以使用 LinqPad 获得结果,但使用 Powershell 失败。
$env:Build_BuildId = 2468
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes("myPAT"))
$env:System_TeamProject = "myProject"
$url = "https://dev.azure.com/myorg/$env:System_TeamProject/_apis/build/builds/$env:Build_BuildId/changes?api-version=5.0"
$response = Invoke-RestMethod -Uri $url -Method Get -ContentType "application/json" -Headers @{
Authorization = "Basic $token"
}
Write-Host $response
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en-US">
<head><title>
Azure DevOps Services | Sign In
</title><meta http-equiv="X-UA-Compatible" content="IE=11; IE=10; IE=9; IE=8" />
<link rel="SHORTCUT ICON" href="/favicon.ico"/>
<link data-bundlelength="508485" data-bundlename="commoncss" data-highcontrast="/_static/tfs/M154_20190628.18/_cssbundles/HighContrast/vss-bundle-commoncss-vAEI_yKFIiS9jTVmCtAOiwe4cLPqdXnp6QCUVseU7jzk=" data-includedstyles="jQueryUI-Modified;Core;Splitter;PivotView" href="/_static/tfs/M154_20190628.18/_cssbundles/Default/vss-bundle-commoncss-vqjKBNZxfVQkGGn0rrvF7eh9DJDj__wqtFN85fVrIQn8=" rel="stylesheet" />
<link data-bundlelength="116162" data-bundlename="viewcss" data-highcontrast="/_static/tfs/M154_20190628.18/_cssbundles/HighContrast/vss-bundle-viewcss-v356iHjTFccxhkNidRJIEefQ92VqpWpa7rO4mdtAnDpM=" …Run Code Online (Sandbox Code Playgroud) 所以,这是我所知道的:
logs带有 url 的属性。##[error]对应于构建摘要页面上记录的错误。我很好奇如果我只需要获取构建错误,这是否是最好的方法。我不需要整个日志。
我正在寻找构建一些工具来查询团队冲刺的当前工作项目。我不确定如何在给定组织、项目和团队的情况下做到这一点。我似乎可以通过拨打此电话来获取当前迭代:
https://dev.azure.com/ {org}/{project}/{{team}/_apis/work/teamsettings/iterations?$timeframe=current&api-version=5.1
它返回类似这样的内容:
{
"count": 1,
"value": [
{
"id": "8c15e886-ece7-49ce-ab5a-4090aefb5ce2",
"name": "Sprint 1",
"path": "Red Kitten Matrix\\Sprint 1",
"attributes": {
"startDate": null,
"finishDate": null,
"timeFrame": "current"
},
"url": "https://dev.azure.com/chrisdevopsprojects/e8d05711-3014-4ba7-82b7-ab6829c455dc/aed68f47-9035-4af5-9b0d-b0c19b4e9e9e/_apis/work/teamsettings/iterations/8c15e886-ece7-49ce-ab5a-4090aefb5ce2"
}
]
}
Run Code Online (Sandbox Code Playgroud)
因此,我可以获得当前团队冲刺的指针,但是如何返回其中的所有冲刺工作项和任务?
我在这里没有看到任何信息:
谢谢!
编辑:
因此,我找到了一种工作项查询语言(WIQL...为什么不猜测)查询,当我在 UI 中的 DevOps 中调用它时,它可以工作,并且可以通过其余 API 进行工作,但它会让我做一个一堆 ajax 请求将所有内容拉回来。请告诉我是否有更简单的方法来获得这个。
这是我的 WIQL:
SELECT
[System.Id],
[System.WorkItemType],
[System.Title],
[System.AssignedTo],
[System.State],
[System.Tags]
FROM workitemLinks
WHERE
(
[Source].[System.TeamProject] = @project
AND [Source].[System.WorkItemType] <> 'Task'
AND [Source].[System.State] <> ''
AND [Source].[System.IterationPath] = @currentIteration('[Red Kitten Matrix]\Red Kitten Matrix …Run Code Online (Sandbox Code Playgroud) 我正在使用发布管道经典编辑器,并且需要将任务中生成的输出变量传递到同一阶段中的多个作业或外部阶段。目前,这个输出变量仅在同一个作业中可用,我必须在多个作业和阶段中编写相同的任务,我觉得这是一种冗余。有什么办法可以实现吗?
devops azure-devops azure-pipelines-release-pipeline azure-devops-rest-api
我想使用 Azure DevOps WebAPI 以编程方式检索与 Azure DevOps 中的工作项关联的所有拉取请求的信息。我已经弄清楚如何检索一个实例
Microsoft.TeamFoundation.WorkItemTracking.WebApi.Model.WorkItem
Run Code Online (Sandbox Code Playgroud)
对于我的工作项目。
要查找与其相关的拉取请求,我可以遍历“Relations”字段并查找 Url 包含 的关系PullRequestId。在该字符串的末尾,我可以找到要与GetPullRequestAsync.
URL 可能如下所示:
vstfs:///Git/PullRequestId/2139bb34-57e3-4d7d-a6e1-1c0542a45e29%2F8a2b707f-ca7a-418d-8462-2bf076a54aad%2F39723
Run Code Online (Sandbox Code Playgroud)
所以我的代码看起来像这样:
foreach ( WorkItemRelation wir in wi.Relations)
{
if ( wir.Url.Contains("PullRequestId"))
{
var pr = build.GetPullRequestAsync("<MyProject>", "Providername", "39723", "repository id").Result;
// Do somethin with pr object
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题如下
GetPullRequestAsync需要提供者名称和存储库 ID。但是,如果无法从 的实例中检索该信息吗
Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.WorkItemRelation?我正在尝试为 3 个环境(dev、qa、prod)制作一个单一的构建管道,但能够选择从哪个构建管道。
这个想法是将管道保留在 prod 分支或另一个 repo 上,而不是在每个 env 中都有它。现在的问题是,在 PR 上,它只会在 master(prod) 分支上启动管道,因为它应包含 yml 文件。
有没有办法获取 PR 目标分支以便为 PR 触发器添加附加条件?
azure-devops ×9
c# ×2
devops ×2
powershell ×2
azure ×1
azure-pipelines-release-pipeline ×1
rest ×1