Kumi
bae80c59fe
Some checks failed
/ chores (push) Failing after 15s
compatibility Updated the environment variable for authentication to align with the pipeline's token-naming conventions, improving integration and consistency across our automated workflows. Error messaging reflects this change for clarity during troubleshooting.
51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
import pathlib
|
|
import json
|
|
import argparse
|
|
import os
|
|
import urllib.request
|
|
import logging
|
|
|
|
from datetime import datetime, timedelta
|
|
|
|
FORGEJO_URL = os.environ.get("FORGEJO_URL", "https://git.private.coffee")
|
|
|
|
try:
|
|
TOKEN = os.environ["PIPELINES_TOKEN"]
|
|
except KeyError:
|
|
logging.error("PIPELINES_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 = os.environ.get("CHORES_EXPIRY_DAYS", 2)
|
|
CHORES = os.environ.get(
|
|
"CHORES_TEXT", "Looks like you forgot to set the CHORES_TEXT environment variable."
|
|
)
|
|
|
|
due_date = (datetime.utcnow() + timedelta(days=EXPIRY_DAYS)).isoformat()
|
|
|
|
payload = {
|
|
"token": TOKEN,
|
|
"title": "Weekly Chores",
|
|
"body": CHORES,
|
|
"due_date": due_date,
|
|
}
|
|
|
|
if ASSIGNEES:
|
|
payload["assignees"] = ASSIGNEES
|
|
|
|
headers = {
|
|
"Content-Type": "application/json",
|
|
"Accept": "application/json",
|
|
}
|
|
|
|
request = urllib.request.Request(
|
|
f"{FORGEJO_URL}/api/v1/repos/{REPO_OWNER}/{REPO_NAME}/issues",
|
|
data=json.dumps(payload).encode("utf-8"),
|
|
headers=headers,
|
|
method="POST",
|
|
)
|
|
|
|
with urllib.request.urlopen(request) as response:
|
|
print(response.read().decode("utf-8"))
|