1

从 VSTS 扩展我需要能够签出、编辑和签入(on-prem TFVC/TFS repo v2015.3)

在文档https://www.visualstudio.com/en-us/docs/integrate/api/tfvc/overview中不清楚是否有 API 可以做到这一点

MSFT 为他们自己的 Web 访问“代码”编辑器使用实现了它:https ://visualstudio.uservoice.com/forums/330519-team-services/suggestions/2216206-provide-check-in-check-out-functionality-through- t# {toggle_previous_statuses}

因此,有一种方法可以实现这一目标。我试图逆向工程他们是如何通过浏览器调试做到的,但是缩小/捆绑的代码不容易阅读。

有人可以给我一个例子,说明如何在 JS/TypeScript 中为每个 REST api 签入源代码控制项目?谢谢!

4

3 回答 3

3

使用 createChangeset() 方法供您参考的示例代码:

/// <reference path="typings/index.d.ts" />

import * as vm from 'vso-node-api/WebApi';
import * as vss from 'vso-node-api/interfaces/Common/VSSInterfaces';
import * as tfv from 'vso-node-api/TFVCApi'
import * as tfi from 'vso-node-api/interfaces/TFVCInterfaces';

var collectionUrl = "https://xxxxxx.visualstudio.com";
let token: string = "xxxxxx";
let creds = vm.getPersonalAccessTokenHandler(token);
var connection = new vm.WebApi(collectionUrl, creds); 
let vstsTF: tfv.ITfvcApi = connection.getTfvcApi();

async function createCS(){
    var csdata = {
            comment: "test",
            changes: [
                {
                    changeType: tfi.VersionControlChangeType.Add,
                    item: {
                        path: "$/TFVCBranches/Test/3.txt",
                        contentMetadata: { encoding: 65001 },
                    },
                    newContent: {
                        content: "Placeholder file for new folder",
                        contentType: tfi.ItemContentType.RawText
                    }
                }]
        };
    (<any>vstsTF).createChangeset(csdata);

}

createCS();
于 2016-10-31T09:50:15.983 回答
0

找到了我自己的问题的解决方案,现在将尝试: https ://www.visualstudio.com/en-gb/docs/integrate/extensions/reference/client/api/tfs/versioncontrol/tfvcrestclient/tfvchttpclient2_2#method_createChangeset

于 2016-10-31T09:07:59.280 回答
0

没有可以在 Web 访问上签入更改(例如编辑代码和签入更改(保存))的 Rest API(由 Microsoft 公开/发布)。

我在这里提交了一个用户声音,你可以投票和跟踪它。

于 2016-10-31T02:39:50.230 回答