【问题标题】:Using a GitHub fine-grained token with git pull over HTTPS将 GitHub 细粒度令牌与 git pull over HTTPS 结合使用
【发布时间】:2022-11-19 05:24:52
【问题描述】:

问题:

有没有办法将 GitHub 的细粒度 PAT 的优势与 git pull over HTTPS 的简单性结合起来?如果是这样,那又如何呢?

背景

GitHub 具有“经典”和“细粒度”个人访问令牌 (PAT):

转到“设置”>“开发人员设置”以查看这些。

我一直在使用经典的 PAT 通过 HTTPS 运行 git pull 命令,从 GitHub 拉取最新的提交:

git pull https://${token}@github.com/${owner}/${repo}.git

这可以在不提示输入密码的情况下工作(我将 PAT 的有效期设置得相当短)。

我不能(天真地)在我的git pull命令中用新的细粒度令牌替换经典令牌。它提示我输入密码。 (我认为它被视为用户 ID。)

细粒度 PAT 当然可以与 GitHub REST API 一起使用。如果我有提交 SHA,我可以将 API 用于 get a commit。但与git pull 相比,这是相当低级的,我不想“重新实现很多 Git 功能”(ref)。

细粒度的 PAT 受到欢迎,因为它们能够锁定对特定存储库和特定功能的访问。但是如何(如果有的话)将它们直接与git pull 命令一起使用?

我正在使用 Git v2.38.1(当前最新版本)。

【问题讨论】:

    标签: git github


    【解决方案1】:

    您通常希望避免在 URL 中使用令牌。虽然这在从命令行测试东西时很方便,但它不是很安全,并且 Git 正试图使它更难做到这一点。

    如果要存储此信息,请使用凭证助手。通过将 credential.usehttppath 设置为 true,您可以在凭据帮助程序中使用每个 URL 的凭据。 (您也可以使用类似 credential.https://github.com.usehttppath 的名称。)然后,当系统提示您输入用户名时,指定您的常规用户名,并指定密码令牌。

    如果您需要从 shell 脚本或其他非交互式用途操作某些东西,the Git FAQ mentions how to use a simple credential helper to read from the environment。同样,将令牌指定为密码,而不是用户名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-08
      • 2022-01-21
      • 2016-05-23
      • 2022-11-22
      • 2014-11-29
      • 2022-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多