我想更新构建定义中的变量,但是当它尝试运行时,Invoke-RestMethod我收到以下异常:
Invoke-RestMethod : {"$id":"1","innerException":null,"message":"This request expects an object in the request body,
but the supplied data could not be
deserialized.","typeName":"Microsoft.TeamFoundation.Build.WebApi.RequestContentException,
Microsoft.TeamFoundation.Build2.WebApi, Version=14.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a","typeKey":"RequestContentException","errorCode":0,"eventId":3000}
At D:\a\_temp\231f1be5-edc0-4bd9-a2e4-efd23a8308d1.ps1:42 char:1
+ Invoke-RestMethod -Method Put -Uri "$($projectDef.Url)&api-version=2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebExc
eption
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
Run Code Online (Sandbox Code Playgroud)
其他一切似乎都正常,我得到了构建定义,我可以更新变量,但是当我尝试使用JSON将PUT放回原位Invoke-RestMethod时失败。
以下是在Powershell内联脚本中运行的已使用代码:
# This script is intended to be used for PowerShell script tasks in VSTS in "inline mode"
$valueName = 'ProjectBuildNumber'
$token = 'MYTOKENCODE'
$uriRoot = $env:SYSTEM_TEAMFOUNDATIONSERVERURI …Run Code Online (Sandbox Code Playgroud) 来源提供商 - 列出分支机构:
谁能告诉我“providerName”字符串的用途是什么?
有没有办法只从 Azure DevOps Rest API 获取在特定池中等待可用代理的构建?
我目前有这个端点,它为我提供池中发生的所有作业请求:
https://dev.azure.com/{organization}/_apis/distributedtask/pools/{poolid}/jobrequests
我查看了 API 文档,但找不到有关代理池的任何内容。
我的团队维护一个 JSON 文件,其中包含 GUID 字典,以便我们的服务正确使用版本图像。两个开发人员可以对相同的条目进行不同的更改,因此当他们覆盖文件中的同一行时,无论谁稍后提交都会发生合并冲突。
我们使用 Azure DevOps,我想使用 .gitattributes 在完成拉取请求时始终有效地将“合并我们的”仅在此文件中。但是,Azure DevOps 似乎不尊重此服务器端,因为即使使用 .gitattributes 文件,尝试完成拉取请求仍然会失败。
有一个类似的用户语音请求,但那是不久前的事了。
是否有另一种方法可以实现类似的行为,以防止必须使用 Azure DevOps 进行通常不必要且耗时的单行合并冲突解决?
有没有办法master从 1 个帐户下上传的所有项目中克隆所有分支。
我需要master每周备份分支中的所有代码。有没有办法使用 git、Powershell 或任何其他方式来实现这一点?
请注意,我需要在 Windows 环境中执行此任务。
到目前为止,我正在使用Azure DevOps REST Api从 Azure DevOps 中的版本获取数据以用于报告目的。显然,这将随着使用 CI/CD --> YAML 和多阶段管道(当前预览)的新方式而改变。在这种情况下,构建和发布策略已被弃用,所有内容都被定义为管道并细分为各个阶段(构建阶段、部署阶段 1、部署阶段 2,...)。我尝试通过构建列表方法
接收数据,但这些数据是有限的,并且我缺少一些重要信息,例如“阶段是否成功”。
有人已经有 YAML Pipelines 和 Azure DevOps REST Api 组合的经验吗?有没有办法获取完整数据(与经典发布策略一样)?还是目前正在开发中,我必须要有耐心?
提前致谢!
我试图通过使用它的 Rest API在Azure DevOps wiki 中创建一个新页面来自动在 Azure DevOps 发布管道中创建发行说明。
我遇到的问题是我使用 PowerShell 脚本任务发布到 Rest API,我想避免使用个人访问令牌 (PAT) 并改用 OAuth。PAT 到期,我不希望所有版本在 PAT 到期时突然失败。通过在构建代理的上下文中使用 OAuth 运行 PowerShell 脚本,我可以避免此过期问题。我在代理作业中选中了“允许脚本访问 OAuth 令牌”以获取 PowerShell 脚本任务所在的版本。
为简单起见,我正在运行以下内联PowerShell 脚本来测试使用 OAuth ( "Bearer $env:SYSTEM_ACCESSTOKEN")创建新的 wiki 页面:
$uri = "https://dev.azure.com/{organization}/{project}/_apis/wiki/wikis/{wikiIdentifier}/pages?api-version=5.0&path=/Release%20Notes/Customers%20API/Release-299%20[Build:%2020191010.1]";
try {
$response = Invoke-RestMethod `
-Method PUT $uri `
-Headers @{Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"} `
-ContentType "application/json" `
-Body $json
} catch {
Write-Host "Message: " $_.Exception.Message;
Write-Host "StatusCode: " $_.Exception.Response.StatusCode.value__ …Run Code Online (Sandbox Code Playgroud) azure-powershell azure-devops azure-pipelines azure-devops-rest-api
我最近发现,在查看哪些工作项与不同部署关联时,可以使用链接到拉取请求的工作项。也就是说,我想确保相关的工作项目是准确的。我可以手动链接我的工作项,但在某些情况下,单个挤压合并提交中可能会出现 50 个不同的提交。有很多不同的提交需要手动输入。
我看到 VSTS(Azure Devops)尝试自动添加一些相关的工作项。问题是我不知道这些工作项现在是如何计算的。如下图所示,即使没有检测到代码更改,您也可以拥有关联的工作项。有人可以解释一下吗?根据 Fiddler 的说法,VSTS api 中调用的 API 是:
// POST https://foobar.visualstudio.com/16e07dde-f652-4a64-93f1-3edb3d70d5e1/_apis/git/repositories/c9bd207c-bc6e-4e6c-aba9-8fd6aeb53946/commitsBatch
{"$top":101,"itemVersion":{"versionOptions":0,"versionType":0,"version":"master"},"compareVersion":{"versionOptions":0,"versionType":0,"version":"users/v-username/140357_TestBranchForFeatureDeployment_ButWithLinks"}}
Run Code Online (Sandbox Code Playgroud)
pull-request azure-devops azure-pipelines azure-devops-rest-api