【问题标题】:How can I check the existance of a GitHub repo?如何检查 GitHub 存储库是否存在?
【发布时间】:2011-09-08 10:06:22
【问题描述】:

我编写了一个 PHP 脚本,该脚本必须检查是否存在用户输入的 GitHub 存储库。但我不知道我该怎么做。我认为主要是要知道哪个 HTTP 代码给了 GitHub,但是我在 cURL PHP 文档中找不到类似的东西。我该怎么做? 谢谢。

【问题讨论】:

    标签: php git http github


    【解决方案1】:

    404 检查是错误的,因为如果请求直接失败,例如身份验证问题,它将返回相同的 404 和错误消息。因此,它可能会错误地告诉您的程序该 repo 不存在,但您无法访问 github API...

    【讨论】:

      【解决方案2】:

      istelf 中的HTTP 是一个相当简单的协议,因此只需检查您是否收到404。那意味着它不存在。作为 cURL 的替代方案,您可能需要考虑使用 get_headers,这样的编写强度较低。​​

      【讨论】:

      • 假设您正在寻找 public 存储库。如果您正在检查 private 存储库并且不为有权访问它的用户提供身份验证,您将获得 404。
      • @Tekkub 够公平的。如果你想这样做,Github API 将是你更好的机会。
      • 如果您打开了双因素身份验证,您可以提供一个令牌作为密码以允许 cURL 进行身份验证。
      【解决方案3】:

      查看GitHub API,这可能是最好的方法。

      【讨论】:

      • 我已经检查过了,但是没有办法通过 API 做到这一点。
      • 当然有,但你必须使用旧版本:Repositories API
      • 谢谢,为此点赞,我没注意到,但我会使用 Berry 的回答。
      【解决方案4】:

      如果存储库是私有的或不存在,您应该获得 404 http 状态标头。检查 HTTP 状态标头的 cURL 请求返​​回的标头。

      【讨论】:

      • 但是,问题是,我如何检查标题?
      • stackoverflow.com/questions/408405/… 这看起来很相关 - 检查 #1 答案
      • 谢谢@Obsidian_,但(这个问题的)#1 答案已经给了我一个更好的方法。
      • 没有问题——我假设您已经使用 cURL 是有原因的。 P:
      • 是的,但我只是将它用于此检查,所以我不介意更改。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-01
      • 2022-11-20
      • 2011-08-08
      • 2021-07-31
      • 2015-08-03
      • 2016-04-29
      相关资源
      最近更新 更多