Files
redmine-reporter/redmine_reporter/config.py
Кокос Артем Николаевич 5a5ee00726 Config: Report author name
2026-01-21 14:22:18 +07:00

40 lines
1.3 KiB
Python

import os
from dotenv import load_dotenv
load_dotenv()
class Config:
REDMINE_URL = os.getenv("REDMINE_URL", "").rstrip("/")
REDMINE_USER = os.getenv("REDMINE_USER")
REDMINE_PASSWORD = os.getenv("REDMINE_PASSWORD")
REDMINE_AUTHOR = os.getenv("REDMINE_AUTHOR")
DEFAULT_FROM_DATE = os.getenv("DEFAULT_FROM_DATE")
DEFAULT_TO_DATE = os.getenv("DEFAULT_TO_DATE")
@classmethod
def get_author(cls, cli_author: str = "") -> str:
"""Возвращает автора: из CLI если задан, иначе из .env, иначе — заглушку."""
if cli_author:
return cli_author
if cls.REDMINE_AUTHOR:
return cls.REDMINE_AUTHOR
return ""
@classmethod
def get_default_date_range(cls) -> str:
if cls.DEFAULT_FROM_DATE and cls.DEFAULT_TO_DATE:
return f"{cls.DEFAULT_FROM_DATE}--{cls.DEFAULT_TO_DATE}"
# fallback hardcoded
return "2025-12-19--2026-01-31"
@classmethod
def validate(cls) -> None:
if not cls.REDMINE_URL:
raise ValueError("REDMINE_URL is required (set via env or .env)")
if not cls.REDMINE_USER:
raise ValueError("REDMINE_USER is required")
if not cls.REDMINE_PASSWORD:
raise ValueError("REDMINE_PASSWORD is required")