【问题标题】:Error in retrieving the number of clones from one of my Git repositories从我的 Git 存储库之一检索克隆数时出错
【发布时间】:2021-06-18 05:09:37
【问题描述】:

我正在尝试通过 shell 下载我的一个存储库的克隆数。我已按照reference 中的说明进行操作,但无济于事。我就是这样做的:

$ curl -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/my-github-username/my-repo-name/traffic/clones

我得到的是:

{
  "message": "Must have push access to repository",
  "documentation_url": "https://docs.github.com/rest/reference/repos#get-repository-clones"
}

我不明白为什么我会得到这个结果。我尝试从存储库外部和内部发出命令,但结果是一样的。我还尝试通过以下方式告诉curl 使用与我的帐户关联的 SSH 密钥:

curl --key ~/.ssh/id_github --pubkey ~/.ssh/id_github.pub ...

但结果是一样的。我也试过了

curl -u my-github-username --key ~/.ssh/id_github --pubkey ~/.ssh/id_github.pub ...

但我一直得到相同的结果。

我该如何解决这个问题?

【问题讨论】:

  • 由于您的存储库是私有的,因此您需要创建一个个人访问令牌并将其作为您的用户在类似于这样的 curl 请求中传递:docs.github.com/en/rest/overview/…
  • @Thomas5631 感谢您的评论。但是,我从未说过我的存储库是私有的。事实上,它是公开的。

标签: git shell github ssh


【解决方案1】:

您不能使用 SSH 密钥来发出 API 请求。要进行身份验证,您需要使用某种令牌,在您的情况下,这可能是个人访问令牌。您可以通过进入开发者设置页面创建一个具有repo 范围的应用程序。

获得该令牌后,您可以运行它(替换 MY-TOKEN-HERE):

$ curl -H "Accept: application/vnd.github.v3+json" \
  -H "Authorization: Token MY-TOKEN-HERE" \
  https://api.github.com/repos/my-github-username/my-repo-name/traffic/clones

一旦你这样做了,你应该能够成功地提出请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-07
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多