diff --git a/jira/client.py b/jira/client.py index 36dc2fea9..08acc1161 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.