我想使用一个控制台工具,从微软VSTS SDK的REST API得到一个TFS 2015年3更新服务器上所有现有的构建定义:如何使用VSTS仪表板小部件中的REST API从TFS获取构建定义?
VSS.init({
explicitNotifyLoaded: true,
usePlatformStyles: true
});
VSS.require("TFS/Dashboards/WidgetHelpers", "TFS/Build/RestClient", "VSS/Authentication/Services"],
function (WidgetHelpers, TFS_Build_Api) {
VSS.register("BuildStatusMonitor.Configuration", function() {
return {
load: function (widgetSettings, widgetConfigurationContext) {
var buildClient = TFS_Build_Api.getClient();
buildClient.getDefinitions().then(function(definition) {
//
}, function(reason) {
// 401
});
},
}
});
VSS.notifyLoadSucceeded();
});
不幸的是,我总是得到一个
TFS.WebApi.Exception:TF400813:资源不可用于匿名访问。客户认证需要。
我在做什么错?
当我送的铬合金开发者控制台的GET请求,我得到正确的响应:=/
$获得(“HTTP:// *****:8080/TFS/TestReporting /DashboardWidgets/_apis/build/definitions?api-version=2.2").success(function(res){console.log(res)})
你指定在扩展清单范围:https://www.visualstudio.com/en-us/docs/integrate/extensions/develop/add-dashboard-widget#step- 2存取VSTS资源? –
好的,那很尴尬。谢谢,埃迪,我真的忘了声明vso.build范围。你提出了我的希望!虽然不幸的是增加了范围并不能解决问题。我重新安装了扩展,但问题依然存在。 – simarust
发现我的错误。根本不允许请求**所有**构建定义。调用 buildClient.getDefinitions(“projectName”) 完美地工作。然而,非常感谢您的帮助,特别是埃迪提醒我设置范围...;) – simarust