使用git凭证管理器来获取azure devops api而不是个人访问令牌

问题描述 投票:0回答:1

我正在尝试获取git azure devops api以获取有关js中的存储库和分支的信息。

为了实现这一点,我用以下代码制作了一个小应用程序:

$(document).ready(function() {
    var personalToken = btoa(':'+'<personnalAccessToken>');

    fetch('https://dev.azure.com/<company>/<project>/_apis/git/repositories?api-version=5.1', {
        method: 'GET',
        headers: {
          'Content-Type': 'application/json'
          'Authorization': 'Basic '+ personalToken
        }
    }).then(function(response) {
        return response.json();
    }).then(function(repositories) {
        console.log("There are "+repositories.count+" repositories");
    }).catch(function(error) {
        console.log('Fetch error: ' + error.message);
    });

此代码很好用,但是正如您所看到的,我的personnalAccessToken直接写在代码内...这真的很糟糕...

当我在命令行中使用git时,由于Windows使用git凭据管理器,因此无需指定任何凭据信息。这意味着我的personnalAccessToken已被存储,缓存并在每次使用git命令(例如clone等)时自动使用。

因此,我希望我的js代码使用相同的东西,我希望它自动使用存储的凭据来获取api,而无需在代码中设置personnalAccessToken。

我已经搜索了几个小时,但无法确定是否可以。

javascript jquery git api azure-devops
1个回答
0
投票

您在上面所做的不是调用git命令。您调用REST API,因此您可以根据需要将this example作为参考。

对于要访问Azure DevOps REST API之类的资源的javascript Web应用程序,它们将必须为其用户支持身份验证流程。用于JS的Azure Active Directory身份验证库(ADAL)使javascript应用程序开发人员可以设置惯性身份验证流并获取API使用的访问令牌。

基于此,我认为git凭证不足以调用REST API。但是,以上示例显示了如何实现目标。

但是如果您想使用git命令,this对您会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.