"""`POST /hooks/deploy`: дождаться тишины в мастере и попросить Komodo передеплоить.""" from __future__ import annotations import logging import os from datetime import timedelta from typing import TYPE_CHECKING from beaver_agent.hands import KOMODO if TYPE_CHECKING: from beaver_gateway.jobs.scheduler import JobRun _log = logging.getLogger(__name__) STACK = os.environ.get("KOMODO_STACK", "beaver-agent") async def deploy(run: JobRun) -> None: master = await run.master() if master is not None and await run.conversations.busy(master): await run.retry_in(timedelta(seconds=60)) return run.background(_deploy()) async def _deploy() -> None: if KOMODO is None: _log.warning("deploy hook: KOMODO_URL/KEY/SECRET are not set, nothing deployed") return receipt = await KOMODO.execute("DeployStack", {"stack": STACK, "services": []}) _log.info("deploy hook: komodo accepted %s", receipt.get("id"))