【问题标题】:vsts extension Git Rest Client unauthorizedvsts 扩展 Git Rest 客户端未经授权
【发布时间】:2019-08-20 03:18:31
【问题描述】:

我尝试创建一个 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

【问题讨论】:

    标签: git tfs azure-devops pull-request


    【解决方案1】:

    我发现问题出在哪里,我错过了在清单中添加范围:

    
    {
        "manifestVersion": 1,
    ...
        "scopes": [
            "vso.code_full"
        ],
    ...
    }
    
    

    你可以在Extension manifest reference documentation找到所有可用的范围

    【讨论】:

      猜你喜欢
      • 2020-01-11
      • 2013-08-03
      • 2015-02-01
      • 2018-07-07
      • 1970-01-01
      • 1970-01-01
      • 2014-09-05
      • 2018-09-06
      • 2023-03-12
      相关资源
      最近更新 更多