Get all existing baselines


The following script will get all existing baselines

Function
def get_all_baselines(host_url, username, password):
    """
    This method is used to get all baselines
    """

    # The REST API path to search for tree elements
    path_uri = '/rest/com.easesolutions.jira.plugins.requirements/1.0/baselines'

    # Send a GET request to get all baselines
    # 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
Main
# Store the result of the POST request to [response]
response = get_all_baselines(HOST_URL, USERNAME, PASSWORD)

# Check response if all baselines 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
[
    {
        "description": "Baseline for release 4.2", 
        "prjKey": "SC", 
        "created": 1506483953577, 
        "userId": "myUsername", 
        "id": 4, 
        "name": "Sand Castle Release 4.2"
    }, 
    {
        "description": "Baseline for release 5.1", 
        "prjKey": "SC", 
        "created": 1506483626814, 
        "userId": "myUsername", 
        "id": 3, 
        "name": "Sand Castle Release 5.1"
    }
]





Get all baselines for a given project


The following script will get all baselines for a given project. In this example, we will get all the baselines for the project Sand Castle 'SC'.

Function
def get_baseline_by_project(host_url, username, password, project_key):
    """
    This method is used to get all baselines for a given project
    Template parameters:
    [project_key] the project key
    """

    # The REST API path to get all baselines for a given project
    path_uri = '/rest/com.easesolutions.jira.plugins.requirements/1.0/baselines/project/' + project_key

    # Send a GET request to get all baselines for a given project
    # 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
Main
# ['SC'] project key parameter for the project where the baselines will be retrieved
# Store the result of the POST request to [response]
response = get_baseline_by_project(HOST_URL, USERNAME, PASSWORD, 'SC')

# Check response if all baselines of a project 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
[
    {
        "description": "Baseline for release 4.2", 
        "prjKey": "SC", 
        "created": 1506483953577, 
        "userId": "myUsername", 
        "id": 4, 
        "name": "Sand Castle Release 4.2"
    }, 
    {
        "description": "Baseline for release 5.1", 
        "prjKey": "SC", 
        "created": 1506483626814, 
        "userId": "myUsername", 
        "id": 3, 
        "name": "Sand Castle Release 5.1"
    }
]





Create baseline on the projects root folder


The following script will create a new baseline on the project root folder.

In this example, a new baseline will be created for the Sand Castle Release 4.2. The JSON response for the successful baseline creation will be printed.

Function
def create_baseline_root_folder(host_url, username, password, project_key, baseline_name, baseline_description):
    """
    This method is used to create a new baseline on the project's root folder
    Template parameters:
    [project_key] the project key
    Query parameters:
    [baseline_name] the name of the new baseline
    [baseline_description] description of the new baseline
    """

    # The REST API path to create a new baseline on the project's root folder
    path_uri = '/rest/com.easesolutions.jira.plugins.requirements/1.0/tree/' + project_key + '/baseline?'

    # The field-value pair/s that will be added to the query string
    baseline_name_field_value = 'name=' + baseline_name
    baseline_description_field_value = '&description=' + baseline_description

    # The query string to be added to the URI
    query_string = baseline_name_field_value + baseline_description_field_value

    # Send a POST request to create a new baseline on the project's root 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 baseline will be created
# ['Sand Castle Release 4.2'] name parameter for the baseline to be created
# ['Baseline for release 4.2'] description parameter for the baseline to be created
# Store the result of the POST request to [response]
response = create_baseline_root_folder(HOST_URL, USERNAME, PASSWORD, 'SC',
                                       'Sand Castle Release 4.2', 'Baseline for release 4.2')

# 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
{
    "description": "Baseline for release 4.2", 
    "prjKey": "SC", 
    "created": 1506678665804, 
    "userId": "myUsername", 
    "id": 7, 
    "name": "Sand Castle Release 4.2"
}





Create a new baseline on a given folder


The following script will create a new baseline on a given folder. Returns the new baseline in case of success

In this example, a new baseline will be created for the GUI Requirement Folder for its 1.0 release milestone. The JSON response for the successful baseline creation will be printed.

Function
def create_baseline_specific_folder(host_url, username, password, project_key,
                                    folder_id, baseline_name, baseline_description):
    """
    This method is used to create a new baseline on a given folder
    Template parameters:
    [project_key] the project key
    [folder_id] the ID of the folder to create the baseline on
    Query parameters:
    [baseline_name] the name of the new baseline
    [baseline_description] description of the new baseline
    """

    # The REST API path to create a new baseline on a given folder
    path_uri = '/rest/com.easesolutions.jira.plugins.requirements/1.0/tree/' + \
               project_key + '/baseline/' + folder_id + '?'

    # The field-value pair/s that will be added to the query string
    baseline_name_field_value = 'name=' + baseline_name
    baseline_description_field_value = '&description=' + baseline_description

    # The query string to be added to the URI
    query_string = baseline_name_field_value + baseline_description_field_value

    # Send a POST request to create a new baseline on the project's root 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 baseline will be created
# ['242'] folder id parameter of the folder to be baseline
# ['GUI Requirement Release 1.0'] name parameter for the baseline to be created
# ['Baseline for GUI Requirement 1.0'] description parameter for the baseline to be created
# Store the result of the POST request to [response]
response = create_baseline_specific_folder(HOST_URL, USERNAME, PASSWORD, 'SC', '242',
                                           'GUI Requirement Release 1.0', 'Baseline for GUI Requirement 1.0')

# 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
{
    "description": "Baseline for GUI Requirement 1.0", 
    "prjKey": "SC", 
    "created": 1506679832677, 
    "userId": "myUsername", 
    "id": 8, 
    "name": "GUI Requirement Release 1.0"
}