Skip to main content

An async GitHub API library

Project description

An asynchronous GitHub API library.

Development status

https://travis-ci.org/brettcannon/gidgethub.svg?branch=master https://codecov.io/gh/brettcannon/gidgethub/branch/master/graph/badge.svg Documentation Status

Installation

Gidgethub is available on PyPI.

python3 -m pip install gidgethub

Goals

The key goal is to provide a base library for the GitHub API which performs no I/O of its own (a sans-I/O library). This allows users to choose whatever HTTP library they prefer while parceling out GitHub-specific details to this library. This base library is then built upon to provide an abstract base class to a cleaner API to work with. Finally, implementations of the abstract base class are provided for asynchronous HTTP libraries for immediate usage.

Alternative libraries

If you think you want a different approach to the GitHub API, GitHub maintains a list of libraries.

Aside: what’s with the name?

I couldn’t think of a good name that was somehow a play on “GitHub” or somehow tied into Monty Python. And so I decided to play off of GitHub’s octocat as a theme and use my cat’s name, Gidget, as part of the name. Since “Gidget” somewhat sounds like “git”, I decided to go with “gidgethub”.

Changelog

2.1.0

  • The default value for the data argument of gidgethub.abc.GitHubAPI.put() was changed from "" to b"".

  • All type hints were removed (due to mypy not supporting yield in an async function, they were not being tested as being valid).

2.0.0

  • Renamed gidgethub.abc._sleep() to sleep() to make the method public.

  • Renamed the “test” extra to “tests” and added the “dev” extra.

  • Introduced the RateLimitExceeded exception.

  • Methods on GitHubAPI no longer automatically sleep when it’s possible that the call will exceed the user’s rate limit (it’s now up to the user to prevent from going over the rate limit).

  • Made the [treq] install extra depend on Twisted[tls].

1.2.0

  • gidgethub.sansio.Event.from_http() raises a BadRequest of 415 instead of 400 when a content-type other than application/json is provided.

  • More robustly decode the body in gidgethub.sansio.Event.from_http() (i.e. if the content-type doesn’t specify charset, assume UTF-8).

  • Changed the signature of gidgethub.sansio.Event to accept Any for the data argment.

  • Fixed signature verification

1.1.0

  • Introduced gidgethub.treq (thanks to Cory Benfield).

1.0.0

Initial release

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

gidgethub-2.1.0.zip (21.8 kB view details)

Uploaded Source

Built Distribution

gidgethub-2.1.0-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

File details

Details for the file gidgethub-2.1.0.zip.

File metadata

  • Download URL: gidgethub-2.1.0.zip
  • Upload date:
  • Size: 21.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for gidgethub-2.1.0.zip
Algorithm Hash digest
SHA256 1cd96f026389289050ab8fb16920edc065787bf12a95b4f9056d19523fc31985
MD5 26064527b81bf902b2fcc25dbab19952
BLAKE2b-256 8f24f5f651d1978f3b3e498da34f2ee955fece96df0bdfef700a6aed8d802b1d

See more details on using hashes here.

Provenance

File details

Details for the file gidgethub-2.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for gidgethub-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ecd56a4897477d39024297c1ed48782530f2a1276799a20add1202908cf3b811
MD5 aae132b9da267f95546ce05275dcbfa4
BLAKE2b-256 c1d1b3617d69f5e5ceca88f5cdd888ac1469cf6f23e8b937367b751dd6cd3147

See more details on using hashes here.

Provenance

Supported by

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