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)