Получить историю изменений конкретного поля в Issue
Здравствуйте! Как с помощью REST API получить историю изменений некоторого конкретного поля в Issue и только его?
То, что я смог найти (например, в https://www.jetbrains.com/help/youtrack/devportal/resource-api-issues-issueID-activitiesPage.html), возвращает историю изменений полей из некоторой категории (категорий), но я бы хотел получить это именно для конкретного заданного поля (или полей), т.к. прочие часто изменяющиеся поля сильно мешают в ответе: их приходится отфильтровывать и, что самое неудобное, - тратить много времени на получение очередных страниц с "мусором".
Please sign in to leave a comment.
Здравствуйте!
К сожалению, возможности получить историю конкретного поля через REST API у нас нет. Вы можете проголосовать за реквест на добавление фильтрации в истории задачи в нашем трекере (он включает в себя и возможность фильтрации через REST API).
Спасибо, Алиса! Проголосовал.
У меня, после нескольких успешных, но тормозных попыток чтения страниц с использованием afterCursor, запрос падал с 500-й ошибкой для особо богатой на события Issue. Я нашел способ избавиться от использования afterCursor, вычисляя и дробя интервал истории на более мелкие куски. Падать перестало, но работает куда медленнее, чем это было в старом REST API. Здесь возможность фильтрации сразу по конкретному полю была бы очень кстати. Это и побудило обратиться сюда.
@Alexey Radionov
Понимаю Вас, в задачах с большой историей действительно было бы удобно иметь возможность фильтрации ответа.
А как Вы сейчас делите историю на куски? С помощью $top?
Нет. Пробовал с $start и $top в
- тоже падает с 500-й при очередной итерации.
Сделал так: для заданного диапазона start..end я читаю первую страницу по
не запрашивая afterCursor, но запрашивая hasAfter. Если hasAfter = false, то все прочитано.
Иначе, после получения страницы, у меня есть набор timeStamp из пришедших Activities. Я беру максимальный из них и получаю новую левую границу для диапазона newStart..end. Если на вдаваться в граничные случаи, то далее этот новый диапазон делится пополам и для каждой из половинок повторяется вышеописанное. В результате получается, что границы диапазона уменьшаются до тех пор, пока их содержимое не поместится полностью в страницу. Общее количество запросов отсюда не особо возрастает (ведь и так, и так все читаем постранично), но зато получается уйти от использования курсора и есть возможность распараллеливания чтения половинок, что значительно ускоряет весь этот костыль :)
Алексей,
Извините за долгое ожидание ответа.
Подскажите, пожалуйста, у Вас YouTrack Standalone или InCloud? Если Standalone, то можете, пожалуйста, загрузить логи инстанса на https://uploads.jetbrains.com? Если InCloud - скажите, пожалуйста, имя инстанса. Хочу проверить логи и попробовать воспроизвести ошибку, возможно, возникшая у Вас 500 ошибка - это баг.
Заранее спасибо!