Code Monkey home page Code Monkey logo

gidgethub's Introduction

gidgethub

An asynchronous GitHub API library.

Development status

https://travis-ci.org/brettcannon/gidgethub.svg?branch=master 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.5.0 (under development)

  • Tighten type hints for parameters that have a default of None but were not typed as Optional.
  • Tweak code to not change semantics but reach 100% coverage.
  • Provide a human-readable string representation of gidgethub.sansio.RateLimit.

2.4.1

  • Tighten up protections against caching ineligible responses.

2.4.0

  • Expand gidgethub.routing.Router.dispatch().

2.3.0

  • Add support for application/x-www-form-urlencoded webhook event payloads. (This also allows for API calls to return this content type, although GitHub currently does not do that.)
  • Introduce gidgethub.routing to help route webhook events to registered asynchronous callbacks.
  • Add type hints.
  • Add a cache argument to gidgethub.abc.GitHubAPI.

2.2.0

  • Introduce gidgethub.tornado to support Tornado (thanks to Matthias Bussonnier and A. Jesse Jiryu Davis for the PR reviews).

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

gidgethub's People

Contributors

brettcannon avatar lukasa avatar kktam avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.