使用 REST Api Visual Studio Team Services 更新文件

2024-02-08

有没有办法使用 HTTP 动词更新 Visual Studio 团队服务帐户上项目中的文件内容,类似于在 github 上完成的操作https://developer.github.com/v3/repos/contents/#update-a-file https://developer.github.com/v3/repos/contents/#update-a-file.

 var json={
        "comment": "Update scripts.json",
        "changes": [{
            "changeType": 2,
            "item": {
                "path": "$/ExtensionsTest/scripts.json",
                "contentMetadata": { "encoding": 65001 },
                "version": 47
            },
            "newContent": {
                "content": "[ {\"hello\" : \"Test\"} ]",
                "contentType":"RawText"
            }
        }]
    };
   $.ajax({
        type: 'POST',
        url: 'https://xxxxx.visualstudio.com/_apis/tfvc/changesets?api-version=3.0-preview.2',
        contentType: 'application/json',
        data: JSON.stringify(json),
        cache: false,
        dataType: "json",
        beforeSend: function (xhr) {
                    xhr.setRequestHeader("Authorization", "Basic " +    btoa("my UserName" + ":" + "my PW"));
        }
    }).done(function (data) {
        console.log(data);
    });
};

上面的代码是我正在使用的代码,但我收到了 400 错误。关于我做错了什么的任何建议。


尝试这些方法:

如果您使用的是 GIT:

  1. 获取commit ID值: 请求方式:GET; URL [集合url]/[团队项目名称]/_apis/git/repositories/[存储库名称]/commits?api-version=1.0&branch=master&$top=1
  2. 更新文件内容: 请求方式:Post; URL: [集合url]/[团队项目名称]/_apis/git/repositories/[仓库名称]/pushes?api-version=3.0-preview.2;内容类型:application/json;

JSON 数据:

{
    "refUpdates": [{
        "name": "refs/heads/master",
        "oldObjectId": "[step 1 commit ID]"
    }],
    "commits": [{
        "comment": "Updated BuildLog.cs",
        "changes": [{
            "changeType": 2,
            "item": {"path": "/BuildLog.cs"},
            "newContent": {
                "content": "using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    public class BuildLog
    {
        public int count;
        public string[] value6;
    }
}
",
                "contentType": 0
            }
        }]
    }]
}

如果您使用 TFVC:

  1. 获取变更集ID:请求方式:GET;网址:[集合网址]/_apis/tfvc/changesets?api-version=1.0&$top=1
  2. 更新文件内容: 请求方式:Post;网址:[采集网址]/_apis/tfvc/changesets?api-version=3.0-preview.2;内容类型:application/json;

Json数据:

{
    "comment": "Updated Class1.cs",
    "changes": [{
        "changeType": 2,
        "item": {
            "path": "$/Scrum2015/ClassLibraryB/ClassLibraryB/Class1.cs",
            "contentMetadata": {"encoding": 65001},
            "version": [step changeset id]
        },
        "newContent": {
            "content": "using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClassLibraryB
{
    public class Class1
    {
        string sgs = \"\";
        public void T()
        {
            ClassLibraryA.Class1 c = new ClassLibraryA.Class1();
            c.TestOther2();
        }
    }
}
",
            "contentType": 0
        }
    }]
}

注意:如果文件内容包含引号(\”test\”),则需要解析引号,与其他特殊宪章相同。

另一方面,你可以通过 vso-node-api 来实现,更多信息,你可以参考这个线程:TFS Rest API 签入版本控制 https://stackoverflow.com/questions/40319758/tfs-rest-api-check-in-to-version-control

Update1:

