Я работаю с Python 3.x
Ранее у меня была функция для создания заявок, которая выглядит следующим образом
def jira_incident(jira_subject, jira_description):
user = "username"
apikey = 'apikey'
server = 'https://serverName.atlassian.net'
options = {
'server': server,
'verify': False
}
issue_dict = {
'project': {'key': 'project_name'},
'summary': str(jira_subject),
'description': str(jira_description),
'issuetype': {'name': 'Incident'},
'assignee': {'name': my_username},
'priority': {'name': 'Low'},
'customfield_10125':
{'value': 'Application Ops'}
}
jira = JIRA(options, basic_auth=(user, apikey))
new_issue = jira.create_issue(fields=issue_dict)
return new_issue
my_username - это глобальная переменная, которая используется для а также другие вещи.
В любом случае, сотрудник не работает около 2 дней go. Я немного погуглил и обнаружил, что теперь ему нужен идентификатор учетной записи, а не имя, я могу получить это через веб-интерфейс, оставив комментарий как @ 'кто-то в комментарии. В качестве временного решения я заполнил словарь для ссылки (и это работает), однако я хотел бы сделать это более динамичным c для проверки сценария в будущем.
'assignee': {'accountId': jira_dict[my_username]},
Я не могу похоже, что я действительно нашел документацию по поиску идентификатора учетной записи по названию, и я решил, что буду на go вперед и попросить сообщество выяснить, сталкивался ли кто-либо еще с этой проблемой.
Я думал просто написать новую функцию, которая выполняет этот запрос для меня, а затем возвращает accountId.
EDIT Я нашел это:
import requests
from requests.auth import HTTPBasicAuth
import json
url = "/rest/api/3/user/bulk/migration"
auth = HTTPBasicAuth("email@example.com", "<api_token>")
headers = {
"Accept": "application/json"
}
response = requests.request(
"GET",
url,
headers=headers,
auth=auth
)
print(json.dumps(json.loads(response.text), sort_keys=True, indent=4, separators=(",", ": ")))
Как бы то ни было, я добавил адрес сервера в начало URL-адреса и заменил пользователя на имя пользователя.