diff --git a/api/main.py b/api/main.py index 6d23f6b7..dec4f4f3 100644 --- a/api/main.py +++ b/api/main.py @@ -895,7 +895,13 @@ def _build_events_query(query_params: dict) -> tuple: if from_ts: if isinstance(from_ts, str): - from_ts = datetime.fromisoformat(from_ts) + try: + from_ts = datetime.fromisoformat(from_ts) + except ValueError as exc: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail="Invalid 'from' parameter, must be an ISO 8601 datetime" + ) from exc query_params['timestamp'] = {'$gt': from_ts} if path: query_params['data.path'] = {'$regex': path} diff --git a/scripts/usermanager.py b/scripts/usermanager.py index 653c3b7f..094a6cab 100755 --- a/scripts/usermanager.py +++ b/scripts/usermanager.py @@ -298,14 +298,9 @@ def main(): default_paths = "\n".join(f" - {path}" for path in DEFAULT_CONFIG_PATHS) parser = argparse.ArgumentParser( description="KernelCI API user management helper", - usage=( - "usermanager.py [-h] [--config CONFIG] [--api-url API_URL] " - "[--token TOKEN] [--instance INSTANCE] [--token-label TOKEN_LABEL]\n" - " []\n\n" - "Commands:\n" - f"{command_list}" - ), epilog=( + "Commands:\n" + f"{command_list}\n\n" "Examples:\n" " ./scripts/usermanager.py invite --username alice --email " "alice@example.org --return-token\n"