参考这段代码修改你的代码:

  var json={
                    "comment": "Updated tt.json",
                    "changes": [{
                        "changeType": 2,
                        "item": {
                            "path": "$/Scrum2015/Buildtest/CoreSolutionDemo/WebApplication1/tt.json",
                            "contentMetadata": { "encoding": 65001 },
                            "version": 754
                        },
                        "newContent": {
                            "content": "[ {\"hello\" : \"Test2\"} ]",
                            "contentType": "RawText"
                        }
                    }]
                };
                $.ajax({
                    type: 'POST',
                    url: 'https://XXX.visualstudio.com/_apis/tfvc/changesets?api-version=3.0-preview.2',
                    contentType: 'application/json',
                    data: JSON.stringify(json),
                    cache: false,
                    dataType: 'json',
                    beforeSend: function (xhr) {
                        xhr.setRequestHeader("Authorization", "Basic " + btoa("name" + ":" + "password or PAT"));
                    },
                }).done(function (data) {
                    var s1 = "ss";

                }).error(function (e) {
                    var s = "ss";
                });
            })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 REST Api Visual Studio Team Services 更新文件 的相关文章

  • 如何将普通的 Git 存储库转换为裸存储库?

    如何将 普通 Git 存储库转换为裸存储库 主要区别似乎是 在普通的 Git 存储库中 你有一个 git存储库内的文件夹 包含构成工作副本的所有相关数据和所有其他文件 在裸露的 Git 存储库中 没有工作副本和文件夹 我们称之为repo g
  • 以 RESTful 方式增加资源计数器:PUT 与 POST

    我有一个带有计数器的资源 为了举例 我们将该资源称为profile 计数器是数量views对于该配置文件 Per the 休息维基 http rest blueoxen net cgi bin wiki pl HttpMethods PUT
  • 如何从 SVN 获取所有未版本化文件的列表?

    有时 您正在开发并决定提交 却忘记了您在项目中创建了一些文件 然后几天后 你的朋友从 Subversion 中得到了你的版本 并抱怨有些文件似乎丢失了 你意识到了 啊糟糕 我忘记添加那些文件了 如何从 Subversion 获取不受版本控制
  • 响应 301 永久移动

    我曾经得到以下对 php 请求的响应 回复
  • 从 HTTP 登录到 HTTPS

    我的网站默认使用 HTTP 我确实有一个启用 HTTPS 的证书 但只有其上的某些区域强制建立安全连接 登录是通过 Ajax 处理的 我想开始使用 SSL 即使请求来自 HTTP 我尝试强制请求的地址具有 HTTPS 并且它完美地回复 然而
  • MS AppCenter 和 Azure DevOps(以前的 VSTS)之间的主要区别是什么?

    我对这两种服务的功能以及它们之间的核心区别是什么感到 有点 困惑 总的来说 我了解它们提供的内容 并且我之前分别使用了它们 主要是 VSTS 作为问题跟踪器 和 AppCenter 来构建和部署源 However 1 他们都有buildin
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 有没有办法使用 ASP.NET 在用户离开页面时始终运行某些服务器端代码?

    我想知道当用户离开 ASP NET 中的页面时是否有任何方法可以始终运行一些服务器端代码 页面卸载事件不好 因为如果有人单击链接 则不会调用该事件 理想情况下 即使用户关闭浏览器 我也希望代码能够运行 我怀疑我所问的问题是不可能的 但问一下
  • Xamarin - 错误:dsymutil 退出,代码为 72

    最近升级到 VS for Mac 8 10 21 在构建应用程序时 我得到 Xamarin Shared targets 3 3 Error dsymutil exited with code 72 这是 Xcode 13 3 的情况 完整
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 未安装 Visual Studio;这对于 Windows 开发是必要的

    My 颤振医生 https docs flutter dev get started install windows run flutter doctor是说 Visual Studio develop for Windows X Visu
  • VSTS部署IIS应用程序winrm并更改appsettings.json

    我正在使用 部署 IIS 应用程序 winrm 任务在另一台计算机上部署 IIS 应用程序 此任务部署 zip 文件 在此 zip 中有一个 appsettings json 其变量以下划线开头和结尾 我需要替换每个环境的 appsetti
  • 多设备混合应用程序:如何在发布和分发构建过程中进行组合、缩小和混淆?

    有没有一种好方法可以使用 Visual Studio 的多设备混合应用程序项目类型来组合 Javascript Css 文件并对发布和分发版本进行缩小和混淆 我目前使用 Grunt 来执行这些任务 但我对完整的 Visual Studio
  • 您如何管理项目生命周期? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 您如何管理项目生命周期 例如 您从模板开始吗 您是否使用 SVN 等版本控制作为权威来源 您是否归档项目 如果归档 何时归档以及如何归档 当项目
  • VS2017在nuget包中将“Build Action”设置为“Content”

    我创建我的nuget包在gitlab使用以下命令行 nuget pack Prop Configuration Release OutputDirectory nuget REPONAME APPNAME APPNAME csproj 如果
  • Lotus Notes/Domino 开发版本控制的最佳实践

    请分享您如何对 Lotus Notes Domino 开发进行版本控制 我想将所有脚本 视图 自定义表单 脚本库等放入我们的 SVN 存储库中 半自动方法也被接受 即 如果我找到一种方法来获取一个文件中表单的所有事件脚本 并能够将其作为整个
  • 从 R 中的 HTTPS 连接逐行读取

    当创建连接时open r 它允许逐行读取 这对于批量处理大数据流非常有用 例如这个脚本 https gist github com jeroenooms d33a24958d99bb969ac0通过一次读取 100 行来解析相当大的 gzi

