diff --git a/.woodpecker/latest.yaml b/.woodpecker/latest.yaml index 123d5aa..8309154 100644 --- a/.woodpecker/latest.yaml +++ b/.woodpecker/latest.yaml @@ -5,7 +5,7 @@ steps: platforms: linux/amd64 repo: hattori.ztsh.eu/iac/karl registry: hattori.ztsh.eu - tags: latest + auto_tag: true username: stawros password: from_secret: hattori-packages diff --git a/src/karl/__init__.py b/src/karl/__init__.py index 5dec085..111ed37 100644 --- a/src/karl/__init__.py +++ b/src/karl/__init__.py @@ -1,4 +1,4 @@ -from config import get_settings +from karl.config import get_settings def main() -> None: diff --git a/src/karl/api/v1.py b/src/karl/api/v1.py index 3bc8090..de85719 100644 --- a/src/karl/api/v1.py +++ b/src/karl/api/v1.py @@ -6,10 +6,10 @@ from fastapi import APIRouter, Depends from fastapi_utils.cbv import cbv from starlette.responses import JSONResponse, Response -from api.models import Request -from core.injects import AutowireSupport -from core.woodpecker import Woodpecker -from model.webhook import WoodpeckerEvent +from karl.api.models import Request +from karl.core.injects import AutowireSupport +from karl.core.woodpecker import Woodpecker +from karl.model.webhook import WoodpeckerEvent router = APIRouter() logger = logging.getLogger(__name__) diff --git a/src/karl/core/injects.py b/src/karl/core/injects.py index e7081a7..34a6280 100644 --- a/src/karl/core/injects.py +++ b/src/karl/core/injects.py @@ -1,7 +1,7 @@ from bubus import EventBus from injectable import inject -from core.woodpecker import Woodpecker +from karl.core.woodpecker import Woodpecker class AutowireSupport: diff --git a/src/karl/core/woodpecker.py b/src/karl/core/woodpecker.py index 24af84c..9f42b3b 100644 --- a/src/karl/core/woodpecker.py +++ b/src/karl/core/woodpecker.py @@ -8,10 +8,10 @@ from typing import Annotated from bubus import EventBus, BaseEvent from injectable import injectable, Autowired, autowired -from config import get_settings -from model.webhook import WoodpeckerEvent -from services import GitService, DockerService -from services.mo import Mo +from karl.config import get_settings +from karl.model.webhook import WoodpeckerEvent +from karl.services import GitService, DockerService +from karl.services.mo import Mo logger = logging.getLogger(__name__) diff --git a/src/karl/main.py b/src/karl/main.py index dbd5033..fc75ec3 100644 --- a/src/karl/main.py +++ b/src/karl/main.py @@ -3,8 +3,8 @@ import logging from fastapi import FastAPI from injectable import load_injection_container -from config import get_settings -from util.logging import HandlerFactory +from karl.config import get_settings +from karl.util.logging import HandlerFactory class KarlApplication: @@ -45,13 +45,13 @@ class KarlApplication: logging_logger.propagate = False def _set_middlewares(self, app: FastAPI): - from web.middlewares import LoggingMiddleware + from karl.web.middlewares import LoggingMiddleware app.add_middleware(LoggingMiddleware) 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) - 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"]) pass diff --git a/src/karl/services/containers.py b/src/karl/services/containers.py index 8803913..3ec794c 100644 --- a/src/karl/services/containers.py +++ b/src/karl/services/containers.py @@ -5,7 +5,7 @@ import docker from docker.models.containers import Container from injectable import injectable -from model.containers import Tree, Compose, SimpleContainer +from karl.model.containers import Tree, Compose, SimpleContainer logger = logging.getLogger(__name__) diff --git a/src/karl/services/mo.py b/src/karl/services/mo.py index 9d5756e..c063d62 100644 --- a/src/karl/services/mo.py +++ b/src/karl/services/mo.py @@ -4,7 +4,7 @@ from typing import Annotated from injectable import injectable, autowired, Autowired -from services import Passwords +from karl.services import Passwords class ValueTemplate(Template): diff --git a/src/karl/services/passwords.py b/src/karl/services/passwords.py index a76dac8..bf2cda0 100644 --- a/src/karl/services/passwords.py +++ b/src/karl/services/passwords.py @@ -14,7 +14,7 @@ class KeyRequest: self._parse_prompt(prompt) def _parse_prompt(self, prompt: str): - prompt_parts = prompt.split("/") + prompt_parts = prompt.split(".") key = None match len(prompt_parts): case 1: @@ -27,14 +27,14 @@ class KeyRequest: key = None if key is None: return - key_parts = key.split(".") + key_parts = key.split("/") self.path = key_parts[:] if len(key_parts) > 1 else None self.entry_name = key_parts[-1] @injectable(singleton=True) class Passwords: def __init__(self): - from config import get_settings + from karl.config import get_settings settings = get_settings() import keyring_backend keyring.set_keyring(keyring=keyring_backend.Backend()) diff --git a/src/karl/services/vcs.py b/src/karl/services/vcs.py index 8796787..5526503 100644 --- a/src/karl/services/vcs.py +++ b/src/karl/services/vcs.py @@ -1,7 +1,7 @@ from git import Repo, Remote from injectable import injectable -from config import GitConfig, get_settings +from karl.config import GitConfig, get_settings @injectable(singleton=True) diff --git a/tests/config/config.yaml b/tests/config/config.yaml new file mode 100644 index 0000000..d300746 --- /dev/null +++ b/tests/config/config.yaml @@ -0,0 +1,3 @@ +kp: + file: "../config/kp.kdbx" + secret: "../config/secret.txt" diff --git a/tests/files/test1/test.mo.yaml b/tests/files/test1/test.mo.yaml index 11bd6b5..d5a82d5 100644 --- a/tests/files/test1/test.mo.yaml +++ b/tests/files/test1/test.mo.yaml @@ -1,5 +1,5 @@ value: ${sample} -nested: ${some.nested.value} -custom: ${custom/field} -uname: ${sample/username} -invalid: ${double/slash/example} +nested: ${some/nested/value} +custom: ${custom.field} +uname: ${sample.username} +invalid: ${double.dot.example}