diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..63da19b --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.env +*.swp +__pycache__/ diff --git a/api.py b/api.py new file mode 100644 index 0000000..480e015 --- /dev/null +++ b/api.py @@ -0,0 +1,34 @@ +import os + +from dotenv import load_dotenv +from requests import get + +from constants import RELEASE_STATUS_ID + +load_dotenv() + +SITE_URL = os.getenv("SITE_URL") +KEY = os.getenv("KEY") + +class RedmineAPI: + def __init__(self, base: str, key: str) -> None: + self._base = base + self._key = key + self._headers = {"X-Redmine-API-Key": self._key} + + def get(self, *args, **kwargs) -> dict: + if len(args) > 0: + args = tuple([self._base + list(args)[0]] + list(args)[1:]) + + elif "url" in kwargs: + kwargs["url"] = self._base + kwargs["url"] + + kwargs["headers"] = self._headers + + return get(*args, **kwargs).json() + + def get_release_issues(self) -> list[dict]: + result = self.get("/issues.json", params={"assigned_to_id": "me", "status_id": RELEASE_STATUS_ID}) + return result["issues"] + +api = RedmineAPI(SITE_URL, KEY) diff --git a/constants.py b/constants.py new file mode 100644 index 0000000..ac94035 --- /dev/null +++ b/constants.py @@ -0,0 +1 @@ +RELEASE_STATUS_ID = 9 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..4564349 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +dotenv +requests