DATA CENTER AND SERVER | CLOUD
Create/Update/Get/Delete suspect configuration
- Franklin Gabito
Create suspect configuration
The following script will create a suspect configuration on a give project.
In this example, the script will create a suspect for project Sand Castle 'SC'. Refer to the parameters in Main for the settings that will be set in the suspect.
Function
def create_suspect(host_url, username, password, project_key, config_name, notify_assignee, notify_reporter, notify_project_lead, user_keys, link_type_ids, use_all_link_types, field, stream, scope): """ This method allows to create suspect configuration on a project """ # The REST API path to allow the creation of suspect configuration for a project path_uri = '/rest/com.easesolutions.jira.plugins.requirements/1.0/{}/suspectconfiguration'.format(project_key) # The request body json_data = {'configName': config_name, 'notifyAssignee': notify_assignee, 'notifyReporter': notify_reporter, 'notifyProjectLead': notify_project_lead, 'userKeys': [user_keys], 'linkTypeIds': [link_type_ids], 'useAllLinktypes': use_all_link_types, 'suspectConfigItems': [{'field': field, 'stream': stream}], 'scope': scope} # Send and return the POST request try: return requests.post(host_url + path_uri, json=json_data, auth=HTTPBasicAuth(username, password)) except requests.exceptions.RequestException as e: print e
Main
# ['SC'] the project key parameter where the suspect will be configured # ['SC_Suspect'] suspect configuration name # [False] true to notify assignee, otherwise false # [False] true to notify reporter, otherwise false # [False] true to notify project lead, otherwise false # ['admin'] List of users to be notified if suspect is triggered # ['10002'] Define the link types that should be affected # [False] true if use all link types, otherwise false # ['assignee']Input the fieldId that trigger a suspect. Add to trigger on any field change. # ['up'] Define if a change in an issue will trigger suspect to downstream relationships only or in both directions. # Note: "stream" and "scope" must always have the same value. response = create_suspect(HOST_URL, USERNAME, PASSWORD, 'SC', 'SC_Suspect', False, False, False, "admin", "10002", False, "assignee", "up", "up") if response.status_code == 200: print response.text 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
Suspect Configuration saved for SC
Update suspect configuration
The following script will udpate a suspect configuration on a give project.
In this example, the script will update a suspect for project Sand Castle 'SC'. Refer to the parameters in Main for the settings that will be set in the suspect.
Function
def update_suspect(host_url, username, password, project_key, suspect_id, config_name, notify_assignee, notify_reporter, notify_project_lead, user_keys, link_type_ids, use_all_link_types, field, stream, scope): """ This method allows to update suspect configuration on a project """ # The REST API path to allow update of suspect configuration for a project path_uri = '/rest/com.easesolutions.jira.plugins.requirements/1.0/{}/suspectconfiguration/{}'.\ format(project_key, suspect_id) # The request body json_data = {'configName': config_name, 'notifyAssignee': notify_assignee, 'notifyReporter': notify_reporter, 'notifyProjectLead': notify_project_lead, 'userKeys': [user_keys], 'linkTypeIds': [link_type_ids], 'useAllLinktypes': use_all_link_types, 'suspectConfigItems': [{'field': field, 'stream': stream}], 'scope': scope} # Send and return the PUT request try: return requests.put(host_url + path_uri, json=json_data, auth=HTTPBasicAuth(username, password)) except requests.exceptions.RequestException as e: print e
Main
# ['SC'] the project key parameter where the suspect will be configured # [17] The suspect configuration id to be updated # ['SC_Suspect_Update'] suspect configuration name # [True] true to notify assignee, otherwise false # [False] true to notify reporter, otherwise false # [False] true to notify project lead, otherwise false # ['admin'] List of users to be notified if suspect is triggered # ['10002'] Define the link types that should be affected # [False] true if use all link types, otherwise false # ['assignee']Input the fieldId that trigger a suspect. Add to trigger on any field change. # ['up'] Define if a change in an issue will trigger suspect to downstream relationships only or in both directions. # Note: "stream" and "scope" must always have the same value. response = update_suspect(HOST_URL, USERNAME, PASSWORD, 'SC', 17, 'SC_Suspect_Update', True, False, False, "admin", "10002", False, "assignee", "up", "up") if response.status_code == 200: print response.text 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
Suspect Configuration saved for SC
Get all suspect configuration of a project
The following script will get all suspect configuration on a give project.
In this example, the script will get all suspect for project Sand Castle 'SC'.
Function
def get_suspect(host_url, username, password, project_key): """ This method allows to get all suspect configuration on a project """ # The REST API path to get all suspect configuration of a project path_uri = '/rest/com.easesolutions.jira.plugins.requirements/1.0/{}/suspectconfigurations'.format(project_key) # Send and return 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'] the project key parameter where all suspect configuration will be fetched response = get_suspect(HOST_URL, USERNAME, PASSWORD, 'SC') if response.status_code == 200: parsed = json.loads(response.text) print json.dumps(parsed, indent=4, sort_keys=True) 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
[ { "configId": 17, "configName": "SC_Suspect_Update", "linkTypeIds": [ "10002" ], "notifyAssignee": true, "notifyProjectLead": false, "notifyReporter": false, "projectId": 10000, "scope": "up", "suspectConfigItems": [ { "field": "assignee", "stream": "up" } ], "useAllLinktypes": false, "userKeys": [ "admin" ] }, { "configId": 18, "configName": "SC_Suspect", "linkTypeIds": [ "10002" ], "notifyAssignee": false, "notifyProjectLead": false, "notifyReporter": false, "projectId": 10000, "scope": "up", "suspectConfigItems": [ { "field": "assignee", "stream": "up" } ], "useAllLinktypes": false, "userKeys": [ "admin" ] } ]
Delete suspect configuration
The following script will delete a suspect configuration on a give project.
In this example, the script will delete the suspect configuration with id 17 on project Sand Castle 'SC'.
Function
def del_suspect(host_url, username, password, project_key, suspect_id): """ This method allows to delete suspect configuration on a project """ # The REST API path to delete a suspect configuration path_uri = '/rest/com.easesolutions.jira.plugins.requirements/1.0/{}/suspectconfiguration/{}'.\ format(project_key, suspect_id) # Send and return the DELETE request try: return requests.delete(host_url + path_uri, auth=HTTPBasicAuth(username, password)) except requests.exceptions.RequestException as e: print e
Main
# ['SC'] the project key parameter where the suspect configuration will be deleted # [17] The suspect configuration id to be deleted response = del_suspect(HOST_URL, USERNAME, PASSWORD, 'SC', 17) if response.status_code == 200: print response.text 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
Suspect Configuration deleted for SC