Package description here.
Project description
github-bot-api
API for creating GitHub bots and webhooks in Python.
Note: If you want to make use of
GithubApp.client
orGithubApp.installation_client()
, you need to installPyGithub
.
Quickstart (Webhook)
- Create a new Smee channel on https://smee.io
- Install
smee-client
(e.g.yarn global add smee-client
) - Run
smee -u <SMEE_CHANNEL_URL> -P /event-handler -p 5000
- Create a Python script with the below contents and run it
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)
- Create a GitHub App, including a private key
- Set the
APP_ID
andPRIVATE_KEY_FILE
environment variables - Run the following Python script
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
# ...
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
# ...
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
github-bot-api-0.3.0.tar.gz
(8.7 kB
view hashes)
Built Distribution
Close
Hashes for github_bot_api-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65680a22b6f3cefba15eb93b81bc7a1261c5b359c65bbe7f73ca2f3f3c6cf208 |
|
MD5 | 061c3204a35d98cf99f8cfa41b239b44 |
|
BLAKE2b-256 | 27aebbb897631a8f5af35e1784f27e23ed22d88204f9d2aef7affcc341c0b67f |