Создание сегодняшней версии.

This commit is contained in:
2026-07-24 16:32:26 +03:00
parent b7893df943
commit 7cdd5010a2
2 changed files with 26 additions and 1 deletions

17
api.py
View File

@@ -1,7 +1,7 @@
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
from requests import get, put from requests import get, put, post
from constants import RELEASE_STATUS_ID, VETRO_PROJECT_ID, STAND_FIELD_ID, CHECK_STATUS_ID from constants import RELEASE_STATUS_ID, VETRO_PROJECT_ID, STAND_FIELD_ID, CHECK_STATUS_ID
from utils import get_current_tuesday, date_from_iso, get_responsible from utils import get_current_tuesday, date_from_iso, get_responsible
@@ -39,6 +39,17 @@ class RedmineAPI:
return get(*args, **kwargs).json() return get(*args, **kwargs).json()
def post(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 post(*args, **kwargs).json()
def get_issue(self, issue_id: int) -> dict: def get_issue(self, issue_id: int) -> dict:
result = self.get(f"/issues/{issue_id}.json") result = self.get(f"/issues/{issue_id}.json")
return result["issue"] return result["issue"]
@@ -77,4 +88,8 @@ class RedmineAPI:
"custom_fields": [{"id": STAND_FIELD_ID, "value": "prod"}] "custom_fields": [{"id": STAND_FIELD_ID, "value": "prod"}]
}) })
def add_version(self, data: dict) -> dict:
result = self.post(f"/projects/{VETRO_PROJECT_ID}/versions.json", json={"version": data})
return result["version"]
api = RedmineAPI(SITE_URL, KEY) api = RedmineAPI(SITE_URL, KEY)

View File

@@ -1,4 +1,5 @@
from api import api from api import api
from datetime import date, timedelta
def release_current_version() -> None: def release_current_version() -> None:
@@ -6,3 +7,12 @@ def release_current_version() -> None:
issues = api.get_release_issues(version["id"]) issues = api.get_release_issues(version["id"])
for issue in issues: for issue in issues:
api.release_issue(issue["id"]) api.release_issue(issue["id"])
def add_version() -> None:
today = date.today()
api.add_version({
"name": today.strftime("RELEASE-%d%m%y"),
"due_date": (today + timedelta(weeks=1)).isoformat(),
"description": today.strftime("Релиз от %d.%m.%y"),
"sharing": "descendants"
})