【问题标题】:authentication error during VSTS hosted buildVSTS 托管构建期间的身份验证错误
【发布时间】:2017-12-13 15:48:07
【问题描述】:

我在https://XXX1.visualstudio.com VSTS 帐户下为“Project1”存储库设置了托管 VS2017 构建。 此 repo 引用了一个子模块“Project2”,该子模块已在我拥有完全管理员权限的不同 VSTS 帐户下设置。 https://XXX2.visualstudio.com 当我为我的顶级“Project1”存储库运行 VSTS 托管构建时,克隆“Project2”子模块时出现身份验证错误。但是,我在我的电脑上的 Git 客户端中手动克隆子模块没有问题。出现以下错误。

致命:无法读取“https://XXX2.visualstudio.com”的用户名: 终端提示 disabled fatal: clone of 'https://XXX2.visualstudio.com/Projects/.../Project2' 进入子模块 路径 'D:/a/1/s/Project2' 失败

【问题讨论】:

    标签: azure-devops


    【解决方案1】:

    即使您从本地电脑添加/克隆子模块 repo project2,您也应该第一次输入您的凭据。

    所以您应该提供您的凭据以在 VSTS 构建中克隆子模块 repo Project2

    首先,确保您拥有 VSTS 帐户 1 (https://XXX1.visualstudio.com) 的备用凭据

    在备用身份验证凭据选项卡 (https://XXX1.visualstudio.com/_details/security/altcreds) 中,添加 sscondary 用户名和密码(如果您没有):

    然后,为子模块Project2 repo(在您的 VSTS 帐户1之外)添加备用凭据

    在你的Project1 repo中,有文件.gitmodules记录子模块repoProject2,内容如下:

    [submodule "Project2"]
        path = Project2
        url = https://account2.visualstudio.com/projects/_git/Project2
    

    然后在子模块URL中添加备用凭证,格式为:

    [submodule "Project2"]
        path = Project2
        url = https://<secondary username>:<secondary password>@account2.visualstudio.com/projects/_git/Project2
    

    如上图的例子对应的URL应该是https://myuser:password@myaccount.visualstudio.com/project/_git/repo

    另外还有一个用户声音Build support for external submodules that require authentication,该请求可以在构建定义中获取外部git子模块,可以投票跟进。

    【讨论】:

    • 那行得通。谢谢你,玛丽娜非常感谢你帮助我。你确定我不能在我的设置中使用访问令牌吗?我不确定我有多想涉足为多个用户管理凭据并保持硬编码密码公开的业务。
    • 无法识别 url 格式的个人访问令牌。如果有多个用户可以访问 Project1 存储库或构建定义,您的备用凭据肯定会暴露。解决方法是将 Project2 repo 导入到你自己的 VSTS account1,然后将导入的 Project2 视为子模块,则无需在 .gitmodules 中添加凭据,因为导入的 repo 与主 repo Project1 在同一帐户中.
    • 我还考虑过将 repo 导入 account1 但这意味着克隆模块并保留相同代码的两个副本,这是一个令人头疼的维护问题。有什么方法可以指示 VSTS 为 account2 使用已经过身份验证的 Windows 凭据?
    • 不幸的是,目前没有其他方法。但在用户语音visualstudio.uservoice.com/forums/… 中也有类似的要求。你可以投票和跟进。
    • 感谢您的澄清。 Solunds 之类的替代凭据功能是我一段时间以来最好的朋友。
    猜你喜欢
    • 1970-01-01
    • 2018-03-15
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多