Add/Move/Remove issues

Contents


Add an existing issue to the root folder


The following script will add an existing issue to the root folder. In this example, the script will add issue 'SC-196' to the root folder of the project 'SC'

 Click here to expand...
Function
def add_issue_to_root(host_url, username, password, project_key, issue_key):
    """
    This method is used to add an existing issue to root folder
    Template parameters:
    [project_key] the project key
    Query parameter
    [issue_key] the key of the issue to be added
    """

    # The REST API path to add an issue on the root folder
    path_uri = '/rest/com.easesolutions.jira.plugins.requirements/1.0/tree/' + project_key + '/rootissue?'

    # The field-value pair/s that will be added to the query string
    issue_key_field_value = 'issuekey=' + issue_key

    # The query string to be added to the URI
    query_string = issue_key_field_value

    # Send a POST request to add an issue on the root folder of Requirements
    # 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
Main
# ['SC'] project key parameter where the issue will be added
# ['SC-196'] issue key parameter for the issue that will be added
# Store the result of the POST request to [response]
response = add_issue_to_root(HOST_URL, USERNAME, PASSWORD, 'SC', 'SC-196')

# Check response if baseline is created
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
{
    "childReqs": {
        "childReq": []
    }, 
    "issueId": 26238, 
    "description_html": "", 
    "rootfolderdescription": "", 
    "url": "https://addontest.sandbox.easesolutions.com/browse/SC-196", 
    "icon_url": "https://addontest.sandbox.easesolutions.com/images/icons/issuetypes/story.svg", 
    "summary": "As a team, we can finish the sprint by clicking the cog icon next to the sprint name above the \"To Do\" column then selecting \"Complete Sprint\" >> Try closing this sprint now", 
    "key": "SC-196", 
    "issueType": "Story", 
    "position": 7, 
    "id": 8785
}


Add an existing issue to a given folder


The following script will add an existing issue to a given folder. In this example, the script will add issue 'SC-196' to the folder '213' of the project 'SC'

 Click here to expand...
Function
def add_issue_to_folder(host_url, username, password, project_key, folder_id, issue_key):
    """
    This method is used to add an existing issue to a given folder
    Template parameters:
    [project_key] the project key
    [folder_id] the folder ID
    Query parameter
    [issue_key] the key of the issue to be associated
    """

    # The REST API path to add an issue on the specified folder
    path_uri = '/rest/com.easesolutions.jira.plugins.requirements/1.0/tree/' + \
               project_key + '/folderissue/' + folder_id + '?'

    # The field-value pair/s that will be added to the query string
    issue_key_field_value = 'issuekey=' + issue_key

    # The query string to be added to the URI
    query_string = issue_key_field_value

    # Send a POST request to add  an existing issue to a given folder
    # 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
Main
def main():
    # ['SC'] project key parameter where the issue will be added
    # ['213'] folder id parameter of the folder where the issue will be added
    # ['SC-196'] issue key parameter of the issue that will be added
    # Store the result of the POST request to [response]
    response = add_issue_to_folder(HOST_URL, USERNAME, PASSWORD, 'SC', '213', 'SC-196')

    # Check response if baseline is created
    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
{
    "childReqs": {
        "childReq": []
    }, 
    "issueId": 26238, 
    "description_html": "", 
    "rootfolderdescription": "", 
    "url": "https://addontest.sandbox.easesolutions.com/browse/SC-196", 
    "icon_url": "https://addontest.sandbox.easesolutions.com/images/icons/issuetypes/story.svg", 
    "summary": "As a team, we can finish the sprint by clicking the cog icon next to the sprint name above the \"To Do\" column then selecting \"Complete Sprint\" >> Try closing this sprint now", 
    "key": "SC-196", 
    "issueType": "Story", 
    "position": 1, 
    "id": 8786
}


Move an existing issue association to a new folder


The following script will move an issue from one tree folder to another one of the same project. In this example, the script will move issue 'SC-196' from folder '302' to '303'

 Click here to expand...
