【问题标题】:Is there a stable url to always get the default branch in github?是否有一个稳定的 url 可以始终在 github 中获取默认分支?
【发布时间】:2023-03-10 19:25:01
【问题描述】:

过去,在大多数情况下,您只需添加 blob/master/ to a github url get the raw file, i.e. https://github.com/jacoco/jbang-catalog/blob/master/jbang-catalog.json`

现在使用 master 的旧存储库,但使用 main 的新存储库,该技巧不适用于新存储库。

有没有办法避免调用 rest api 来查找默认分支 main ?

blob/@default/ 或类似的魔法标记?

【问题讨论】:

    标签: github github-api


    【解决方案1】:

    解决方案是使用 HEAD。该符号名称将为您提供默认分支的提示,无论其名称是什么。

    【讨论】:

    • 另一种方法是使用-。虽然它的工作方式有点不同(redirect 到默认分支 URL,并且仅在 blob/-/ 等某些地方工作;而 HEAD 呈现为 commit(如 @ 987654324@),而不是 branch,但这可能无关紧要)。 HEAD 在任何地方都有效(例如:/commits/HEAD 有效,/commits/- 无效)。
    【解决方案2】:

    总是需要对默认分支名称进行实际查找,因为人们总是能够选择与默认 Git 或 GitHub 提供的默认分支不同的默认分支。过去使用 master 以外的名称不太常见,但许多项目长期以来一直使用不同的名称。

    如果您不想使用 REST API,那么您可以使用 Git 进行查找:

    $ git ls-remote --symref origin | head -n1
    ref: refs/heads/dev     HEAD
    

    在这种情况下,默认分支是dev

    如果你只是想在 GitHub 用户界面中获取默认分支上的对象,那么你可以使用HEAD:https://github.com/git/git/blob/HEAD/README.md。请注意,这在本地存储库中不起作用,因为 HEAD 指的是您在本地签出的分支。

    否则,如果您真的想知道分支的名称,那么您需要查询 API。这在 default_branch 下的 REST API 中公开,也应该可以通过 GraphQL API 获得。

    【讨论】:

      猜你喜欢
      • 2019-01-05
      • 2020-05-26
      • 1970-01-01
      • 2021-04-09
      • 1970-01-01
      • 2011-04-14
      • 2017-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多