【问题标题】:Azure-Functions: Submodule requiring Creds: fatal: could not read Username forAzure-Functions:需要凭据的子模块:致命:无法读取用户名
【发布时间】:2017-08-09 07:07:39
【问题描述】:

我有一个 Azure Function App,它设置为从 VisualStudio.com Team Services git 存储库持续部署。它利用子模块。其中一个子模块在 GitHub 上是公开可用的,它可以很好地加载,没有任何问题。

另一个子模块受 VisualStudio.com Team Services Git 存储库的保护(与主存储库在同一帐户下)。此子模块在部署时出错。

Based on information provided by Microsoft,子模块使用以下两个 git 命令启动:

git submodule sync
git submodule update --init --recursive --force

这些命令中的第一个似乎可以正确执行,而第二个似乎出错了。以下是输出:

Cloning into 'secure-submodule'...
Fatal: COMException encountered.\r
bash: /dev/tty: No such device or address
error: failed to execute prompt script (exit code 1)
fatal: could not read Username for ''https://myVSStudio.visualstudio.com': Invalid argument
fatal: clone of 'https://myVSStudio.visualstudio.com/DefaultCollection/_git/secure-submodules' into submodule path 'secure-submodules' failed

我假设这是因为第二个子模块需要凭据,但我不确定如何提供它。

由于主要项目持续部署是从受保护的 git 存储库中提取的,我认为子模块也可以这样做。

【问题讨论】:

    标签: git azure deployment continuous-deployment azure-functions


    【解决方案1】:

    作为一种解决方法,我更新了 .gitmodules 文件,使 URL 包含用户名和密码,并创建了一个 Personal Access Token 以在 URL 中使用。

    例如在 .gitmodules 中,url 已更改:

    [submodule "mySub"]
        path = mySub
        url = https://mysub:PERSONAL_ACCESS_TOKEN_VALUE@YOUR_GIT_REPO_URL
    

    这可以通过以下方式设置:

    https://YOUR_SUB_DOMAIN.visualstudio.com/_details/security/tokens

    当我创建个人访问令牌时,我将其限制为仅限代码读取操作。

    我不喜欢这个解决方案的地方(我希望其他人有更好的解决方案):

    1. 个人访问令牌返回到主项目的源代码控制。
    2. 我没有看到将个人访问令牌限制为仅一个的方法 存储库,因此此令牌可用于读取我拥有的任何存储库 访问。
    3. 您必须指定令牌有效的时间段,最长的时间段是一年。这在某些方面很好,但我敢肯定,一年后我会完全忘记我为使其正常工作所做的工作,而且我确信错误消息不会那么明显。

    【讨论】:

      【解决方案2】:

      我刚刚偶然发现在私有代理上运行 Azure 管道时遇到了同样的问题,该解决方案可能适合您所拥有的。我已经在运行git config --global credential.helper cache 的主机代理上配置了 git 凭证缓存,分别输入用户名和密码,名称为个人访问令牌和令牌。 git config --global credential.helper store.git-credentials 上存储像 https://[pat_name]:[token]@[owner].visualstudio.com 这样的字符串在我的情况下不起作用,但可能对你的情况有所帮助。我知道您可能已经摆脱了这个问题,但我希望它可以帮助任何仍在为此苦苦挣扎的人。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-09
        • 2022-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-09
        相关资源
        最近更新 更多