随机推荐

  • CSS居中技巧[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Jquery 选择元[property=og:image]?

    我想在 Jquery 中选择网页中的主照片 我只有 url 页面 所以我决定使用为 Facebook 共享编写的元 我想选择的内容 元属性 og 图像 内容 http blablabla jpg 我写了这个 但它不起作用 meta prop
  • 在状态数组中添加值的最佳方法是什么

    我有一个状态数组 比方说this state arr 我想向这个状态属性添加一些内容 然后更改更多属性 Option 1 onChange event this state arr push newvalue this setState s
  • 使用 jQuery 将自定义 CSS 类添加到动态创建的元素

    让我说明一下我的问题 我有一个外部 JavaScript 库 它可以根据用户输入和交互动态地为我创建某些 HTML 元素 并且我希望编写一个脚本来自动将某个类添加到这些动态创建的元素中 假设我也无法编辑我正在使用的外部 JavaScript
  • 你可以在 Swift 字符串插值中使用字符串/字符文字吗?

    是否可以在 Swift 中的字符串插值中使用字符串 字符文字 语言参考说 在内插字符串的括号内编写的表达式不能包含未转义的双引号 这对我来说有点模糊 因为它似乎故意留下转义双引号的漏洞 如果我尝试 println Output repeat
  • 我试图编写一个包含二次公式的程序,但我不明白为什么我不断收到错误[重复]

    这个问题在这里已经有答案了 import math a float input Enter value for a b float input Enter value for b c float input Enter value for
  • 创建新的 Hibernate 表

    所以我对 Hibernate 还很陌生 而且我正在开发一个大型应用程序 该应用程序已经有一个包含多个 Hibernate 表的数据库 我正在开发一项新功能 其中包括一个新功能 Entity类 我需要将这些对象存储在一个新表中 该类声明如下
  • 如何在Jenkins中使用ANSIcolor插件?

    我已经为 Jenkins 安装了 ANSI color 插件 在作业中 我已使用默认配置文件 xterm 激活了该插件 我不知道打印到控制台日志时如何对控制台日志的输出进行着色 来自批处理文件的日志 Windows 平台 有关的文档 htt
  • 作为 OpenShift 用户,我可以做什么?

    我目前正在使用虚拟服务器并想尝试一下开放式班次 http openshift redhat com 出去 但我还没有真正了解它是如何工作的 我可以获得我的 网络空间 的 root 访问权限吗 我可以设置服务器操作系统 例如 Debian 7
  • 当从 Java 查询时,Sql Server 会忽略 varchar 列上的索引并进行表扫描

    问题 我有一个 SQL Server 表 其中有一个 varchar 列和数百万行 它已建立索引 从 SQL Server 查询工具中运行查询速度很快 因为它使用索引 当我从 Java JDBCPreparedStatement 运行查询时
  • Django 验证单元测试

    我试图模拟 django contrib auth 验证方法的返回值 该方法在视图的登录方法中调用 有view py代码 def login request if request method POST username get usern
  • 如何更改 Mac OS X 启动板中显示的 Java 应用程序名称

    当我的申请写成Java with SWT运行在OS X 都从下Eclipse和来自jar 它在启动板中的名称为 java 如图所示 在我的代码的开头我调用Display setAppName MyApp 并且菜单栏和菜单项中的应用程序名称是
  • PhoneGap 3.1.0 没有节点/npm 和命令行工具

    是否可以在没有节点包的情况下下载和使用 PhoneGap 3 1 0 由于网络连接受到限制 从 git hub 命令行安装节点 PhoneGap 模块 Cordova 模块和插件很烦人 使用 PhoneGap 2 9 似乎是那么容易和简单
  • 错误:无法构建 gem 本机扩展

    gem install unf ext v 0 0 6 localhost workflow boyun ryan007 gem install unf ext v 0 0 6 Building native extensions This
  • AVMutableComposition 输出冻结在第一个视频的最后一帧

    我正在尝试使用 AVMutableCompositions 将多个剪辑 视频 合并为一个 我已经成功完成了这一操作以及旋转和翻译每条指令 但是 仍然存在一个问题 当第一个剪辑完成时 输出冻结在最后一帧 第一个剪辑的最后一帧 仅当有另一个剪辑
  • 使用 VBA 声明相对于活动单元格的范围

    我需要声明一个相对于活动单元格的范围对象 问题是 每次宏运行时我想要选择的行数和列数都不同 例如 我有两个变量 numRows and numCols 我想选择一个范围 其左上角有 ActiveCell 单元格的行为 ActiveCell
  • 使用 Linq to SQL 进行多线程处理

    由于原始线程 使用 Linq to SQL 进行多线程处理 https stackoverflow com questions 1815537 现在已经很老了 我想我应该就类似的主题发布另一个问题 考虑一个场景 其中 DomainServi
  • Swift:数组内的字典

    Data firstName Foo lastName Bar firstName John lastName Doe 如何使用 swift 数组和字典拥有这种结构 该数据显示数组内的字典 对吧 所以我建议 var persons Arra
  • 从终端中的 url 运行 python 脚本

    我想知道有什么方法可以从终端中的 url www blahblah com script py 执行 python 脚本而不将文件下载到磁盘吗 Thanks 您希望它在客户端上运行 还是在服务器上运行 将返回结果 如果您想在客户端上运行它
  • 使用 REST Api Visual Studio Team Services 更新文件

    有没有办法使用 HTTP 动词更新 Visual Studio 团队服务帐户上项目中的文件内容 类似于在 github 上完成的操作https developer github com v3 repos contents update a