katalon-cli 0.1.8__tar.gz → 0.1.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {katalon_cli-0.1.8 → katalon_cli-0.1.9}/PKG-INFO +2 -2
- {katalon_cli-0.1.8 → katalon_cli-0.1.9}/README.md +1 -1
- {katalon_cli-0.1.8 → katalon_cli-0.1.9}/pyproject.toml +1 -1
- {katalon_cli-0.1.8 → katalon_cli-0.1.9}/pyproject.toml.orig +1 -1
- {katalon_cli-0.1.8 → katalon_cli-0.1.9}/src/katalon_cli/core/release.py +11 -14
- {katalon_cli-0.1.8 → katalon_cli-0.1.9}/src/katalon_cli/main.py +9 -0
- {katalon_cli-0.1.8 → katalon_cli-0.1.9}/src/katalon_cli/__init__.py +0 -0
- {katalon_cli-0.1.8 → katalon_cli-0.1.9}/src/katalon_cli/core/__init__.py +0 -0
- {katalon_cli-0.1.8 → katalon_cli-0.1.9}/src/katalon_cli/core/backup.py +0 -0
- {katalon_cli-0.1.8 → katalon_cli-0.1.9}/src/katalon_cli/core/checks.py +0 -0
- {katalon_cli-0.1.8 → katalon_cli-0.1.9}/src/katalon_cli/core/compose_gen.py +0 -0
- {katalon_cli-0.1.8 → katalon_cli-0.1.9}/src/katalon_cli/core/docker.py +0 -0
- {katalon_cli-0.1.8 → katalon_cli-0.1.9}/src/katalon_cli/core/paths.py +0 -0
- {katalon_cli-0.1.8 → katalon_cli-0.1.9}/src/katalon_cli/core/state.py +0 -0
- {katalon_cli-0.1.8 → katalon_cli-0.1.9}/src/katalon_cli/py.typed +0 -0
- {katalon_cli-0.1.8 → katalon_cli-0.1.9}/src/katalon_cli/templates/compose.yaml.j2 +0 -0
- {katalon_cli-0.1.8 → katalon_cli-0.1.9}/src/katalon_cli/templates/nginx.conf.j2 +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: katalon-cli
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.9
|
|
4
4
|
Summary: Installer & Updater CLI für Katalon Production-Instanzen
|
|
5
5
|
Author: Karl Krägelin
|
|
6
6
|
Author-email: Karl Krägelin <karlkraegelin@gmail.com>
|
|
@@ -66,7 +66,7 @@ uv run pytest
|
|
|
66
66
|
## Architektur
|
|
67
67
|
|
|
68
68
|
- `core/state.py` — `installation.json`, Single Source of Truth für laufende Version.
|
|
69
|
-
- `core/release.py` — GitHub-Release-Metadaten (`katalon-release.json` Asset)
|
|
69
|
+
- `core/release.py` — GitHub-Release-Metadaten (`katalon-release.json` Asset). Enthält
|
|
70
70
|
optional `env_vars`/`deprecated_env_vars`: `install`/`update` ergänzen neue Pflichtvariablen
|
|
71
71
|
automatisch (Secret generieren oder Default übernehmen), fragen bei fehlendem Default interaktiv
|
|
72
72
|
nach (`--yes` bricht dann ab), tragen neue optionale Variablen auskommentiert in `.env` ein und
|
|
@@ -52,7 +52,7 @@ uv run pytest
|
|
|
52
52
|
## Architektur
|
|
53
53
|
|
|
54
54
|
- `core/state.py` — `installation.json`, Single Source of Truth für laufende Version.
|
|
55
|
-
- `core/release.py` — GitHub-Release-Metadaten (`katalon-release.json` Asset)
|
|
55
|
+
- `core/release.py` — GitHub-Release-Metadaten (`katalon-release.json` Asset). Enthält
|
|
56
56
|
optional `env_vars`/`deprecated_env_vars`: `install`/`update` ergänzen neue Pflichtvariablen
|
|
57
57
|
automatisch (Secret generieren oder Default übernehmen), fragen bei fehlendem Default interaktiv
|
|
58
58
|
nach (`--yes` bricht dann ab), tragen neue optionale Variablen auskommentiert in `.env` ein und
|
|
@@ -2,16 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
import json
|
|
6
|
-
import time
|
|
7
|
-
from pathlib import Path
|
|
8
|
-
|
|
9
5
|
import httpx
|
|
10
6
|
from pydantic import BaseModel, Field
|
|
11
7
|
|
|
12
8
|
GITHUB_REPO = "katalon-collections/katalon"
|
|
13
|
-
CACHE_TTL_SECONDS = 3600
|
|
14
|
-
CACHE_PATH = Path.home() / ".cache" / "katalon-cli" / "releases.json"
|
|
15
9
|
|
|
16
10
|
|
|
17
11
|
class ReleaseRequirements(BaseModel):
|
|
@@ -69,6 +63,16 @@ def _fetch_release_asset(tag: str | None) -> dict:
|
|
|
69
63
|
asset_resp.raise_for_status()
|
|
70
64
|
return asset_resp.json()
|
|
71
65
|
|
|
66
|
+
def get_release_notes(tag: str) -> str:
|
|
67
|
+
"""Lädt den Changelog-Text (Release-Body) für einen Tag."""
|
|
68
|
+
with httpx.Client(timeout=15) as client:
|
|
69
|
+
release = client.get(
|
|
70
|
+
f"https://api.github.com/repos/{GITHUB_REPO}/releases/tags/{tag}"
|
|
71
|
+
)
|
|
72
|
+
release.raise_for_status()
|
|
73
|
+
return release.json().get("body") or ""
|
|
74
|
+
|
|
75
|
+
|
|
72
76
|
def _fetch_releases() -> list[dict]:
|
|
73
77
|
"""Lädt alle veröffentlichten Katalon-Releases."""
|
|
74
78
|
releases: list[dict] = []
|
|
@@ -119,15 +123,8 @@ def get_releases_between(installed_version: str, target_version: str) -> list[Re
|
|
|
119
123
|
]
|
|
120
124
|
|
|
121
125
|
|
|
122
|
-
def get_latest_release(
|
|
123
|
-
if use_cache and CACHE_PATH.exists():
|
|
124
|
-
age = time.time() - CACHE_PATH.stat().st_mtime
|
|
125
|
-
if age < CACHE_TTL_SECONDS:
|
|
126
|
-
return ReleaseMetadata.model_validate_json(CACHE_PATH.read_text())
|
|
127
|
-
|
|
126
|
+
def get_latest_release() -> ReleaseMetadata:
|
|
128
127
|
payload = _fetch_release_asset(tag=None)
|
|
129
|
-
CACHE_PATH.parent.mkdir(parents=True, exist_ok=True)
|
|
130
|
-
CACHE_PATH.write_text(json.dumps(payload))
|
|
131
128
|
return ReleaseMetadata.model_validate(payload)
|
|
132
129
|
|
|
133
130
|
|
|
@@ -593,6 +593,15 @@ def update(
|
|
|
593
593
|
state.record(meta.version, meta.compose_revision, "update")
|
|
594
594
|
state.save(dir)
|
|
595
595
|
console.print(f"[green]✔[/] Update auf {meta.version} abgeschlossen.")
|
|
596
|
+
|
|
597
|
+
try:
|
|
598
|
+
notes = release.get_release_notes(f"v{meta.version}")
|
|
599
|
+
except Exception:
|
|
600
|
+
notes = ""
|
|
601
|
+
if notes:
|
|
602
|
+
console.rule("Changelog")
|
|
603
|
+
console.print(notes)
|
|
604
|
+
|
|
596
605
|
_print_next_steps(dir, state.base_url)
|
|
597
606
|
|
|
598
607
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|