diff --git a/Scripts/server_jira_api.gd b/Scripts/server_jira_api.gd index 24d10ee..d467b6a 100644 --- a/Scripts/server_jira_api.gd +++ b/Scripts/server_jira_api.gd @@ -36,9 +36,33 @@ func __return_list_of_bugs_thread(map_name:String, callback:Callable) -> void: __bugbot_server_thread.call_deferred("wait_to_finish") return + var map_name_field : String = ProjectSettings.get_setting("bugbot/reporting/jira/map_name_field", DEFAULT_MAP_NAME_FIELD) + var marker_location_field : String = ProjectSettings.get_setting("bugbot/reporting/jira/marker_location_field", DEFAULT_MARKER_LOCATION_FIELD) + var bug_issue_type : String = ProjectSettings.get_setting("bugbot/reporting/jira/bug_issue_type", DEFAULT_BUG_ISSUE_TYPE) + + var show_unresolved : bool = ProjectSettings.get_setting("bugbot/markers/unresolved/show_unresolved_bugs", BugbotServerAPI.DEFAULT_SHOW_UNRESOLVED_BUGS) + var show_in_progress : bool = ProjectSettings.get_setting("bugbot/markers/in_progress/show_in_progress_bugs", BugbotServerAPI.DEFAULT_SHOW_IN_PROGRESS_BUGS) + var show_resolved : bool = ProjectSettings.get_setting("bugbot/markers/resolved/show_resolved_bugs", BugbotServerAPI.DEFAULT_SHOW_RESOLVED_BUGS) + + var unresolved_labels : Array = ProjectSettings.get_setting("bugbot/reporting/jira/status_labels/unresolved_statuses", DEFAULT_UNRESOLVED_STATUSES) + var in_progress_labels : Array = ProjectSettings.get_setting("bugbot/reporting/jira/status_labels/in_progress_statuses", DEFAULT_IN_PROGRESS_STATUSES) + var resolved_labels : Array = ProjectSettings.get_setting("bugbot/reporting/jira/status_labels/resolved_statuses", DEFAULT_RESOLVED_STATUSES) + + var jql_label_query_array : PackedStringArray = [] + if show_unresolved: + for label:String in unresolved_labels: + jql_label_query_array.append("status=\"%s\"" % [label]) + if show_in_progress: + for label:String in in_progress_labels: + jql_label_query_array.append("status=\"%s\"" % [label]) + if show_resolved: + for label:String in resolved_labels: + jql_label_query_array.append("status=\"%s\"" % [label]) + var jql_label_query : String = " OR ".join(jql_label_query_array) + var url_string : String = "api/2/search" var post_data : Dictionary = { - "jql": "project=\"%s\"" % [server_data.project_name], + "jql": "project=\"%s\" AND type=%s AND (%s) AND \"%s\"~\"%s\" AND \"%s\" is not EMPTY" % [server_data.project_name, bug_issue_type, jql_label_query, map_name_field, map_name, marker_location_field], "fields": ["summary", "description", "issuetype", "status"] } if not server_data.map_name_field_key.is_empty(): post_data["fields"].append(server_data.map_name_field_key) @@ -68,17 +92,16 @@ func __return_list_of_bugs_thread(map_name:String, callback:Callable) -> void: var issues_array : Array = issue_response["issues"] for issue:Dictionary in issues_array: var label_dict : Dictionary = { - "show_unresolved": ProjectSettings.get_setting("bugbot/markers/unresolved/show_unresolved_bugs", BugbotServerAPI.DEFAULT_SHOW_UNRESOLVED_BUGS), - "show_in_progress": ProjectSettings.get_setting("bugbot/markers/in_progress/show_in_progress_bugs", BugbotServerAPI.DEFAULT_SHOW_IN_PROGRESS_BUGS), - "show_resolved": ProjectSettings.get_setting("bugbot/markers/resolved/show_resolved_bugs", BugbotServerAPI.DEFAULT_SHOW_RESOLVED_BUGS), + "show_unresolved": show_unresolved, + "show_in_progress": show_in_progress, + "show_resolved": show_resolved, - "unresolved_labels": ProjectSettings.get_setting("bugbot/reporting/jira/status_labels/unresolved_statuses", DEFAULT_UNRESOLVED_STATUSES), - "in_progress_labels": ProjectSettings.get_setting("bugbot/reporting/jira/status_labels/in_progress_statuses", DEFAULT_IN_PROGRESS_STATUSES), - "resolved_labels": ProjectSettings.get_setting("bugbot/reporting/jira/status_labels/resolved_statuses", DEFAULT_RESOLVED_STATUSES), + "unresolved_labels": unresolved_labels, + "in_progress_labels": in_progress_labels, + "resolved_labels": resolved_labels, } var bug : BugbotBugData = __create_bug_data_from_server_response(issue, map_name, label_dict, server_data, true) - if bug: - bug_array.append(bug) + if bug: bug_array.append(bug) callback.call_deferred(bug_array) __bugbot_server_thread.call_deferred("wait_to_finish")