Add child requirements to an issue then Get the child requirements
The following script will add child requirements to the parent issue then get all the child requirements information of the parent issue. In this example, the script will add the following child requirements to SC-190: It will then get all the child requirements of SC-190 and print the returned information. Expand |
---|
Function to add child requirement
Code Block |
---|
language | py |
---|
theme | Confluence |
---|
linenumbers | true |
---|
| 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
Code Block |
---|
language | py |
---|
theme | Confluence |
---|
linenumbers | true |
---|
| 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
Code Block |
---|
language | py |
---|
theme | Confluence |
---|
linenumbers | true |
---|
| 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 Code Block |
---|
language | py |
---|
theme | Confluence |
---|
linenumbers | true |
---|
| # ['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 Code Block |
---|
language | text |
---|
theme | Confluence |
---|
| 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
}
]
} |
|
|