From 22e3fa97b828e0d798cc06afa6d1fb2fcb1284e0 Mon Sep 17 00:00:00 2001 From: Helmut Konrad Schewe Date: Mon, 20 Jul 2026 00:21:29 +0200 Subject: [PATCH 1/5] chore(pyproject): create release on every commit --- pyproject.toml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 5848299..3c24fe2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -67,16 +67,19 @@ changelog_file = "CHANGELOG" [tool.semantic_release.commit_parser_options] patch_tags = [ - "fix", - "perf", "build", "chore", "ci", + "deps", "docs", - "style", + "fix", + "perf", "refactor", + "style", "test", - "deps", +] +minor_tags = [ + "feat", ] [tool.setuptools.packages.find] From f866da26cd8300f5fd05ef1d9d77209e134e086b Mon Sep 17 00:00:00 2001 From: Helmut Konrad Schewe Date: Mon, 20 Jul 2026 14:56:45 +0200 Subject: [PATCH 2/5] fix(secret): add starred password message + adjust unit test --- hoverpower/secret.py | 14 +++++++++++--- tests/test_secret.py | 6 ++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/hoverpower/secret.py b/hoverpower/secret.py index f2a2726..08dc908 100644 --- a/hoverpower/secret.py +++ b/hoverpower/secret.py @@ -19,11 +19,18 @@ HOVERPOWER_SECRET = os.environ.get('HOVERPOWER_SECRET', DEFAULT_SECRET) + +def invalid_secret_msg() -> str: + replaced = len(f'{HOVERPOWER_SECRET}') * '*' + result = f'Invalid HOVERPOWER_SECRET {replaced}\n' + result += f'Example : {DEFAULT_SECRET}' + return result + + try: CIPHER = cryptography.fernet.Fernet(key=HOVERPOWER_SECRET) except ValueError: - utilo.exitx(f'Invalid HOVERPOWER_SECRET format: {HOVERPOWER_SECRET}\n' - f'Example : {DEFAULT_SECRET}') + utilo.exitx(invalid_secret_msg()) def decrypt(path: str) -> bytes | None: @@ -32,7 +39,8 @@ def decrypt(path: str) -> bytes | None: try: data = CIPHER.decrypt(encrypted) except cryptography.fernet.InvalidToken: - utilo.error(f'invalid HOVERPOWER_SECRET for: {path}') + utilo.error(path) + utilo.error(invalid_secret_msg()) return None return data diff --git a/tests/test_secret.py b/tests/test_secret.py index f62f7b0..0cb42aa 100644 --- a/tests/test_secret.py +++ b/tests/test_secret.py @@ -27,7 +27,7 @@ def test_decode_invalid_format(): 'powerdecrypt', expect=False, ) - assert '[ERROR] Invalid HOVERPOWER_SECRET format: newvalue' in completed.stderr + assert '[ERROR] Invalid HOVERPOWER_SECRET ********' in completed.stderr @unittest.mock.patch.dict( @@ -41,5 +41,7 @@ def test_decode_invalid_secret(): expect=False, ) error = completed.stderr - count = error.count('[ERROR] invalid HOVERPOWER_SECRET for') + count = error.count( + '[ERROR] Invalid HOVERPOWER_SECRET ********************************************' + ) assert count == 1 From c7e7054575c83468126c6144fe908e436bf49282 Mon Sep 17 00:00:00 2001 From: Helmut Konrad Schewe Date: Mon, 20 Jul 2026 14:34:19 +0200 Subject: [PATCH 3/5] chore(make): use more secret syntax --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 0ca170d..8cc3602 100644 --- a/Makefile +++ b/Makefile @@ -40,7 +40,7 @@ docker-decrypt: docker-build docker run -v $(CURDIR):/var/workdir\ -v /tmp/power:/tmp/power\ -e HOVERPOWER_STORE=/var/workdir/hoverpower/repo\ - -e HOVERPOWER_SECRET=$(HOVERPOWER_SECRET)\ + -e HOVERPOWER_SECRET\ $(IMAGE_BASE) "powerdecrypt" docker-release: docker-build From 68bbb8353f322098e976287b54ee1ea03e2a3840 Mon Sep 17 00:00:00 2001 From: Helmut Konrad Schewe Date: Mon, 20 Jul 2026 15:00:53 +0200 Subject: [PATCH 4/5] chore(make): format code --- Makefile | 57 +++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/Makefile b/Makefile index 8cc3602..195c85d 100644 --- a/Makefile +++ b/Makefile @@ -14,36 +14,51 @@ docker-upload: docker push $(IMAGE_BASE) docker-doctest: docker-build - docker run -v $(CURDIR):/var/workdir\ - -v /tmp/power:/tmp/power\ - $(IMAGE_BASE) "baw test docs" + docker run\ + -v $(CURDIR):/var/workdir\ + -v /tmp/power:/tmp/power\ + $(IMAGE_BASE)\ + "baw test docs" docker-fasttest: docker-build - docker run -v $(CURDIR):/var/workdir\ - -v /tmp/power:/tmp/power\ - $(IMAGE_BASE) "baw test fast" + docker run\ + -v $(CURDIR):/var/workdir\ + -v /tmp/power:/tmp/power\ + $(IMAGE_BASE)\ + "baw test fast" docker-longtest: docker-build - docker run -v $(CURDIR):/var/workdir\ - -v /tmp/power:/tmp/power\ - $(IMAGE_BASE) "baw test long" + docker run\ + -v $(CURDIR):/var/workdir\ + -v /tmp/power:/tmp/power\ + $(IMAGE_BASE)\ + "baw test long" docker-alltest: docker-build - docker run -v $(CURDIR):/var/workdir\ - -v /tmp/power:/tmp/power\ - $(IMAGE_BASE) "baw test all" + docker run\ + -v $(CURDIR):/var/workdir\ + -v /tmp/power:/tmp/power\ + $(IMAGE_BASE)\ + "baw test all" docker-lint: docker-build - docker run -v $(CURDIR):/var/workdir $(IMAGE_BASE) "baw lint all" + docker run\ + -v $(CURDIR):/var/workdir\ + $(IMAGE_BASE)\ + "baw lint all" docker-decrypt: docker-build - docker run -v $(CURDIR):/var/workdir\ - -v /tmp/power:/tmp/power\ - -e HOVERPOWER_STORE=/var/workdir/hoverpower/repo\ - -e HOVERPOWER_SECRET\ - $(IMAGE_BASE) "powerdecrypt" + docker run\ + -v $(CURDIR):/var/workdir\ + -v /tmp/power:/tmp/power\ + -e HOVERPOWER_STORE=/var/workdir/hoverpower/repo\ + -e HOVERPOWER_SECRET\ + $(IMAGE_BASE)\ + "powerdecrypt" docker-release: docker-build - docker run -v $(CURDIR):/var/workdir\ - -e GH_TOKEN=$(GH_TOKEN) $(IMAGE_BASE)\ - "baw release --no_test --no_linter" + docker run\ + -v $(CURDIR):/var/workdir\ + -e GH_TOKEN=$(GH_TOKEN)\ + $(IMAGE_BASE)\ + "baw release --no_test --no_linter" From e4be8a682d50ea729f3be446fde5a8c4a48c3c29 Mon Sep 17 00:00:00 2001 From: Helmut Konrad Schewe Date: Mon, 20 Jul 2026 15:14:01 +0200 Subject: [PATCH 5/5] chore(make): do not release on release tag --- Makefile | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 195c85d..46f5da0 100644 --- a/Makefile +++ b/Makefile @@ -57,8 +57,12 @@ docker-decrypt: docker-build "powerdecrypt" docker-release: docker-build - docker run\ - -v $(CURDIR):/var/workdir\ - -e GH_TOKEN=$(GH_TOKEN)\ - $(IMAGE_BASE)\ - "baw release --no_test --no_linter" + @if git describe --exact-match --tags HEAD >/dev/null 2>&1; then\ + echo "Current commit is already tagged. Skipping release.";\ + else \ + docker run\ + -v $(CURDIR):/var/workdir\ + -e GH_TOKEN\ + $(IMAGE_BASE)\ + "baw release --no_test --no_linter";\ + fi