Function to add child requirement
def add_child_requirement_relation(host_url, username, password, project_key, parent_key, child_key):
"""
This method is used to creates a child requirement relation for a given issuekey in a specific project
Template parameters:
[project_key] the project key
[parent_key] the key of the parent issue
Query parameters:
[child_key] key of the child issue
"""
# The REST API path to add an issue on the root folder
path_uri = '/rest/com.easesolutions.jira.plugins.requirements/1.0/child-req/' + project_key + '/' + parent_key + '?'
# The field-value pair/s for the query string of the URI
child_key_field_value = 'childKey=' + child_key
# The query string to be added to the URI
query_string = child_key_field_value
# Send a POST request to creates a child requirement relation for a given issuekey
# Return the result of the POST request
try:
return requests.post(host_url + path_uri + query_string, auth=HTTPBasicAuth(username, password))
except requests.exceptions.RequestException as e:
print e
Function to get all child requirements of an issue
def get_all_child_requirements(host_url, username, password, project_key, parent_key):
"""
This method is used to get all child requirements for a given issuekey in a specific project.
Template parameters:
[project_key] the project key
[parent_key] the key of the parent issue
"""
# The REST API path to add an issue on the root folder
path_uri = '/rest/com.easesolutions.jira.plugins.requirements/1.0/child-req/' + project_key + '/' + parent_key
# Send a GET request to add an issue on the root folder of Requirements
# Return the result of the GET request
try:
return requests.get(host_url + path_uri, auth=HTTPBasicAuth(username, password))
except requests.exceptions.RequestException as e:
print e
Function to handle the addition of child requirements and checking the response
def handle_child_requirement_addition(project_key, parent_key, child_key):
"""
This method is used to handle the addition of child requirements
[project_key] the project key
[parent_key] the key of the parent issue
[child_key] key of the child issue
"""
response = add_child_requirement_relation(HOST_URL, USERNAME, PASSWORD,
project_key, parent_key, child_key)
# Check response if a child requirement is created
if response.status_code == 200:
print '%s %s %s.' % (child_key, 'added as child requirement to', parent_key)
else:
print 'Error code: ', response.status_code
print response.text
Main
# ['SC'] project key parameter where the child requirement will be added
# ['SC-195'] issue key parameter of the parent issue
# ['SC-197'] issue key parameter of the child issue
handle_child_requirement_addition('SC', 'SC-190', 'SC-193')
handle_child_requirement_addition('SC', 'SC-190', 'SC-194')
handle_child_requirement_addition('SC', 'SC-190', 'SC-195')
# ['SC'] project key parameter of the project to get the child requirement information
# ['SC-190'] the issue key parameter of the parent issue
# Store the result of the POST request to [response]
response = get_all_child_requirements(HOST_URL, USERNAME, PASSWORD, 'SC', 'SC-190')
# Check response if all child requirements are returned
if response.status_code == 200:
# Get the value of the JSON response and print in a readable JSON format
# json dumps formats the JSON string in readable format
json_object = json.loads(response.text)
print json.dumps(json_object, indent=4)
else:
print 'Error code: ', response.status_code
print response.text
Refer to Constant variable for information of the following constant variable: [HOST_URL, USERNAME, PASSWORD]
Output
SC-193 added as child requirement to SC-190.
SC-194 added as child requirement to SC-190.
SC-195 added as child requirement to SC-190.
{
"childReq": [
{
"issueId": 10624,
"url": "https://addontest.sandbox.easesolutions.com/browse/SC-193",
"icon_url": "https://addontest.sandbox.easesolutions.com/secure/viewavatar?size=xsmall&avatarId=10303&avatarType=issuetype",
"summary": "Login page accepts non-alphanumeric characters",
"key": "SC-193",
"issueType": "Bug",
"position": 1
},
{
"issueId": 10625,
"url": "https://addontest.sandbox.easesolutions.com/browse/SC-194",
"icon_url": "https://addontest.sandbox.easesolutions.com/secure/viewavatar?size=xsmall&avatarId=10310&avatarType=issuetype",
"summary": "Add check if username and password textbox is empty before trying to submit",
"key": "SC-194",
"issueType": "Improvement",
"position": 2
},
{
"issueId": 10626,
"url": "https://addontest.sandbox.easesolutions.com/browse/SC-195",
"icon_url": "https://addontest.sandbox.easesolutions.com/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype",
"summary": "Review login page requirements 3.2 changes",
"key": "SC-195",
"issueType": "Task",
"position": 3
}
]
}