From 72a30452ed6710b5d7f191bcd4eb81d21e6f4de1 Mon Sep 17 00:00:00 2001 From: Andrew Bolster Date: Wed, 12 Feb 2025 15:43:03 +0000 Subject: [PATCH 1/2] feat: add archive and unarchive functionality for issues, Issue Archiving #1942 --- jira/client.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/jira/client.py b/jira/client.py index 36dc2fea9..caf451f58 100644 --- a/jira/client.py +++ b/jira/client.py @@ -3600,6 +3600,37 @@ def search_issues( return issues + # Archive Issues + def archive_issues(self, issues: ResultList[Issue]) -> dict[str, Any]: + """Archive a list of Issues. + + Args: + issues (ResultsList[Issue]): List of issues to archive + + Returns: + Dict[str, Any]: Response from the server indicating success or failure for each issue in the list + """ + url = self._get_url('issue/archive') + issue_keys_to_archive = [issue.key for issue in issues] + payload = {"issueIdsOrKeys": issue_keys_to_archive} + response = self._session.put(url, data=json.dumps(payload)) + return response.json() + + def unarchive_issues(self, issues: ResultList[Issue]) -> dict[str, Any]: + """Unarchive a list of Issues. + + Args: + issues (ResultsList[Issue]): List of issues to unarchive + + Returns: + Dict[str, Any]: Response from the server indicating success or failure for each issue in the list + """ + url = self._get_url('issue/unarchive') + issue_keys_to_archive = [issue.key for issue in issues] + payload = {"issueIdsOrKeys": issue_keys_to_archive} + response = self._session.put(url, data=json.dumps(payload)) + return response.json() + # Security levels def security_level(self, id: str) -> SecurityLevel: """Get a security level Resource. From 24dffa13d94e24d19855d9dae15080f313d5e144 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2025 15:45:08 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- jira/client.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/jira/client.py b/jira/client.py index caf451f58..08acc1161 100644 --- a/jira/client.py +++ b/jira/client.py @@ -3604,13 +3604,13 @@ def search_issues( def archive_issues(self, issues: ResultList[Issue]) -> dict[str, Any]: """Archive a list of Issues. - Args: - issues (ResultsList[Issue]): List of issues to archive + Args: + issues (ResultsList[Issue]): List of issues to archive - Returns: - Dict[str, Any]: Response from the server indicating success or failure for each issue in the list + Returns: + Dict[str, Any]: Response from the server indicating success or failure for each issue in the list """ - url = self._get_url('issue/archive') + url = self._get_url("issue/archive") issue_keys_to_archive = [issue.key for issue in issues] payload = {"issueIdsOrKeys": issue_keys_to_archive} response = self._session.put(url, data=json.dumps(payload)) @@ -3619,13 +3619,13 @@ def archive_issues(self, issues: ResultList[Issue]) -> dict[str, Any]: def unarchive_issues(self, issues: ResultList[Issue]) -> dict[str, Any]: """Unarchive a list of Issues. - Args: - issues (ResultsList[Issue]): List of issues to unarchive + Args: + issues (ResultsList[Issue]): List of issues to unarchive - Returns: - Dict[str, Any]: Response from the server indicating success or failure for each issue in the list + Returns: + Dict[str, Any]: Response from the server indicating success or failure for each issue in the list """ - url = self._get_url('issue/unarchive') + url = self._get_url("issue/unarchive") issue_keys_to_archive = [issue.key for issue in issues] payload = {"issueIdsOrKeys": issue_keys_to_archive} response = self._session.put(url, data=json.dumps(payload))