Внешние приложения
Внешнее приложение (application) — это подключённая к Трекеру внешняя система, например
интеграция с Bitbucket или GitHub. Объекты такой системы (коммит, pull request и т. п.)
можно связать с задачей Трекера — такая связь называется внешней ссылкой (remote link).
yatracker позволяет получить список доступных внешних приложений, а также получать,
создавать и удалять внешние ссылки задачи.
Обратите внимание
Как и все методы YaTracker, методы работы с внешними приложениями и внешними
ссылками являются асинхронными. В примерах ниже вызовы показаны так, как будто мы уже
находимся внутри корутины.
Официальная документация:
- Список внешних приложений
- Список внешних ссылок задачи
- Создание внешней ссылки
- Удаление внешней ссылки
Список внешних приложений
get_applications
Возвращает список внешних приложений, с объектами которых можно создавать внешние ссылки.
applications = await tracker.get_applications()
for application in applications:
print(application.id, application.name)
Application — идентификатор (id), тип (type) и название (name) приложения.
В ответе get_applications значение type совпадает с id, но у приложения, вложенного
во внешнюю ссылку, тип может быть общим (например, "app"), поэтому не полагайтесь на это
равенство. Значение id понадобится для add_remote_link в качестве origin.
Источник: https://yandex.ru/support/tracker/ru/api/issues/get-applications
Внешние ссылки задачи
RemoteLink устроен так же, как IssueLink (см. «Связи между задачами»), но
поле object в нём — это не задача, а RemoteLinkObject: объект внешнего приложения
(id, key и вложенный application). Свойство name работает точно так же, как у
IssueLink, — возвращает подпись связи (type.inward или type.outward) в зависимости от
direction.
get_remote_links
Возвращает список внешних ссылок задачи.
links = await tracker.get_remote_links("WRITERS-1")
for link in links:
print(link.name, link.object.key, link.object.application.name)
issue_id— идентификатор или ключ задачи.
Источник: https://yandex.ru/support/tracker/ru/api/issues/get-external-links
add_remote_link
async def add_remote_link(
self,
issue_id: str,
key: str,
origin: str,
relationship: str = "RELATES",
*,
backlink: bool | None = None,
) -> RemoteLink: ...
Создаёт внешнюю ссылку — связывает задачу с объектом внешнего приложения.
link = await tracker.add_remote_link(
issue_id="WRITERS-1",
key="1357001000000001",
origin="ru.yandex.bitbucket",
)
issue_id— идентификатор или ключ задачи.key— ключ объекта во внешнем приложении.origin— идентификатор внешнего приложения (Application.id, см.get_applications).relationship— тип связи; документация API рекомендует использовать"RELATES", поэтому это значение используется по умолчанию. Обратите внимание: для этого запроса документировано только значение в верхнем регистре. ПеречислениеLinkRelationshipсо значениями в нижнем регистре относится к связям между задачами и импорту (см. «Импорт») и здесь не подходит.backlink— просить ли внешнее приложение создать зеркальную ссылку на своей стороне. По умолчаниюNone, и параметр не передаётся в запрос вовсе — поведение остаётся на усмотрение Трекера и внешнего приложения. ПередайтеTrueилиFalse, чтобы явно запросить или отключить создание зеркальной ссылки.
Источник: https://yandex.ru/support/tracker/ru/api/issues/add-external-link
delete_remote_link
Удаляет внешнюю ссылку задачи.
issue_id— идентификатор или ключ задачи.link_id— идентификатор внешней ссылки (RemoteLink.id).
Источник: https://yandex.ru/support/tracker/ru/api/issues/delete-external-link
Типичный сценарий
Найти внешнее приложение по имени и связать с ним задачу: