See More

# github-bot-api API for creating GitHub bots and webhooks in Python. > Note: If you want to make use of `GithubApp.client` or `GithubApp.installation_client()`, you > need to install `PyGithub`. ## Quickstart (Webhook) 1. Create a new Smee channel on https://smee.io 2. Install `smee-client` (e.g. `yarn global add smee-client`) 3. Run `smee -u -P /event-handler -p 5000` 4. Create a Python script with the below contents and run it ```python from github_bot_api import Event, Webhook from github_bot_api.flask import create_flask_app def on_any_event(event: Event) -> bool: print(event) return True webhook = Webhook(secret=None) webhook.listen('*', on_any_event) import os; os.environ['FLASK_ENV'] = 'development' flask_app = create_flask_app(__name__, webhook) flask_app.run() ``` ## Quickstart (Application) 1. Create a GitHub App, including a private key 2. Set the `APP_ID` and `PRIVATE_KEY_FILE` environment variables 3. Run the following Python script ```python import os from github_bot_api import GithubApp with open(os.environ['PRIVATE_KEY_FILE']) as fp: private_key = fp.read() app = GithubApp( user_agent='my-bot/0.0.0', app_id=int(os.environ['APP_ID']), private_key=private_key) print(app.client.get_app().owner) ``` ## Combined Example ```python # ... app = GithubApp(...) webhook = Webhook() @webhook.listen('pull_request') def on_pull_request(event: Event) -> bool: client = app.installation_client(event.payload['installation']['id']) repo = client.get_repo(event['repository']['full_name']) pr = repo.get_pull(event['pull_request']['number']) pr.create_issue_comment('Hello from my own bot!') return True # ... ```