/octomachinery

Invisible engine driving octobot machines. Simple, yet powerful. [DEMO BOT @ https://github.com/sanitizers/chronographer-github-app] | official web-site is at -->

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

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 <https://tutorial.octomachinery.dev/en/latest/>

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.