Coverage for chalicelib/core/issue_tracking/jira_cloud_issue.py: 20%
41 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 12:56 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 12:56 +0000
1from chalicelib.utils import jira_client
2from chalicelib.core.issue_tracking.base_issue import BaseIntegrationIssue
5class JIRACloudIntegrationIssue(BaseIntegrationIssue):
6 def __init__(self, token, username, url):
7 self.username = username
8 self.url = url
9 self._client = jira_client.JiraManager(self.url, self.username, token, None)
10 super(JIRACloudIntegrationIssue, self).__init__("JIRA", token)
12 def create_new_assignment(self, project_id, title, description, assignee, issue_type):
13 self._client.set_jira_project_id(project_id)
14 data = {
15 'summary': title,
16 'description': description,
17 'issuetype': {'id': issue_type},
18 'assignee': {"id": assignee},
19 "labels": ["OpenReplay"]
20 }
21 return self._client.create_issue(data)
23 def get_by_ids(self, saved_issues):
24 projects_map = {}
25 for i in saved_issues:
26 if i["integrationProjectId"] not in projects_map.keys():
27 projects_map[i["integrationProjectId"]] = []
28 projects_map[i["integrationProjectId"]].append(i["id"])
30 results = []
31 for project_id in projects_map:
32 self._client.set_jira_project_id(project_id)
33 jql = 'labels = OpenReplay'
34 if len(projects_map[project_id]) > 0:
35 jql += f" AND ID IN ({','.join(projects_map[project_id])})"
36 issues = self._client.get_issues(jql, offset=0)
37 results += issues
38 return {"issues": results}
40 def get(self, project_id, assignment_id):
41 self._client.set_jira_project_id(project_id)
42 return self._client.get_issue_v3(assignment_id)
44 def comment(self, project_id, assignment_id, comment):
45 self._client.set_jira_project_id(project_id)
46 return self._client.add_comment_v3(assignment_id, comment)
48 def get_metas(self, project_id):
49 meta = {}
50 self._client.set_jira_project_id(project_id)
51 meta['issueTypes'] = self._client.get_issue_types()
52 meta['users'] = self._client.get_assignable_users()
53 return {"provider": self.provider.lower(), **meta}
55 def get_projects(self):
56 return self._client.get_projects()