Skip to content

Commit 22498bc

Browse files
authored
Use get_project to retrieve project issue types (#583)
The method we were trying to use to fetch issue types appears to not work for Jira Cloud instances. So, we transitioned to getting project metadata and pulling issue types from there.
1 parent 8333d78 commit 22498bc

File tree

2 files changed

+21
-15
lines changed

2 files changed

+21
-15
lines changed

jbi/services/jira.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ def raise_for_status(self, *args, **kwargs):
8585
set_issue_status = instrumented_method(Jira.set_issue_status)
8686
issue_add_comment = instrumented_method(Jira.issue_add_comment)
8787
create_issue = instrumented_method(Jira.create_issue)
88-
issue_createmeta_issuetypes = instrumented_method(Jira.issue_createmeta_issuetypes)
88+
get_project = instrumented_method(Jira.get_project)
8989

9090

9191
@lru_cache(maxsize=1)
@@ -228,8 +228,8 @@ def _all_project_issue_types_exist(actions: Actions):
228228
}
229229
success = True
230230
for project, specified_issue_types in issue_types_by_project.items():
231-
all_issue_types = get_client().issue_createmeta_issuetypes(project)
232-
all_issue_types_names = set(it["name"] for it in all_issue_types)
231+
response = get_client().get_project(project)
232+
all_issue_types_names = set(it["name"] for it in response["issueTypes"])
233233
unknown = set(specified_issue_types) - all_issue_types_names
234234
if unknown:
235235
logger.error(

tests/unit/test_router.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -259,10 +259,12 @@ def test_read_heartbeat_success(anon_client, mocked_jira, mocked_bugzilla):
259259
"DELETE_ISSUES": {"havePermission": True},
260260
},
261261
}
262-
mocked_jira.issue_createmeta_issuetypes.return_value = [
263-
{"name": "Task"},
264-
{"name": "Bug"},
265-
]
262+
mocked_jira.get_project.return_value = {
263+
"issueTypes": [
264+
{"name": "Task"},
265+
{"name": "Bug"},
266+
]
267+
}
266268

267269
resp = anon_client.get("/__heartbeat__")
268270

@@ -324,10 +326,12 @@ def test_jira_heartbeat_unknown_components(anon_client, mocked_jira):
324326

325327
def test_jira_heartbeat_unknown_issue_types(anon_client, mocked_jira):
326328
mocked_jira.get_server_info.return_value = {}
327-
mocked_jira.issue_createmeta_issuetypes.return_value = [
328-
{"name": "Task"},
329-
# missing Bug
330-
]
329+
mocked_jira.get_project.return_value = {
330+
"issueTypes": [
331+
{"name": "Task"},
332+
# missing "Bug"
333+
]
334+
}
331335

332336
resp = anon_client.get("/__heartbeat__")
333337

@@ -351,10 +355,12 @@ def test_head_heartbeat_success(anon_client, mocked_jira, mocked_bugzilla):
351355
"DELETE_ISSUES": {"havePermission": True},
352356
},
353357
}
354-
mocked_jira.issue_createmeta_issuetypes.return_value = [
355-
{"name": "Task"},
356-
{"name": "Bug"},
357-
]
358+
mocked_jira.get_project.return_value = {
359+
"issueTypes": [
360+
{"name": "Task"},
361+
{"name": "Bug"},
362+
]
363+
}
358364

359365
resp = anon_client.head("/__heartbeat__")
360366

0 commit comments

Comments
 (0)