@@ -1457,6 +1457,40 @@ def get_issue_changelog(self, issue_key: str, start: Optional[int] = None, limit
14571457 url = f"{ base_url } /{ issue_key } ?expand=changelog"
14581458 return self ._get_response_content (url , fields = [("changelog" , params )])
14591459
1460+ def get_changelogs_bulk (
1461+ self ,
1462+ issue_ids_or_keys : List [str ],
1463+ fields_by : Optional [str ] = None ,
1464+ next_page_token : Optional [str ] = None ,
1465+ max_results : Optional [int ] = None ,
1466+ ) -> T_resp_json :
1467+ """
1468+ Returns changelogs for multiple issues in bulk.
1469+ Only Jira Cloud platform.
1470+
1471+ Reference: https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issues/#api-rest-api-3-changelog-bulkfetch-post
1472+
1473+ :param issue_ids_or_keys: List of issue IDs or keys to fetch changelogs for. Required.
1474+ :param fields_by: OPTIONAL: Whether to filter changelog entries by field ID or field name.
1475+ Valid values: "id", "name".
1476+ :param next_page_token: OPTIONAL: Token for the next page of results (pagination).
1477+ :param max_results: OPTIONAL: Maximum number of results to return.
1478+ :return: Paginated list of changelogs for the given issues.
1479+ """
1480+ if not self .cloud :
1481+ raise ValueError ("``get_changelogs_bulk`` method is only available for Jira Cloud platform" )
1482+ url = self .resource_url ("changelog/bulkfetch" , api_version = 3 )
1483+ data : dict = {"issueIdsOrKeys" : issue_ids_or_keys }
1484+ if fields_by is not None :
1485+ if fields_by not in ("id" , "name" ):
1486+ raise ValueError ("``fields_by`` must be either 'id' or 'name'" )
1487+ data ["fieldsByKeys" ] = fields_by == "name"
1488+ if next_page_token is not None :
1489+ data ["nextPageToken" ] = next_page_token
1490+ if max_results is not None :
1491+ data ["maxResults" ] = int (max_results )
1492+ return self .post (url , data = data )
1493+
14601494 def issue_add_json_worklog (self , key : str , worklog : Union [dict , str ]):
14611495 """
14621496
0 commit comments