Using jira-python, issue transitions return an empty list despite being visible in JIRA. For example:
updates = client.retrieve_changes(ISSUE_ID)
print([(upd['id'], upd['text']) for upd in updates])
How can I identify the user who changed the status?
In my experience, the best approach is to use the changelog expansion when retrieving the issue rather than relying solely on the transitions endpoint. By retrieving the issue with the expand parameter set to ‘changelog’, you can then iterate through the histories to identify the author of the change. I encountered this limitation too and found that this method provided clear information on who updated fields, including the status. This approach demands a bit of additional parsing, but it reliably gives the details you are looking for.
I solved a similar problem by retrieving the complete issue data with the changelog included. Instead of relying solely on the transitions endpoint, I executed a full issue request while expanding the changelog. Then, I filtered the changelog records to locate entries where the status field was modified. Extracting the author information from those records provided me with the relevant user data. Although this method involves extra iteration and filtering on my end, it offered a reliable workaround to identify who made the status changes.