Files
mengyanote/public/mengyanote/Github/Github仓库公共API总结.md
2025-10-05 19:44:37 +08:00

5.5 KiB
Raw Blame History


Releases发行版本相关接口

  • 获取最新发布版本Latest Release
    GET /repos/{owner}/{repo}/releases/latest
    返回最新非预发布、非草稿版的发布详情,包括版本号、发布时间、说明等。(GitHub Docs)

  • 列出所有发布版本List Releases
    GET /repos/{owner}/{repo}/releases
    返回该仓库所有发布版本的列表,不包含未关联发布的普通 Git 标签。(GitHub Docs)

  • 通过 Tag 获取指定发布版本Get a Release by Tag
    GET /repos/{owner}/{repo}/releases/tags/{tag}
    根据具体 tag 名称获取对应发布版本的信息。(GitHub Docs)

  • 创建、更新、删除发布版本Create / Update / Delete Release

    • POST /repos/{owner}/{repo}/releases — 创建新的发布版本

    • PATCH /repos/{owner}/{repo}/releases/{release_id} — 更新发布版本

    • DELETE /repos/{owner}/{repo}/releases/{release_id} — 删除发布版本
      (这些操作通常需要认证权限。)(GitHub Docs)


Git Tags标签相关接口

  • 列出仓库的 Git 标签
    GET /repos/{owner}/{repo}/tags
    返回该仓库所有标签(包括 lightweight 和 annotated。(Stack Overflow, GitHub Docs)

  • 获取标签引用Tag Reference
    GET /repos/{owner}/{repo}/git/refs/tags/{tag_name}
    可获取该标签所对应的对象TAG_SHA用于进一步查询。(Stack Overflow)

  • 获取 Annotated Tag 对象详情
    GET /repos/{owner}/{repo}/git/tags/{tag_sha}
    获取标签对象的完整信息,包括 object.sha 即对应的 commit SHA、tagger、message 等。(Stack Overflow)


Commits提交相关接口

  • 列出提交记录List Commits
    GET /repos/{owner}/{repo}/commits
    返回最新的提交列表,第一个通常为最新提交。响应中包含 SHA、作者、提交信息、签名验证信息等。(GitHub Docs)

  • 获取单个提交详情Get a Commit
    GET /repos/{owner}/{repo}/commits/{commit_sha}
    获取指定提交的详细信息。(GitHub Docs)

  • 比较两个提交Compare Commits
    GET /repos/{owner}/{repo}/compare/{base}...{head}
    用于比较两个 commit 或两个 tag 之间的差异。(Stack Overflow)


综合流程示例

下面是一个常见逻辑,例如想获取最新发布对应的 commit SHA

  1. 调用 GET /repos/{owner}/{repo}/releases/latest 获取最新 release 的 tag_name

  2. 调用 GET /repos/{owner}/{repo}/git/refs/tags/{tag_name} 获取 TAG_SHA。

  3. 调用 GET /repos/{owner}/{repo}/git/tags/{tag_sha} 获取该标签对象的 commit SHAobject.sha

这套流程常用于从发布版本跳转到对应的 Git 提交。(Stack Overflow)


表格总结

功能需求 接口路径 / 方法
最新发布版本信息 GET /repos/{owner}/{repo}/releases/latest
列出所有发布版本 GET /repos/{owner}/{repo}/releases
通过 tag 查询发布 GET /repos/{owner}/{repo}/releases/tags/{tag}
获取标签列表 GET /repos/{owner}/{repo}/tags
获取标签引用TAG_SHA GET /repos/{owner}/{repo}/git/refs/tags/{tag_name}
获取标签对象详情 GET /repos/{owner}/{repo}/git/tags/{tag_sha}
列出提交 GET /repos/{owner}/{repo}/commits
获取指定 commit 信息 GET /repos/{owner}/{repo}/commits/{commit_sha}
比较两个 commit/tag GET /repos/{owner}/{repo}/compare/{base}...{head}

如果你还希望了解更多,如 API 速率限制、认证方式(匿名 vs token、分页处理per_page、page 参数)、使用 GraphQL API 实现同类功能,或具体的 JavaScript fetch 调用示例,都可以随时继续讨论!