标签: azure-devops-rest-api

有没有办法自动将安全文件上传到 azure devops 库?

我正在尝试将密钥作为安全文件上传到 azure devops 以在管道上下文中使用,我只找到了手动上传,但它不是选项,有没有办法可以通过 powershell 或任何管道任务实现自动化?请建议。

azure-devops azure-pipelines azure-devops-rest-api

4
推荐指数
1
解决办法
4093
查看次数

使用 Python 推送创建 Api 将文件上传/推送到 Azure Devops Repo 时如何查找 oldobjectid

我试图自动执行将某些文件推送到存储库中的各个文件夹的任务。我尝试使用azure提供的Rest API。当使用 Pushes Create API 进行相同操作时,从文档中,这是请求正文中的内容

请求正文的快照:

这是我无法弄清楚如何进入 python 脚本“oldObjectId”的具体事情:“8b67126d2500e28c771f82c9ddc292679978197c”

我知道我必须使用 python requests 库发送一个包含与上面类似的数据的 JSON 变量。但我不知道如何在python脚本中获取oldobjectid。我尝试到处查找(文档、stackoverflow...),但无法找到如何找到 oldobjectid。

api文档的链接

python git python-requests azure-devops azure-devops-rest-api

4
推荐指数
1
解决办法
1368
查看次数

Azure DevOps 为拉取请求生成工件 ID

Azure DevOps API 文章评估 - 列表描述了如何接收特定拉取请求的所有策略评估状态的列表。

打电话

GET https://dev.azure.com/{organization}/{project}/_apis/policy/evaluations?artifactId={artifactId}&api-version=6.0-preview.1
Run Code Online (Sandbox Code Playgroud)

您需要该artifactId请求。标识拉取请求,它可能是拉取请求 - 获取拉取请求artifactId响应的一部分。但事实并非如此,里面是空的。artifactId?

因此,我认为,文章作者添加了以下部分:

使用唯一标识拉取请求的工件 ID 检索评估。要为拉取请求生成工件 ID,请使用以下模板:

vstfs:///CodeReview/CodeReviewId/{projectId}/{pullRequestId}

我应该用这个模板做什么?有例子吗?我不明白这部分,也不知道该怎么办。

azure-devops azure-devops-rest-api

4
推荐指数
1
解决办法
875
查看次数

特定任务的 Azure DevOps 管道日志

在 Azure DevOps 中,我有一个管道,其中需要特定任务的日志。如何找出需要哪个日志 ID 来获取它?

例如。在用户界面上,这是端点:https://dev.azure.com/myorg/myspace/_build/results ?buildId=1234&view=logs&j=899c4bff-9ac3-12de-4775-50e701812cb4&t=bc949ec8-c945-5220-1d40-d8ea7dab4bda 其中包含作业和任务 ID,但这些在查询日志时毫无用处。

同样的示例,我需要的日志的网址:https://dev.azure.com/myorg/cd642969-da00-4584-ab6a-4b6021c47eff/_apis/build/builds/1234/logs/24

任务的数量取决于我设置的参数,因此数字 24 会发生变化。如果我知道作业和任务的名称/ID,如何计算日志ID?

我应该检查所有约 100 个任务日志并 grep 查找任务名称第一行中的匹配项吗?(巨魔)

azure-devops azure-devops-rest-api azure-devops-pipelines

4
推荐指数
1
解决办法
2481
查看次数

VSO API工作项PATCH给出400错误请求

我正在使用Visual Studio Online REST API,除了创建工作项外,似乎可以使一切工作正常.这不是内部部署安装.我按照这个例子发送一个PATCH但收到400 Bad Request错误. VSO创建工作项

每个提琴手,这是我的原始请求:

    PATCH https://xxx.visualstudio.com/defaultcollection/myproject/_apis/wit/workitems/$Task?api-version=1.0 HTTP/1.1
Accept: application/json
Authorization: Basic RmI3etc_etc_etc==
Content-Type: application/json-patch+json; charset=utf-8
Host: xxx.visualstudio.com
Content-Length: 101
Expect: 100-continue
Connection: Keep-Alive

{"op":"add","path":"/fields/System.Title","value":"JavaScript implementation for Microsoft Account"}
Run Code Online (Sandbox Code Playgroud)

我得到的回复是400 Bad Request:

{"$id":"1","innerException":null,"message":"You must pass a valid patch document in the body of the request.","typeName":"Microsoft.VisualStudio.Services.Common.VssPropertyValidationException, Microsoft.VisualStudio.Services.Common, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03ftoken0a3a","typeKey":"VssPropertyValidationException","errorCode":0,"eventId":3000}
Run Code Online (Sandbox Code Playgroud)

我不确定为什么补丁文件无效.

更新:每个请求,只是分享更多的代码.我用自己的图书馆修补了一下.以下是我为项目轻松添加工作项(产品积压,错误等)所做的工作

