Рубрики
Без рубрики

Приключения в Zendesk и Jira Rest Apis

Мы мигрировали от облачной версии Джиры на локальные. Это заставило меня обновить часть нашего кода как … Tagged с Python, Csharp, Zendesk, Jira.

Мы мигрировали от облачной версии Джиры на локальные. Это заставило меня обновить часть нашего кода как измененная конечная точка, пользовательские поля, а также аутентификацию.

В облаке Джиры наш инструмент C# использует »Atlassian. Net sdk “( https://bitbucket.org/farmas/atlassian.net-sdk/src/master/ ), что я рекомендую. Чтобы получить доступ к его API, вы должны создать токен ( https://id.atlassian.com/manage/api-tokens ). Аутентификация так же проста, как использование вашего имени пользователя и токена в качестве пароля:

var jira = Jira.CreateRestClient(jiraUrl, username, password);

Готово. У вас есть доступ ко всему. По крайней мере, все, что мне было нужно. Хотя, как я уже сказал, мы перешли на локальные. Автор немного отличается. У нас есть конкретный пользователь только для программного доступа. Этот пользователь не в нашем домене. Вместо использования токена я использую только пароль пользователя. Та же линия, чем раньше. Разница – это просто содержание пароля. Вероятно, было также создано приложение, и пользователь назначен ему, хотя я не могу подтвердить, поскольку у меня нет доступа.

Один совет, если у вас уже есть какое -то кодовое запросы/использование JIRA, обратите особое внимание на пользовательские поля. Например, в Python у объекта, возвращаемого объекта, есть их таким образом:

import jira

cf_team = 123
conn = jira.JIRA(host, auth = (username, password))

#Query using a custom field. Usually cf[123]
issues = conn.search_issues("cf[{cf_team}] = 'My Team'".format(cf_team = cf_team))

#Regular property usage
temp = issues[0].fields.customfield_123

#More flexible
temp = issues[0].raw['fields']['customfield_{cf_team}'.format(cf_team = cf_team)]

Этот “123” – идентификатор поля. Используется LIB: https://pypi.org/project/jira/

Как вы могли бы заметить, легко переходить от одной установки в другую изменится идентификаторы. Приведенный выше код имеют способы обойти и сохранить код легче. Вы можете иметь все CFS где -то еще и просто использовать/ссылаться на это. Если идентификаторы меняются, вам нужно изменить только одно место. Я признаю, что нередко перемещать часто инсталляции JIRA. Простой поиск/замена мог бы исправить его. Истинный.

Хорошо. Достаточно Джира. А как насчет Zendesk?

На стороне Zendeskt у меня есть только образец Python. Хотя я не использовал никаких специфических либеров Zendesk. Просто регулярные HTTP -запросы, используя запросы Lib. Это так же просто, как:

import requests

subdomain = "mycompany"
username = "user@domain.com"
api_key = "xyz"
id = 123

url = 'https://{subdomain}.zendesk.com/api/v2/tickets/{id}.json'.format(subdomain = subdomain, id = id)
headers = {'Accept': 'application/json'}
r = requests.get(url, auth = ('{username}/token'.format(username = username), api_key), headers = headers)
ticket_dict = r.json()
print(ticket_dict['ticket']['id'])

Zendesk’s API: https://developer.zendesk.com/rest_api/docs/zendesk-apis/resources Типы аутентификации: https://developer.zendesk.com/rest_api/docs/support/requests

Соблюдайте, что «/токен» добавил к имени пользователя. В документах они говорят {enduser_email_address}/token: {api_token} Анкет В заголовке авторизации (http) обычно это Авторизация: basic {user_plus_token_base64encoded} (Предполагая, что вы используете основную аутентификацию). Вы можете найти несколько ссылок о Basic Auth, в котором говорится, что контент для кодирования – это просто Имя пользователя: пароль (где пароль может быть токеном). Мне потребовалось много времени, чтобы заметить и правильно добавить /токен к имени пользователя … Глупо, верно?

Я надеюсь, что контент, разделенный здесь, поможет:)

Оригинал: “https://dev.to/brunojuliao/adventures-in-zendesk-and-jira-rest-apis-3e13”