Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

octokitpy

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

octokitpy

Python client for GitHub API

  • 0.15.0
  • PyPI
  • Socket score

Maintainers
1

======== Overview

Python client for GitHub API

Installation

Note octokit and octokit.py were already taken in the cheese shop

::

pip install octokitpy

Documentation

https://octokitpy.readthedocs.io/en/latest/

Examples

REST API::

from octokit import Octokit
repos = Octokit().repos.list_for_user(username="octokit")
for repo in repos.json:
    print(repo["name"])
# Make an unauthenticated request for octokit's public repositories

Webhooks::

from octokit import webhook
webhook.verify(headers, payload, secret, events=['push'])

:code:octokit.py provides a function to verify webhooks <https://developer.github.com/webhooks/>_ sent to your application.

headers
    dictionary of request headers

payload
    string; payload of request

secret
    string; secret provided to GitHub to sign webhook

events
    list; events that you want to receive

verify_user_agent
    boolean; whether or not you want to verify the user agent string of the request

return_app_id
    boolean; whether or not you want to return the app id from the ping event for GitHub applications. This will only return the ``id`` if the event is the ``ping`` event. Otherwise the return value will be boolean.

Note that webhook names are available at :code:from octokit_routes import webhook_names

Authentication

Instantiate a client with the authentication scheme and credentials that you want to use.

basic::

octokit = Octokit(auth='basic', username='myuser', password='mypassword')

token::

response = Octokit(auth='token', token='yak').authorization.get(id=100)

app::

octokit = Octokit(auth='app', app_id='42', private_key=private_key)

app installation::

octokit = Octokit(auth='installation', app_id='42', private_key=private_key)

For applications, provide the application id either from the ping webhook or the application's page on GitHub. The :code:private_key is a string of your private key provided for the application. The :code:app scheme will use the application id and private key to get a token for the first installation id of the application.

API Schema/Routes/Specifications

One can instantiate the Octokit with routes=specification where the specification is one of api.github.com, ghe-2.15, etc.

Data

The :code:octokit client based on the available route data <https://github.com/khornberg/octokitpy-routes>_ and webhook data <https://github.com/khornberg/octokitpy-routes>_

TODOs

GitHub APIs

::

[-] REST (see best practices, integration tests, and errors)

[ ] GraphQL client

[x] GitHub Apps

[ ] OAuth Apps

[x] Webhooks

Tests

::

[x] unit tests

[ ] integration tests - need fixtures to assert against

[x] coverage uploaded to code climate

Errors

::

[ ] Raise `OctokitValidationError` for param validation error

[ ] Raise `OctokitAuthenticationError` for auth error

[ ] Raise `OctokitRateLimitError` for rate limiting errors

Best Practices

::

[ ] throttling

[ ] handles rate limiting

[x] pagination

Documentation

::

[ ] Auto generated documentation

Deployment

::

[x] Deploy wheels

[ ] GitHub releases

Check box guide

::

[ ] Incomplete

[-] Partially completed

[x] Completed

Development

To run the all tests run::

tox

Contributing

Pull requests are very welcome!

Please see CONTRIBUTING.md for more information.

Credits

Package based on cookiecutter-pylibrary <https://github.com/ionelmc/cookiecutter-pylibrary>_

License

MIT

Changelog

0.13.0

Breaking changes

  • Change to OpenAPI specifications
  • Remove python 3.5 support
  • Remove caching of parameters between calls
  • Method parameters are typed checked to the OpenAPI schemas

0.1.0 (?)

  • First release on PyPI.

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc