Go library for accessing the GitHub v3 API
11.3k
Stars
2.3k
Forks
29
Open issues
30
Contributors
AI Analysis
go-github is a mature Go client library for accessing the GitHub REST API v3, maintained by Google. It serves developers and tools that need programmatic access to GitHub repositories, organizations, and user data in Go applications. This library is specifically for REST API integration; teams needing GraphQL should use shurcooL/githubv4 instead.
Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.
AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.
go-github: the de facto Go client library for GitHub's REST API, actively maintained since 2013
go-github is a comprehensive Go client library wrapping the GitHub REST API v3. It is built for Go developers who need to automate GitHub operations — managing repositories, issues, pull requests, GitHub Actions, releases, and more — from Go applications, CI/CD tools, developer tooling, and bots. Maintained by Google with a very high release cadence (currently at v88), it is the dominant Go option for this specific problem and sees consistent use across the broader Go ecosystem including tools like Terraform's GitHub provider.
Created in May 2013, go-github is one of the oldest Go libraries still under active development. It has tracked GitHub API evolution for over 13 years, adopting Go modules, versioned major releases, and maintaining broad API coverage throughout.
Growth has been organic and steady rather than spike-driven. The library benefits from a structural moat: any Go developer automating GitHub workflows defaults to this library. The v88 version number reflects an aggressive release cadence, not breaking changes, keeping it current with GitHub API additions. Low recent star velocity (6/week) reflects a mature library rather than a declining one — its audience is stable and already using it.
The Terraform GitHub provider (integrations/terraform-provider-github, 1138 stars) lists go-github as a dependency, representing verified production usage at scale. GitHub Apps tooling packages like bradleyfalzon/ghinstallation are explicitly documented as companion libraries, implying ecosystem integration. 2,247 forks and 11,262 stars over 13 years, plus v88 release version, indicate sustained real-world use, not just passive interest.
Appears to follow a service-oriented structure where the client is divided into logical service objects (Organizations, Repositories, etc.) mirroring GitHub's REST API documentation hierarchy. Likely uses Go's net/http under the hood with pluggable transport and authentication via http.RoundTripper, enabling oauth2, PAT, and GitHub App authentication patterns.
Codecov badge is present in README, indicating automated test coverage measurement is in place. Specific coverage percentage is not stated in the README excerpt, but the presence of CI badges and CII Best Practices certification strongly suggests meaningful test coverage.
Extremely active: last push was June 27, 2026 — one day before the evaluation date. Version v88 indicates a sustained, high-frequency release history. The project holds a CII Best Practices badge, suggesting documented security and maintenance processes. Go version support policy is explicitly documented, which is a maturity signal.
ADOPT IF: you are writing Go code that needs to interact with GitHub's REST API — this is the standard choice with 13 years of coverage, active maintenance, and ecosystem validation. AVOID IF: you need GitHub GraphQL API coverage (use shurcooL/githubv4 instead), or if you are working in a language other than Go. MONITOR IF: GitHub deprecates or significantly restructures its REST API in favor of GraphQL, which could pressure long-term relevance of REST-focused libraries.
Independent dimensions
Mainstream potential
6/10
Technical importance
7/10
Adoption evidence
8/10
- GitHub REST API deprecation or feature stagnation in favor of GraphQL v4 could reduce the strategic relevance of this library over a multi-year horizon.
- The high major version number (v88) means import paths change frequently, which can create dependency management friction for downstream consumers.
- GitHub App authentication requires third-party packages (ghinstallation, go-githubauth), adding indirect dependencies not controlled by this project.
- As a dependency of critical infrastructure tooling (e.g., Terraform provider), any breaking change or security issue carries downstream risk at scale.
- Google maintains this library but does not appear to be the primary user — long-term stewardship motivation is less certain than for internal tools.
Likely to remain the standard Go library for GitHub REST API access for the foreseeable future. Slow star growth reflects saturation of its addressable audience, not declining utility.
Newsletter
Get analyses like this every Monday
Free weekly digest of the most interesting open-source discoveries.
Languages
Information
- Language
- Go
- License
- BSD-3-Clause
- Last updated
- 14h ago
- Created
- 160mo ago
- Analyzed with
- anthropic/claude-haiku-4-5
Stars over time
Contributors over time
Top 100 contributors only — repos with more will plateau at 100.
Open issues
WithAuthToken authorizes requests outside configured hosts
Auth transports add credentials after cross-origin redirects
Metadata question
Add support for Copilot Spaces
Move compatibility for non github.com targets to `github.With<THING>` options
Top contributors
Similar repos
integrations/terraform-provider-github
This is the official Terraform provider for GitHub, enabling...
| Repository | Stars | Week Δ | Language | Score | Updated |
|---|---|---|---|---|---|
|
|
11.3k | +9 | Go | 8/10 | 14h ago |
|
|
7.7k | — | Python | 7/10 | 3w ago |
|
|
5.9k | — | Go | 8/10 | 4mo ago |
|
|
7.6k | — | Go | 8/10 | 1d ago |
|
|
1.1k | — | Go | 7/10 | 20h ago |
|
|
135.3k | — | Go | 10/10 | 12h ago |
Python equivalent with similar API coverage and adoption within the Python ecosystem. Not a competitor in Go contexts — different language, different audience. PyGithub is the closest analog in terms of purpose and maturity.
Covers GitHub's GraphQL API v4 rather than REST v3. go-github itself recommends githubv4 for GraphQL use cases, positioning them as complementary rather than competing.
Not a competitor — go-github explicitly documents oauth2 as a transport layer dependency for token-based authentication. They are part of the same dependency chain.
Uses go-github internally, confirming a consumer-library relationship. Not a general-purpose API client — purpose-specific to Terraform infrastructure-as-code workflows.
Addresses Git protocol operations (clone, commit, push) in Go, not GitHub API interactions. Solves a different problem at a different abstraction level; may be used alongside go-github in the same project.