#git #tfs #azure-devops #pull-request
#git #tfs #azure-devops #запрос на извлечение
Вопрос:
Я пытаюсь создать расширение Azure DevOps, получая текущий запрос на извлечение. Но я столкнулся с несанкционированным исключением :
Я проверил токен, отправленный в запросе, это то же самое, что я получаю с :
VSS.getAccessToken().then(function(token) {
var authHeader = VSS_Auth_Service.authTokenManager.getAuthorizationHeader(token);
console.log(authHeader);
});
Экземпляр клиента git создается следующим образом :
VSS.require(["VSS/Service", "TFS/VersionControl/GitRestClient"], function (VSS_Service, TFS_Wit_WebApi) {
// Get the REST client
var gitClient = VSS_Service.getCollectionClient(TFS_Wit_WebApi.GitHttpClient2_2);
gitClient.getPullRequest(tabContext.repositoryId, tabContext.pullRequestId)
.thenResolve(pr => {
console.log(pr);
});
});
Я пробовал также этот способ :
VSS.require(["VSS/Service", "TFS/VersionControl/GitRestClient"], function (VSS_Service, TFS_Wit_WebApi) {
// Get the REST client
var gitClient = TFS_Wit_WebApi.getClient();
gitClient.getPullRequest(tabContext.repositoryId, tabContext.pullRequestId)
.thenResolve(pr => {
console.log(pr);
});
});
Манифест расширения является :
{
"manifestVersion": 1,
"id": "complete-pr-extension",
"publisher": "aguafrommars",
"version": "1.0.8",
"name": "Complete Pull Request",
"description": "Complete a Pull Request with commity zen",
"public": false,
"categories": ["Code"],
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
],
"contributions": [
{
"id": "pull-request-details-tab",
"type": "ms.vss-web.tab",
"targets": [
"ms.vss-code-web.pr-tabs"
],
"properties": {
"name": "Complete Pull Request",
"title": "Complete Pull Request",
"uri": "complete-pr.html",
"action": "PR Details Tab"
}
}
],
"files": [
{
"path": "complete-pr.html",
"addressable": true
},
{
"path": "node_modules/vss-web-extension-sdk/lib",
"addressable": true,
"packagePath": "lib"
}
]
}
И я устанавливаю расширение в свой локальный TFS 2018 Update 2 с помощью :
tfx extension publish --service-url http://localhost:8080/tfs --token {my-token} --rev-version
Ответ №1:
Я обнаружил, в чем была моя проблема, я пропустил добавление области в свой манифест :
{
"manifestVersion": 1,
...
"scopes": [
"vso.code_full"
],
...
}
Вы можете найти все доступные области в справочной документации по манифесту расширения