vsts 扩展 Git Rest 客户端未经授权
vsts extension Git Rest Client unauthorized
我尝试创建一个 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
我发现我的问题在哪里,我没有在我的清单中添加范围:
{
"manifestVersion": 1,
...
"scopes": [
"vso.code_full"
],
...
}
中找到所有可用范围
我尝试创建一个 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
我发现我的问题在哪里,我没有在我的清单中添加范围:
{
"manifestVersion": 1,
...
"scopes": [
"vso.code_full"
],
...
}
中找到所有可用范围