From 66a806c2d1caddd1df6c42f899cc9a385df9fb75 Mon Sep 17 00:00:00 2001 From: granbellllc-png Date: Wed, 11 Nov 2026 11:38:48 +0400 Subject: [PATCH] fix(jiraonprem): do not reset priority on update when unspecified (#6751) - Change default priority from 'Medium' to None in JiraonpremProvider._notify and __update_issue. - In _notify, when creating a new issue, default to 'Medium' (priority or 'Medium') to preserve issue creation defaults. - When updating an issue, only include priority in update payload when explicitly provided. - Add unit tests in tests/test_jira_provider.py asserting priority is preserved when unspecified and forwarded when specified. --- .../jiraonprem_provider.py | 6 +-- tests/test_jira_provider.py | 45 +++++++++++++++++++ 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/keep/providers/jiraonprem_provider/jiraonprem_provider.py b/keep/providers/jiraonprem_provider/jiraonprem_provider.py index febccca89e..3e9fa909c4 100644 --- a/keep/providers/jiraonprem_provider/jiraonprem_provider.py +++ b/keep/providers/jiraonprem_provider/jiraonprem_provider.py @@ -361,7 +361,7 @@ def __update_issue( issue_id: str, summary: str = "", description: str = "", - priority: str = "Medium", + priority: str = None, labels: List[str] = None, components: List[str] = None, custom_fields: dict = None, @@ -521,7 +521,7 @@ def _notify( labels: List[str] = None, components: List[str] = None, custom_fields: dict = None, - priority: str = "Medium", + priority: str = None, **kwargs: dict, ): """ @@ -574,7 +574,7 @@ def _notify( labels=labels, components=components, custom_fields=custom_fields, - priority=priority, + priority=priority or "Medium", **kwargs, ) result["ticket_url"] = f"{self.jira_host}/browse/{result['issue']['key']}" diff --git a/tests/test_jira_provider.py b/tests/test_jira_provider.py index 19ba15e78f..3d5906c395 100644 --- a/tests/test_jira_provider.py +++ b/tests/test_jira_provider.py @@ -355,3 +355,48 @@ def test_notify_with_string_kwargs_handling(self, jira_provider): # If we get here without the "string indices must be integers" error, the fix worked assert result is not None + + @patch("requests.put") + @patch("requests.get") + def test_jiraonprem_update_issue_preserves_priority_when_unspecified( + self, mock_get, mock_put, jiraonprem_provider + ): + """Test that updating an issue without specifying priority does not inject or reset priority (#6751)""" + mock_get.return_value.status_code = 200 + mock_get.return_value.json.return_value = {"key": "TEST-123"} + mock_put.return_value.status_code = 204 + + jiraonprem_provider._notify( + issue_id="TEST-123", + summary="New Summary", + description="New Description", + ) + + mock_put.assert_called_once() + request_body = mock_put.call_args[1]["json"] + assert "update" in request_body + assert "summary" in request_body["update"] + assert "description" in request_body["update"] + assert "priority" not in request_body["update"] + + @patch("requests.put") + @patch("requests.get") + def test_jiraonprem_update_issue_forwards_explicit_priority( + self, mock_get, mock_put, jiraonprem_provider + ): + """Test that updating an issue with explicit priority updates the priority field (#6751)""" + mock_get.return_value.status_code = 200 + mock_get.return_value.json.return_value = {"key": "TEST-123"} + mock_put.return_value.status_code = 204 + + jiraonprem_provider._notify( + issue_id="TEST-123", + summary="New Summary", + priority="Highest", + ) + + mock_put.assert_called_once() + request_body = mock_put.call_args[1]["json"] + assert "update" in request_body + assert "priority" in request_body["update"] + assert request_body["update"]["priority"] == [{"set": {"name": "Highest"}}]