Skip to main content

A python client for the GitHub API

Project description

GhApi

A delightful and complete interface to GitHub's amazing API

GhApi provides 100% always-updated coverage of the entire GitHub API. Because we automatically convert the OpenAPI spec to a Pythonic API, GhApi is always up to date with the latest changes to GitHub APIs. Furthermore, because this is all done dynamically, the entire package is only 35kB in size!

Using GhApi, you can do anything that you can do through the GitHub web interface or through the git client, such as:

Install

Either pip install ghapi or conda install -c fastai ghapi.

How to use

Throughout this documentation, you will see code inputs and outputs shown in this format:

1+1
2

We recommend reading the documentation on the official site, rather than on GitHub, since not all the functionality described on this page is available through the GitHub viewer.

All of the documentation is available directly as Jupyter Notebooks, for instance the current page you're reading is available as a notebook here. To open any page as an interactive notebook in Google Colab, click the Colab badge at the top of the page.

To access the GitHub API, first create a GhApi object:

api = GhApi()

Every part of the API includes documentation directly in the api object itself. For instance, here's how to explore the groups of functionality provided by the API by displaying the object:

api

Then we can explore the endpoints provided by the API in each group, e.g. for the git group:

api.git

Here's how to learn about an endpoint you want to use, e.g.:

api.git.get_ref

git.get_ref(owner, repo, ref): Get a reference

In Jupyter Notebook full tab completion, parameter lists, etc are provided for all endpoints. Endpoints are called as standard Python methods:

api.git.get_ref(owner='fastai', repo='fastcore', ref='heads/master')

For access to authenticated endpoints, pass a GitHub token. You can also pass any parameters you want auto-inserted into relevant methods, such as owner and repo:

api = GhApi(owner='fastai', repo='fastcore', token=github_token)

We can now repeat the previous method, but only need to pass ref:

api.git.get_ref('heads/master')

Now that we've provided our token, we can use authenticated endpoints such as creating an issue:

issue = api.issues.create("Remember to check out GhApi!")

Since we've now checked out GhApi, let's close this issue. 😎

api.issues.update(issue.number, state='closed')

Tab completion

You can enable tab completion for ghapi by placing the following command at the end of your ~/.bashrc or ~/.zshrc file:

eval "$(completion-ghapi --install)"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ghapi-0.1.4.tar.gz (41.0 kB view details)

Uploaded Source

Built Distribution

ghapi-0.1.4-py3-none-any.whl (38.0 kB view details)

Uploaded Python 3

File details

Details for the file ghapi-0.1.4.tar.gz.

File metadata

  • Download URL: ghapi-0.1.4.tar.gz
  • Upload date:
  • Size: 41.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0.post20200925 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.7

File hashes

Hashes for ghapi-0.1.4.tar.gz
Algorithm Hash digest
SHA256 29ca3acd0cc0f001099c4dd2c3f910918c937fab755f1f674d0fa196d6fcab65
MD5 0d2cd93f3be371cceef89d53e71d9f92
BLAKE2b-256 b364b8300cd8c2d6a3b4e2272d27264990edff7867c6d9e6050a9cca09122015

See more details on using hashes here.

File details

Details for the file ghapi-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: ghapi-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 38.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0.post20200925 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.7

File hashes

Hashes for ghapi-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1a0e0fca0e3b0c0749cbf54fcaede78e6569475c8dc36f55b1c7fb22bf6bf7bb
MD5 15c02823dbdbfe411bc67a9e89ab9b6c
BLAKE2b-256 9a0616937b32af9d2533d389790dd453eb41a0b1d7199c3eac45aad05f29bde7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page