部署脚本:哪些git命令可用于从脚本中设置/存储凭据,然后在以后无人看管时清除它们?

时间:2020-05-06 19:24:19

标签: git git-credential-manager

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

我想做的就是获取这些凭据,并使用这些凭据在该主机上的存储库上运行git pull(然后启动其他操作,这不在本问题的范围之内)。

理想情况下,我希望:

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

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

有人能指出我正确的方向吗?我一直很难理解git help文档。一切都提到输入一个人的凭据,然后在以后将它们放置在那里以供脚本使用。我们的安全小组不会允许我们这样做。

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

1 个答案:

答案 0 :(得分:1)

这并不是我所要求的,但是在我的用例中可以使用。显然,git pull command支持指定存储库,而不是默认为存储库中的存储库。结果,我可以针对特定的用例执行以下操作:

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就可以涵盖所有三个步骤。

对此的好处是,现在它可以成功使用,因此我可以将几乎所有轻量级的git包装器都用于NodeJS,或者我可以生成它的简单性。