Hi,
I read the API of create_customer_request but it does not show how to use it.
My first question how to use customized fields inside a dropdown list?
service_desk_id = "13",
request_type_id = "815"
request_field_values = {
"summary": summary,
"customfield_17000": {"value": "dropDownValue"},
"description": description
}
request = self.service_desk.create_customer_request(service_desk_id, request_type_id, request_field_values)
My last question is: How do I get the issue key from the response?
Do you have an example?
Thanks,
Markus
Here's an example:
def create_jira_issue(self, issue_info_dict, user_info, slack_thread):
"""
Creates a new Jira issue based on the provided information.
Parameters:
- issue_info_dict (dict): A dictionary containing the following keys:
- 'request_type' (str): The ID of the request type for the issue.
- 'summary' (str, optional): A short summary of the issue (default is '').
- 'technology' (str): The technology related to the issue (e.g., server, database).
- 'environment' (str): The environment related to the issue (e.g., production, development).
- 'service name' (str, optional): The name of the service related to the issue (default is '').
- 'classification' (str, optional): The classification of the issue (e.g., critical, high) (default is '').
- user_info (dict): A dictionary containing user information. It should include:
- 'profile' (dict): A dictionary containing user profile information.
- 'email' (str): The email address of the user.
- slack_thread (str): The ID of the Slack thread associated with the issue. This is used to format the Jira issue description and associate it with the corresponding Slack conversation.
Returns:
- dict or None: Returns the newly created Jira issue as a dictionary if successful, or None if an error occurs.
"""
user_email = user_info['profile']['email']
service_desk_id = jira_settings.JIRA_PORTAL_ID
request_type_id = issue_info_dict.get('request_type')
service_name = issue_info_dict.get('service name') if issue_info_dict.get('service name') is not None else ""
classification = issue_info_dict.get('classification') if issue_info_dict.get('classification') is not None else ""
issue_dict = {
'serviceDeskId': service_desk_id,
'requestTypeId': request_type_id,
'requestFieldValues': {
'summary': issue_info_dict.get('summary', ''),
'description': self.__format_jira_issue_description(issue_info_dict, slack_thread),
'customfield_10374': issue_info_dict['technology'],
'customfield_10376': issue_info_dict['environment'],
'customfield_10375': service_name,
'customfield_10391': classification,
}
}
try:
new_issue = self.client.create_customer_request(fields=issue_dict)
logger.info(f'New Jira issue created: {new_issue}')
return new_issue
except Exception as e:
logger.error(f'Error creating Jira issue: {e}')
return None
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.