Invisible engine driving octobot machines. Simple, yet powerful.


Keywords
Bot, Framework, Framework for writing GitHub Apps, GitHub, GitHub Actions, GitHub API, GitHub Apps, GitHub Checks API, github-bot, github-bot-framework, python-githubapi
License
GPL-3.0+
Install
pip install octomachinery==0.0.17

Documentation

octomachinery @ PyPI Travis CI build status Documentation Status

octomachinery: Bots Without Boilerplate

Invisible engine driving octobot machines. Simple, yet powerful.

Web-site @ https://octomachinery.dev. Stay tuned!

How-to create a GitHub Bot tutorial is ready for preview @ tutorial.octomachinery.dev

Elevator pitch

Here's how you 👍 a just-created comment:

from octomachinery.app.routing import process_event_actions
from octomachinery.app.routing.decorators import process_webhook_payload
from octomachinery.app.runtime.context import RUNTIME_CONTEXT
from octomachinery.app.server.runner import run as run_app


@process_event_actions('issue_comment', {'created'})
@process_webhook_payload
async def on_comment(
        *,
        action, issue, comment,
        repository=None, sender=None,
        installation=None,
        assignee=None, changes=None,
):
    github_api = RUNTIME_CONTEXT.app_installation_client
    comment_reactions_api_url = f'{comment["url"]}/reactions'
    await github_api.post(
        comment_reactions_api_url,
        preview_api_version='squirrel-girl',
        data={'content': '+1'},
    )


run_app(
    name='Thumbs-Up-Bot',
    version='1.0.0',
    url='https://github.com/apps/thuuuuuuuuuuuuuumbs-uuuuuuuuuuuup',
)

Prerequisites

Python 3.7+

License

The source code and the documentation in this project are released under the GPL v3 license.