Metadata-Version: 1.1
Name: octokitpy
Version: 0.14.2
Summary: Python client for GitHub API
Home-page: https://github.com/khornberg/octokit.py
Author: Kyle Hornberg
Author-email: kyle.hornberg@gmail.com
License: MIT license
Description: ========
        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: github,octokit,api
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Utilities
