1

我编写了一个简单的 NodeJS HTTPS 侦听器来接收带有身份验证令牌和 git 凭据的 POST。这将在代码返回到存储库后 Web Hook 命中端点 URL 时运行。

我想做的是获取这些凭据并使用这些凭据在该主机上的存储库上运行 git pull (然后启动其他一些东西,这超出了这个问题的范围)。

理想情况下,我愿意:

  1. 运行命令将用户名和密码存储到 git 凭据管理器中
  2. 运行将使用这些凭据的 git pull。
  3. 从 git 凭证管理器中删除凭证

我将通过 NodeJS 完成所有这些工作,但我认为这应该与我的问题无关。如果我知道设置/清除凭据的命令行方式,我应该状态良好。

谁能指出我正确的方向?我一直很难破译这方面的 git 帮助文档。一切都提到从一个人那里输入凭据,然后让它们稍后仍然在那里供脚本使用。我们的安全组不会让我们这样做。

因此,我们需要从脚本中输入并随后清除的凭据。

4

1 回答 1

1

这不完全是我所要求的,但它适用于我的用例。显然,git pull 命令支持指定存储库,而不是默认为存储库中的存储库。因此,我可以针对我的特定用例执行以下操作:

git pull https://[URL_ENCODED_USERNAME]:[URL_ENCODED_PASSWORD]@[NORMAL_ENDPOINT_URL]

一位朋友告诉我,这可能会导致带有 PWD 的 URL 使用以下命令显示,并且可能需要将其删除以确保安全:

git remote -v

但是,至少在我的 git 版本(2.17.1)中,我没有找到显示在任何地方的凭据填充 URL。因此,我可以简单地通过使用其中的 URL 执行 git pull 来涵盖所有三个步骤。

这样做的好处是它现在可以实现,因此我可以利用几乎任何用于 NodeJS 的轻量级 git 包装器,或者我可以只做一个非常简单的 spawn。

于 2020-05-07T12:03:50.220 回答