karl/app/core/woodpecker.py

25 lines
663 B
Python

import logging
from typing import Annotated
from injectable import injectable, Autowired, autowired, inject, injectable_factory
from app.events import SimpleEventBus
from app.model.webhook import WebhookEvent
logger = logging.getLogger(__name__)
@injectable(singleton=True)
class Woodpecker:
@autowired
def __init__(self, event_bus: Annotated[SimpleEventBus, Autowired]):
logger.info("Woodpecker initialized.")
event_bus.subscribe(WebhookEvent, self.on_ci_event)
def on_ci_event(self, event):
logger.info(f"Received event: {event}")
pass
instance = Woodpecker(inject(SimpleEventBus))
injectable_factory(Woodpecker)(lambda: instance)