About libraries
You can use libraries to extend and simplify the way your application interacts with GitHub's API. Each library provides pre-built code for a specific programming language. After integrating a library into your project, you can use the pre-built code modules to interact with GitHub's API via a specific programming language.
GitHub maintains official Octokit libraries for some languages. There are also third-party libraries that you can use with GitHub's API, which are not maintained by GitHub.
Official GitHub libraries
GitHub maintains these official client libraries for the GitHub API. These repositories are open source, and community contributions are welcome.
For more information, see "Scripting with the REST API and JavaScript" and "Scripting with the REST API and Ruby."
- JavaScript: octokit.js
- Ruby: octokit.rb
- .NET: octokit.net
- Terraform: terraform-provider-github
Third-party libraries
The following are examples of third-party libraries that you can use to interact with the GitHub API in various programming languages.
These third-party libraries are not maintained by GitHub. Libraries provided by third parties are governed by separate terms of service, privacy policy, and support documentation.
Clojure
- Tentacles: clj-commons/tentacles
Dart
- github.dart: SpinlockLabs/github.dart
Emacs Lisp
- gh.el: sigma/gh.el
Go
- go-github: google/go-github
Haskell
- haskell-github: haskell-github/github
Java
- GitHub API for Java, an object oriented representation of the GitHub API: org.kohsuke.github (From github-api)
- JCabi GitHub API, based on Java7 JSON API (JSR-353), simplifies tests with a runtime GitHub stub, and covers the entire API: github.jcabi.com (Personal Website)
JavaScript
- NodeJS GitHub library: pksunkara/octonode
- Github.js wrapper around the GitHub API: github-tools/github
- Promise-Based CoffeeScript library for the Browser or NodeJS: philschatz/github-client
Julia
- GitHub.jl: JuliaWeb/GitHub.jl
OCaml
- ocaml-github: mirage/ocaml-github
Perl
- Pithub: plu/Pithub
- Net::GitHub: fayland/perl-net-github
PHP
- PHP GitHub API: KnpLabs/php-github-api
- GitHub Joomla! Package: joomla-framework/github-api
- GitHub bridge for Laravel: GrahamCampbell/Laravel-GitHub
PowerShell
- PowerShellForGitHub: microsoft/PowerShellForGitHub
Python
- gidgethub: gidgethub/gidgethub
- ghapi: fastai/ghapi
- PyGithub: PyGithub/PyGithub
- libsaas: duckboard/libsaas
- github3.py: sigmavirus24/github3.py
- agithub: mozilla/agithub
- github-flask: github-flask (Official Website)
- githubkit: yanyongyu/githubkit
- octokit.py: khornberg/octokit.py
Ruby
- GitHub API Gem: piotrmurach/github
Rust
- Octocrab: XAMPPRocky/octocrab
- Octocat: octocat-rs/octocat-rs
Scala
- Github4s: 47deg/github4s
Shell
- ok.sh: whiteinge/ok.sh