Function
def move_issue(host_url, username, password, project_key, issue_key, source_folder, target_folder):
    """
    This method is used to move an existing issue association to a new folder
    Template parameters:
    [project_key] the project key
    Query parameter
    [issue_key] the key of the issue to be moved
    [source_folder] the ID of the source folder
    [target_folder] the ID of the destination folder
    """

    # The REST API path to move an existing issue association to a new folder
    path_uri = '/rest/com.easesolutions.jira.plugins.requirements/1.0/tree/' + project_key + '/moveissue?'

    # The field-value pair/s for the query string of the URI
    source_folder_field_value = 'from=' + source_folder
    target_folder_field_value = '&to=' + target_folder
    issue_key_field_value = '&issuekey=' + issue_key

    # The query string to be added to the URI
    query_string = source_folder_field_value + target_folder_field_value + issue_key_field_value

    # Send a POST request to move an existing issue association to the target folder
    # 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
Main
# ['SC'] project key parameter where the issue will be moved
# ['SC-196'] issue key parameter of the issue that will be moved
# [source_folder] the folder id parameter of the source folder
# [target_folder] the folder id parameter of the target folder
# Store the result of the POST request to [response]
response = move_issue(HOST_URL, USERNAME, PASSWORD, 'SC', 'SC-196', '302', '303')

# Check response if issue associated is moved to another folder
if response.status_code == 200:
    print 'Issue association successfully moved to the target folder'
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
Issue association successfully moved to the target folder


Remove issue from root folder


The following script will remove an issue from the root folder of a given project. In this example, issue 'SC-196' will be remove from the project root

 Click here to expand...
Function
def remove_issue_from_root(host_url, username, password, project_key, issue_key):
    """
    This method is used to delete an existing issue from the root folder
    Template parameters:
    [project_key] the project key
    Query parameter
    [issue_key] the key of the issue to be deleted
    """

    # The REST API path to delete an issue on project root
    path_uri = '/rest/com.easesolutions.jira.plugins.requirements/1.0/tree/' + project_key + '/rootissue?'

    # The field-value pair/s that will be added to the query string
    issue_key_field_value = 'issuekey=' + issue_key

    # The query string to be added to the URI
    query_string = issue_key_field_value

    # Send a DELETE request to delete an issue in the Requirements
    # Return the result of the DELETE request
    try:
        return requests.delete(host_url + path_uri + query_string, auth=HTTPBasicAuth(username, password))
    except requests.exceptions.RequestException as e:
        print e
Main
# ['SC'] project key parameter where the issue will be deleted
# ['SC-196'] issue key parameter of the issue where the association will be removed
# Store the result of the POST request to [response]
response = remove_issue_from_root(HOST_URL, USERNAME, PASSWORD, 'SC', 'SC-196')

# Check response if issue association was removed
if response.status_code == 200:
    print "Issue association removed from root folder"
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
Issue association removed from root folder


Remove an issue association from a given folder


The following script will remove an issue from a specified tree folder of a given project. In this example, the script will remove issue 'SC-196' on the folder with the id of '301'.

 Click here to expand...
Function
def remove_issue_from_folder(host_url, username, password, project_key, folder_id, issue_key):
    """
    This method is used to remove an issue association from a given folder
    Template parameters:
    [project_key] the project key
    [folder_id] the folder ID
    Query parameter
    [issue_key] the key of the issue whose association should be removed
    """

    # The REST API path to remove an issue association from a given folder
    path_uri = '/rest/com.easesolutions.jira.plugins.requirements/1.0/tree/' + \
               project_key + '/folderissue/' + folder_id + '?'

    # The field-value pair/s for the query string of the URI
    issue_key_field_value = 'issuekey=' + issue_key

    # The query string to be added to the URI
    query_string = issue_key_field_value

    # Send a DELETE request to remove an issue association from a given folder
    # Return the result of the DELETE request
    try:
        return requests.delete(host_url + path_uri + query_string, auth=HTTPBasicAuth(username, password))
    except requests.exceptions.RequestException as e:
        print e
Main
# ['SC'] project key parameter where the issue will be deleted
# ['301'] folder id parameter where the issue is associated
# ['SC-196'] issue key parameter of the issue where the association will be removed
# Store the result of the POST request to [response]
response = remove_issue_from_folder(HOST_URL, USERNAME, PASSWORD, 'SC', '301', 'SC-196')

# Check response if issue association was removed from the specified folder
if response.status_code == 200:
    print "Issue association removed from folder"
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
Issue association removed from folder