diff --git a/src/runboat/webhooks.py b/src/runboat/webhooks.py index 488a905..67fcb73 100644 --- a/src/runboat/webhooks.py +++ b/src/runboat/webhooks.py @@ -1,6 +1,7 @@ from fastapi import APIRouter, BackgroundTasks, Header, Request from .controller import controller +from .github import CommitInfo router = APIRouter() @@ -13,24 +14,24 @@ async def receive_payload( ) -> None: # TODO check x-hub-signature payload = await request.json() - repo = payload.get("repository").get("full_name") - if not repo: - return - action = payload.get("action") if x_github_event == "pull_request": - if action in ("opened", "synchronize"): + if payload["action"] in ("opened", "synchronize"): background_tasks.add_task( controller.deploy_or_start, - repo=repo, - target_branch=payload["pull_request"]["base"]["ref"], - pr=payload["pull_request"]["number"], - git_commit=payload["pull_request"]["head"]["sha"], + CommitInfo( + repo=payload["repository"]["full_name"], + target_branch=payload["pull_request"]["base"]["ref"], + pr=payload["pull_request"]["number"], + git_commit=payload["pull_request"]["head"]["sha"], + ), ) elif x_github_event == "push": background_tasks.add_task( controller.deploy_or_start, - repo=repo, - target_branch=payload["ref"].split("/")[-1], - pr=None, - git_commit=payload["after"], + CommitInfo( + repo=payload["repository"]["full_name"], + target_branch=payload["ref"].split("/")[-1], + pr=None, + git_commit=payload["after"], + ), )