public void AddWorkItem(VSOWorkItem workItem, string project)
    {
        Project = project;

        using (HttpClient client = new HttpClient())
        {
            client.DefaultRequestHeaders.Accept.Add(
            new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

            //Set alternate credentials
            client.DefaultRequestHeaders.Authorization = …
Run Code Online (Sandbox Code Playgroud)

c# api rest azure-devops azure-devops-rest-api

3
推荐指数
1
解决办法
3648
查看次数

TFS2015 REST API构建定义更新

我正在尝试使用PowerShell通过REST API更新构建定义.

使用的脚本是:

$url = "http://tfs:8080/tfs/collection/project/_apis/build/definitions/$($buildId)?api-version=2.0"
$obj = Invoke-RestMethod -Uri $url2 -Method Get -ContentType "application/json" -UseDefaultCredentials
$json = ConvertTo-Json $obj
Invoke-RestMethod -Uri $url -Method Put -Body $json -ContentType "application/json" -UseDefaultCredentials
Run Code Online (Sandbox Code Playgroud)

首先,我尝试了一个新的空定义,我得到以下错误:

该集合必须至少包含一个元素.参数名称:definition.Options.Inputs

所以我添加了一个额外的代码来从返回的json中删除"options"部分:

if($obj.options -ne $null){
    $obj.options = $null }
Run Code Online (Sandbox Code Playgroud)

并且更新有效.但是,当我在生产中的"真实"现有构建定义上使用代码时,我得到另一个错误:

该集合必须至少包含一个元素.参数名称:definition.RetentionRules.Rule.Branches.Filter

我正在使用TFS2015 Update 3.

为什么不通过REST API对构建定义进行简单的更新(不做任何修改)?

tfs-sdk tfs-2015 azure-devops-rest-api

3
推荐指数
1
解决办法
1012
查看次数

使用REST API获取TFS工作项及其链接

我正在使用TFS REST API并尝试按标题检索工作项及其子项(父项的标题是参数).我找不到使用TFS REST API检索这些链接项的方法.

这就是我尝试过的.首先,我按标题查询工作项:

URI = http://[tfspath]/_apis/wit/wiql?api-version=1.0
query = SELECT * FROM WorkItem WHERE [System.Title] = 'some title'
Run Code Online (Sandbox Code Playgroud)

上面的内容返回一个对象WorkItems,它只包含匹配工作项的ID/URL.然后,我在下面的查询中使用返回的ID(假设id为1234):

URI = http://[tfspath]/_apis/wit/workitems/1234?fields=System.Title&api-version=1.0
Run Code Online (Sandbox Code Playgroud)

这将返回项目的标题以及我可能包含在字段列表中的其他字段.但是,我找不到在退货中包含子项的方法.我尝试过包含System.RelatedLinks,但这不会更改返回的字段.例:

URI = http://[tfspath]/_apis/wit/workitems/1234?fields=System.Title,System.RelatedLinkCount,System.RelatedLinks&api-version=1.0
Run Code Online (Sandbox Code Playgroud)

返回

"fields":{"System.RelatedLinkCount":4,"System.Title":"some title"}
Run Code Online (Sandbox Code Playgroud)

这意味着有4个相关链接指向工作项"某个标题",但它们没有被退回.我在这里错过了什么?我如何获得这些相关链接/子项目?

rest tfs tfs-sdk azure-devops azure-devops-rest-api

3
推荐指数
1
解决办法
5562
查看次数

VSTS Powershell秘密变量

如何在我的版本定义中的powershell脚本中使用秘密变量?

我遇到过这个,但它不起作用."$($env:AGENT_HOMEDIRECTORY)\agent\worker\Modules"新代理上不存在该目录.

在新主机上访问秘密变量的正确方法是什么?我的代理版本是2.114.0.

powershell azure-pipelines azure-pipelines-release-pipeline azure-devops-rest-api

3
推荐指数
1
解决办法
4958
查看次数

如何使用REST API列出TFS GIT仓库中的所有文件

全部,我试图使用REST API获取TFS GIT中特定仓库中所有文件的列表.我找到了下面的一个,但它只显示"scopePath =/buld.xml"之后提到的特定文件名的内容,它只显示文件build.xml的内容.

但我正在尝试,只是列出特定存储库中的所有文件而不提及特定的文件名.

请帮我.

https://开头{}帐户名.visualstudio.com /(项目)/ _apis/git的/库/ {} repositoryId /items?items?scopePath=/&api-version=4.1

tfs tfsbuild tfs-sdk azure-devops azure-devops-rest-api

3
推荐指数
1
解决办法
1758
查看次数

使用vsts Rest API时出现203错误

当我尝试使用POST请求在VSTS中创建新工作项时:

https://galilinetsky.visualstudio.com/Automatiom/_apis/wit/workitems/$Test%20Case?api-version=5.0-preview.2
Run Code Online (Sandbox Code Playgroud)

我得到下一个回应:

当前在您的环境中启用了Microsoft Internet Explorer的增强安全配置。增强的安全级别阻止了我们的Web集成体验正确显示或执行。要继续操作,请禁用此配置或与管理员联系。

我究竟做错了什么?

azure-devops azure-devops-rest-api

3
推荐指数
2
解决办法
1726
查看次数