Search code examples
pythonpython-3.xjirajira-rest-apipython-jira

How to get the status of the pull request of an issue in jira via python


I am not able to understand how to fetch the status of the pull request via Python jira API. I have gone through https://jira.readthedocs.io/en/latest/examples.html, and searched the internet for it. But I was not able to link the jira issue with the pull request, I saw that the pull request is linked to jira issue id, but was not able to understand how to implement it.

I am using python 3.7

from jira import JIRA
issue = auth_jira.issue('XYZ-000')
pull_request = issue.id.pullrequest

I am getting this error:

AttributeError: str object has no attribute pullrequest

I am not sure how to access pullrequest data in jira. Any leads would help.


Solution

  • I did something similar with another python wrapper for the jira-API: atlassian-python-api.
    Look if it works in your case:

    from atlassian import Jira
    from pprint import pprint
    import json
    
    jira = Jira(
        url='https://your.jira.url',
        username=user,
        password=pwd)
    
    issue = jira.get_issue(issue_key)
    
    # get the custom field ref of the "Development" field (I don't know if it's always the same): 
    dev_field_string = issue["fields"]["customfield_13900"]
    
    # the value of this field is a huge string containing a json, that we must parse ourselves:
    json_str = dev_field_string.split("devSummaryJson=")[1][:-1]
    
    # we load it with the json module (this ensures json is converted as dict, i.e. 'true' is interpreted as 'True'...)
    devSummaryJson = json.loads(json_str)
    
    # the value of interest are under cachedValue/summary:
    dev_field_dic = devSummaryJson["cachedValue"]["summary"]
    pprint(dev_field_dic)
    
    # you can now access the status of your pull requests (actually only the last one):
    print(dev_field_dic['pullrequest']['overall']['state'])