Enhance env var handling in chore script
Some checks failed
/ chores (push) Failing after 16s

Refactored the chores script to improve the robustness of environment
variable handling. This includes mandatory checks for the FORGEJO_TOKEN
and default values or prompts for missing optional environment
variables. Added assertion to ensure the token is present after
retrieval which, combined with the KeyError, will provide better error
handling. Optional variables now use a fallback value directly in the
get method for concise expression.

Resolves issue with silent failures when required environment settings
are not provided.
This commit is contained in:
Kumi 2024-02-18 13:21:39 +01:00
parent 619d7e9fef
commit 3d13ae755a
Signed by: kumi
GPG key ID: ECBCC9082395383F

View file

@ -11,18 +11,21 @@ FORGEJO_URL = os.environ.get("FORGEJO_URL", "https://git.private.coffee")
try:
TOKEN = os.environ["FORGEJO_TOKEN"]
except KeyError:
assert TOKEN
except (KeyError, AssertionError):
logging.error("FORGEJO_TOKEN environment variable is required")
exit(1)
ASSIGNEES = os.environ.get("CHORES_ASSIGNEES", "").split()
REPO_OWNER = os.environ.get("CHORES_REPO_OWNER", "PrivateCoffee")
REPO_NAME = os.environ.get("CHORES_REPO_NAME", "chores")
EXPIRY_DAYS = int(os.environ.get("CHORES_EXPIRY_DAYS", 2))
CHORES = os.environ.get(
"CHORES_TEXT", "Looks like you forgot to set the CHORES_TEXT environment variable."
ASSIGNEES = os.environ.get("CHORES_ASSIGNEES").split()
REPO_OWNER = os.environ.get("CHORES_REPO_OWNER") or "PrivateCoffee"
REPO_NAME = os.environ.get("CHORES_REPO_NAME") or "chores"
EXPIRY_DAYS = int(os.environ.get("CHORES_EXPIRY_DAYS") or 2)
CHORES = (
os.environ.get("CHORES_TEXT")
or "Looks like you forgot to set the CHORES_TEXT environment variable."
)
due_date = (datetime.utcnow() + timedelta(days=EXPIRY_DAYS)).isoformat()
payload = {