import requests def extract_affect_versions(labels: list[dict]) -> list[str]: affect_versions = [] for label in labels: if "affects-" in label["name"]: version = label["name"].split("affects-")[1] affect_versions.append(version) return affect_versions class TiReleaseAPI: def __init__(self, base_url: str): self.base_url = base_url def get_bug_issue_fix_release_status(self, issue_node_id: str): url = f"{self.base_url}/issue/{issue_node_id}/status/release" response = requests.get(url) result = response.json() return result["data"] def get_bug_issue_information(self, issue_node_id: str): result = self.get_bug_issue_fix_release_status(issue_node_id) return { "components": result["issue"]["components"], "affect_versions": extract_affect_versions(result["issue"]["labels"]), "fixed_versions": [status["version_name"] for status in result["status"]], }