35 lines
896 B
Python
35 lines
896 B
Python
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)
|