Search code examples
typescriptazure-devopsazure-devops-rest-apiazure-devops-extensions

azure-devops-extension-sdk : ReleaseRestClient not work (error 401)


A new library to develop AzureDevOps UI extensions, is available, but I have a problem with the release part

when i use the api release, i get a 401 error, while i am administrator on my project and my site azureDevOps

import * as SDK from "azure-devops-extension-sdk";
import { CommonServiceIds, IProjectPageService, getClient } from "azure-        
devops-extension-api";
import * as vsrelease from "azure-devops-extension-api/Release";
import * as vsbuild from "azure-devops-extension-api/Build";

await SDK.ready();
// get current project name
const projectService = await SDK.getService<IProjectPageService>(CommonServiceIds.ProjectPageService);
const project = await projectService.getProject();
let projectName = '';
if(project !== undefined) projectName = project.name;
console.log(projectName);

// get buildDefinitions = ok 
const buildDefinitions = await getClient(vsbuild.BuildRestClient).getDefinitions(
projectName, undefined, undefined, undefined, 
undefined, undefined, undefined, undefined, undefined, 
undefined, undefined, undefined, true, true );
console.log(buildDefinitions);

// get releaseDefinitions   ==  error  401 ??
// {"$id":"1","innerException":null,"message":"TF400813: The user 'my admin guid' is not authorized to access this resource.","typeName":"Microsoft.TeamFoundation.Framework.Server.InvalidIdentityException, Microsoft.TeamFoundation.Framework.Server","typeKey":"InvalidIdentityException","errorCode":0,"eventId":3000}
const releaseDefinitions = await getClient(vsrelease.ReleaseRestClient).getReleaseDefinitions(projectName);
console.log(releaseDefinitions);

https://github.com/Microsoft/azure-devops-extension-api/issues/2 https://github.com/Microsoft/azure-devops-extension-sdk/issues/3

I have no answer on github

Thx for your help.


Solution

  • You must add rights to the manifest file of the extension

        "scopes": [
        "vso.release",
        "vso.build"
        ],
    

    and you will have to authorize the new rights on AzureDevOps in the general extension section