面向浏览器、Node.js 和 Deno 的一体化 GitHub SDK,整合 REST、GraphQL、GitHub App、Webhook 与 OAuth 功能。
google/go-github
用于访问 GitHub v3 REST API 的 Go 客户端库,按资源提供类型化的调用接口。
- Star
- 11,340
- Fork
- 2,567
- 未关闭 Issue
- 29
- 最近提交
- 昨天
这是什么?
go-github 是一个用于访问 GitHub REST API v3 的 Go 客户端库。创建客户端后,通过与 GitHub API 文档结构对应的服务分组(如 Repositories、Organizations、Pull Requests)调用接口,请求和响应都以 Go 结构体表示,直接使用类型化数据,无需手动解析 JSON。
库中还封装了直接调用 API 时常见的问题处理:支持 Token 认证,提供识别主要和次要速率限制错误的方法,支持按页码或字符串游标翻页,并基于 Go 的 iter 包提供迭代器。此外,它还提供解析和校验 GitHub Webhook 事件负载的结构体与函数。
项目以 Go 模块形式发布并使用带版本号的导入路径,支持 Go 最近两个主版本。条件请求的缓存交由调用方配置的 HTTP 缓存 Transport 处理。
核心功能
- 01为 GitHub REST API 的请求和响应提供类型化的 Go 结构体。
- 02按 GitHub API 文档结构组织的服务式客户端。
- 03支持 Token 与 GitHub App 认证方式。
- 04提供识别主要与次要速率限制错误的辅助方法。
- 05支持页码及游标分页,并提供迭代器。
- 06提供解析和校验 Webhook 事件的结构体与函数。
适用场景
- 用 Go 编写读取或更新仓库、Issue 和 Pull Request 的机器人或 CI 工具。
- 用 Go 开发处理 Webhook 事件的 GitHub App 后端。
- 自动化组织管理任务,如列出成员或管理团队。
- 配合 Mock 库编写依赖 GitHub API 的测试。
快速上手
- 1
将库安装到你的 Go 模块中
go get github.com/google/go-github/v93 - 2
在 Go 代码中导入该包
- 3
创建客户端并调用 API 服务
使用前须知
- 它需要较新的 Go 工具链,默认要求为 Go 的前一个主版本(N-1)或更高。
- 大多数接口需要访问令牌,因此在调用多数接口前必须先配置认证。
标签
常见问题
- go-github 是什么?
- 用于访问 GitHub v3 REST API 的 Go 客户端库,按资源提供类型化的调用接口。 go-github 是一个用于访问 GitHub REST API v3 的 Go 客户端库。创建客户端后,通过与 GitHub API 文档结构对应的服务分组(如 Repositories、Organizations、Pull Requests)调用接口,请求和响应都以 Go 结构体表示,直接使用类型化数据,无需手动解析 JSON。
- go-github 可以免费使用吗?用的什么许可证?
- go-github 以 BSD-3-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
- go-github 还在维护吗?
- 活跃维护中。go-github 最近一次提交是在 2026年11月6日。
- go-github 适合用来做什么?
- 用 Go 编写读取或更新仓库、Issue 和 Pull Request 的机器人或 CI 工具。 用 Go 开发处理 Webhook 事件的 GitHub App 后端。 自动化组织管理任务,如列出成员或管理团队。 配合 Mock 库编写依赖 GitHub API 的测试。
- go-github 怎么安装和运行?
- 将库安装到你的 Go 模块中: go get github.com/google/go-github/v93 在 Go 代码中导入该包 创建客户端并调用 API 服务
- 在哪里获取 go-github?
- 源代码和安装说明在 GitHub 上:https://github.com/google/go-github
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
7874+3 本周1287TypeScriptMIT更新于 10天前
GitHub 官方 MCP 服务器,让 AI 助手读取仓库、管理 Issue 与 PR 并操作 GitHub Actions。
3.4万+187 本周5294GoMIT更新于 18小时前
为 Ruby on Rails 应用提供支付引擎,统一对接 Stripe、Paddle、Braintree 等支付平台的订阅与收款。
2264359RubyMIT维护活跃更新于 5天前
为 GitHub 项目生成可分享的社交预览图,支持实时数据、Logo、字体和背景图案。
2222123TypeScriptMIT更新于 10天前
一个用 Go 编写的跨平台终端仪表盘库,可构建可定制、支持窗口缩放的交互式界面。
3045150GoApache-2.0更新于 2个月前