Rocky
Rocky

Reputation: 57

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.

Upvotes: 2

Views: 1649

Answers (1)

Tranbi
Tranbi

Reputation: 12701

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'])

Upvotes: 3

Related Questions