Я разрабатываю расширение TFS, в котором пытаюсь получить доступ к API остальных панелей мониторинга.
Расширению назначены почти все области действия:
"scopes": [
"vso.build_execute",
"vso.code_write",
"vso.code_manage",
"vso.dashboards_manage",
"vso.dashboards",
"vso.extension_manage",
"vso.extension.data_write",
"vso.gallery_manage",
"vso.identity",
"vso.notification_manage",
"vso.packaging_manage",
"vso.profile",
"vso.project",
"vso.project_manage",
"vso.release_manage"
],
Приведенный ниже код выполняет вызов API:
var webContext = VSS.getWebContext();
console.log(`Collection URI: ${webContext.collection.uri}`);
console.log(`Project Name: ${webContext.project.name}`);
console.log(`User uniquename: ${webContext.user.uniqueName} id: ${webContext.user.id}`);
var baseUri = webContext.collection.uri + "/" + webContext.project.name;
var endpointUri = baseUri + "/_apis/dashboard/dashboards";
console.log(endpointUri);
var authToken = vssAuthentificationService.authTokenManager.getAuthorizationHeader(token);
console.log(authToken);
$.ajax({
type: "GET",
url: endpointUri,
contentType: 'application/json',
dataType: 'json',
headers: { 'Authorization': authToken }
})
.done(function (data) {
console.log(data);
});
, который возвращает:
401 (Unauthorized); TF400813: The user ... is not authorized to access this resource
Если я изменю URI API на:
var endpointUri = baseUri + "/_apis/build/builds";
ответ в порядке.
Пользователь, использующий расширение, является администратором коллекции TFS.
Какие разрешения / области мне нужно установить, чтобы иметь доступ к API инструментальных панелей?
TFS версия 16.131.27701.1