Merge pull request 'Mo fixes' (#19) from develop into master

Reviewed-on: https://hattori.ztsh.eu/iac/karl/pulls/19
This commit is contained in:
Piotr Dec 2025-12-15 22:28:18 +01:00
commit 975e305a61
12 changed files with 29 additions and 26 deletions

View file

@ -5,7 +5,7 @@ steps:
platforms: linux/amd64 platforms: linux/amd64
repo: hattori.ztsh.eu/iac/karl repo: hattori.ztsh.eu/iac/karl
registry: hattori.ztsh.eu registry: hattori.ztsh.eu
tags: latest auto_tag: true
username: stawros username: stawros
password: password:
from_secret: hattori-packages from_secret: hattori-packages

View file

@ -1,4 +1,4 @@
from config import get_settings from karl.config import get_settings
def main() -> None: def main() -> None:

View file

@ -6,10 +6,10 @@ from fastapi import APIRouter, Depends
from fastapi_utils.cbv import cbv from fastapi_utils.cbv import cbv
from starlette.responses import JSONResponse, Response from starlette.responses import JSONResponse, Response
from api.models import Request from karl.api.models import Request
from core.injects import AutowireSupport from karl.core.injects import AutowireSupport
from core.woodpecker import Woodpecker from karl.core.woodpecker import Woodpecker
from model.webhook import WoodpeckerEvent from karl.model.webhook import WoodpeckerEvent
router = APIRouter() router = APIRouter()
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View file

@ -1,7 +1,7 @@
from bubus import EventBus from bubus import EventBus
from injectable import inject from injectable import inject
from core.woodpecker import Woodpecker from karl.core.woodpecker import Woodpecker
class AutowireSupport: class AutowireSupport:

View file

@ -8,10 +8,10 @@ from typing import Annotated
from bubus import EventBus, BaseEvent from bubus import EventBus, BaseEvent
from injectable import injectable, Autowired, autowired from injectable import injectable, Autowired, autowired
from config import get_settings from karl.config import get_settings
from model.webhook import WoodpeckerEvent from karl.model.webhook import WoodpeckerEvent
from services import GitService, DockerService from karl.services import GitService, DockerService
from services.mo import Mo from karl.services.mo import Mo
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View file

@ -3,8 +3,8 @@ import logging
from fastapi import FastAPI from fastapi import FastAPI
from injectable import load_injection_container from injectable import load_injection_container
from config import get_settings from karl.config import get_settings
from util.logging import HandlerFactory from karl.util.logging import HandlerFactory
class KarlApplication: class KarlApplication:
@ -45,13 +45,13 @@ class KarlApplication:
logging_logger.propagate = False logging_logger.propagate = False
def _set_middlewares(self, app: FastAPI): def _set_middlewares(self, app: FastAPI):
from web.middlewares import LoggingMiddleware from karl.web.middlewares import LoggingMiddleware
app.add_middleware(LoggingMiddleware) app.add_middleware(LoggingMiddleware)
def _set_routes(self, app: FastAPI): def _set_routes(self, app: FastAPI):
from core.router import router as core_router from karl.core.router import router as core_router
app.include_router(core_router) app.include_router(core_router)
from api.v1 import router as api_v1_router from karl.api.v1 import router as api_v1_router
app.include_router(api_v1_router, prefix="/api/v1", tags=["v1"]) app.include_router(api_v1_router, prefix="/api/v1", tags=["v1"])
pass pass

View file

@ -5,7 +5,7 @@ import docker
from docker.models.containers import Container from docker.models.containers import Container
from injectable import injectable from injectable import injectable
from model.containers import Tree, Compose, SimpleContainer from karl.model.containers import Tree, Compose, SimpleContainer
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View file

@ -4,7 +4,7 @@ from typing import Annotated
from injectable import injectable, autowired, Autowired from injectable import injectable, autowired, Autowired
from services import Passwords from karl.services import Passwords
class ValueTemplate(Template): class ValueTemplate(Template):

View file

@ -14,7 +14,7 @@ class KeyRequest:
self._parse_prompt(prompt) self._parse_prompt(prompt)
def _parse_prompt(self, prompt: str): def _parse_prompt(self, prompt: str):
prompt_parts = prompt.split("/") prompt_parts = prompt.split(".")
key = None key = None
match len(prompt_parts): match len(prompt_parts):
case 1: case 1:
@ -27,14 +27,14 @@ class KeyRequest:
key = None key = None
if key is None: if key is None:
return return
key_parts = key.split(".") key_parts = key.split("/")
self.path = key_parts[:] if len(key_parts) > 1 else None self.path = key_parts[:] if len(key_parts) > 1 else None
self.entry_name = key_parts[-1] self.entry_name = key_parts[-1]
@injectable(singleton=True) @injectable(singleton=True)
class Passwords: class Passwords:
def __init__(self): def __init__(self):
from config import get_settings from karl.config import get_settings
settings = get_settings() settings = get_settings()
import keyring_backend import keyring_backend
keyring.set_keyring(keyring=keyring_backend.Backend()) keyring.set_keyring(keyring=keyring_backend.Backend())

View file

@ -1,7 +1,7 @@
from git import Repo, Remote from git import Repo, Remote
from injectable import injectable from injectable import injectable
from config import GitConfig, get_settings from karl.config import GitConfig, get_settings
@injectable(singleton=True) @injectable(singleton=True)

3
tests/config/config.yaml Normal file
View file

@ -0,0 +1,3 @@
kp:
file: "../config/kp.kdbx"
secret: "../config/secret.txt"

View file

@ -1,5 +1,5 @@
value: ${sample} value: ${sample}
nested: ${some.nested.value} nested: ${some/nested/value}
custom: ${custom/field} custom: ${custom.field}
uname: ${sample/username} uname: ${sample.username}
invalid: ${double/slash/example} invalid: ${double.dot.example}