google

google/go-github

Go BSD-3-Clause Dev Tools

Go library for accessing the GitHub v3 API

11.3k stars
2.3k forks
active
GitHub +9 / week

11.3k

Stars

2.3k

Forks

29

Open issues

30

Contributors

v89.0.0 06 Jul 2026

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.

Dev Tools Library Discovery value: 2/10
Documentation 8/10
Activity 9/10
Community 9/10
Code quality 8/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 8/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

github-api-client rest-api go-library api-wrapper infrastructure
Actively maintained Well documented Popular Niche/specialized use case Beginner friendly Production ready
Deep Analysis · Based on README and public signals
2w ago

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.

Origin

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

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.

In production

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.

Code analysis
Architecture

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.

Tests

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.

Maintenance

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.

Honest verdict

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

Risks
  • 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.
Prediction

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.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

Go
99.8%
Shell
0.2%

Information

Language
Go
License
BSD-3-Clause
Last updated
14h ago
Created
160mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Similar repos

PyGithub

PyGithub/PyGithub

PyGithub is a Python library providing typed, object-oriented access to the...

7.7k Python Dev Tools
golang

golang/oauth2

The golang/oauth2 package provides a client implementation of the OAuth 2.0...

5.9k Go Security
go-git

go-git/go-git

go-git is a pure Go implementation of Git that provides both low-level...

7.6k Go Dev Tools
integrations

integrations/terraform-provider-github

This is the official Terraform provider for GitHub, enabling...

1.1k Go DevOps
golang

golang/go

The Go programming language is an open source, statically typed, compiled...

135.3k Go Dev Tools
vs. alternatives
PyGithub/PyGithub

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.

shurcooL/githubv4

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.

golang/oauth2

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.

integrations/terraform-provider-github

Uses go-github internally, confirming a consumer-library relationship. Not a general-purpose API client — purpose-specific to Terraform infrastructure-as-code workflows.

go-git/go-git

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.