Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. github

github

BSD-3-ClauseGov89.0.0

A comprehensive Go client library for interacting with the GitHub REST API v3.

Visit WebsiteGitHubGitHub
11.3k stars2.4k forks0 contributors

What is github?

go-github is a Go client library for accessing the GitHub REST API v3. It provides a comprehensive set of methods to interact with GitHub's platform programmatically, handling authentication, rate limiting, pagination, and webhooks. The library abstracts the API's complexity into an idiomatic Go interface, enabling developers to build tools, automation, and integrations with GitHub.

Target Audience

Go developers building applications that need to interact with GitHub's API, such as CI/CD tools, automation scripts, GitHub Apps, or any service that manages repositories, issues, pull requests, or user data.

Value Proposition

Developers choose go-github because it is the de facto standard Go library for GitHub API integration, maintained by Google and widely adopted. It offers full API coverage, robust handling of GitHub-specific concerns like rate limiting and authentication, and a stable, idiomatic Go API that follows semantic versioning.

Overview

Go library for accessing the GitHub v3 API

Use Cases

Best For

  • Building GitHub Apps or integrations in Go
  • Automating repository management and DevOps workflows
  • Creating tools that analyze GitHub data or activity
  • Developing CI/CD pipelines that interact with GitHub
  • Handling GitHub webhook events in Go services
  • Managing issues, pull requests, or projects via API

Not Ideal For

  • Projects requiring GitHub's GraphQL API v4, as go-github is REST-only and explicitly recommends shurcooL/githubv4 for GraphQL needs.
  • Applications where minimizing third-party dependencies is critical, as even basic GitHub App authentication relies on external packages like ghinstallation.
  • Teams working in non-Go environments, since this is a language-specific client library.

Pros & Cons

Pros

Comprehensive API Coverage

Provides methods for nearly all GitHub REST API v3 endpoints, logically organized into services, ensuring developers can access almost any GitHub feature programmatically.

Robust Rate Limiting Handling

Includes built-in detection for primary and secondary rate limits, with utilities like automatic retry and bypass via context flags, reducing common integration pain points.

Idiomatic Pagination Support

Offers both page-number and cursor-based pagination, with new iterator patterns in Go 1.23 for seamless consumption of large datasets without manual looping.

Webhook Event Structs

Provides Go structs for almost all GitHub webhook events, along with payload validation functions, simplifying webhook handling in Go services.

Cons

External Auth Dependencies

GitHub App authentication isn't built-in; it requires third-party packages like ghinstallation or go-githubauth, adding setup complexity and potential maintenance overhead.

Verbose Pointer-Based API

Uses pointer fields for all non-repeated structs to distinguish unset values, making the API more verbose and less intuitive compared to simpler zero-value handling.

Tied to API Volatility

Must constantly adapt to GitHub's calendar versioning, which can introduce breaking changes and require frequent library updates, as noted in the versioning policy.

Frequently Asked Questions

Quick Stats

Stars11,275
Forks2,428
Contributors0
Open Issues21
Last commit12 hours ago
CreatedSince 2013

Tags

#hacktoberfest#github-integration#rest-client#authentication#go-library#api-client#golang#github-api#rate-limiting#go#webhooks#github

Built With

G
Go

Links & Resources

Website

Included in

Go169.1k
Auto-fetched 4 hours ago

Related Projects

go-openaigo-openai

OpenAI ChatGPT, GPT-5, GPT-Image-1, Whisper API clients for Go

Stars10,725
Forks1,701
Last commit9 months ago
DiscordgoDiscordgo

(Golang) Go bindings for Discord

Stars5,967
Forks923
Last commit5 months ago
slackslack

Slack API in Go

Stars4,953
Forks1,193
Last commit3 days ago
google-cloudgoogle-cloud

Google Cloud Client Libraries for Go.

Stars4,483
Forks1,563
Last commit8 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub