Jira RPC / SOAP GetCustomFields () может использовать только администратор? - PullRequest
3 голосов
/ 23 октября 2009

В настоящее время я использую интерфейс Jira SOAP в C # (я полагаю, что используемый здесь язык не очень важен).

По сути, я создаю API и Winform, которые обертывают некоторые функции службы мыла, чтобы наши разработчики могли программно добавлять ошибки, когда что-то идет не так в нашем приложении.

Как часть этого, мне нужно знать идентификаторы пользовательских полей, которые используются в Jira, а не жестко их кодировать (так как они все еще подвержены случайным изменениям). Я использовал GetCustomFields () Затем метод в jira-rpc api отфильтровал его, так что все, что нужно знать разработчику, - это имя поля, а затем идентификатор для них заполняется автоматически.

Все это прекрасно работает, но с одним довольно важным условием: вход в службу SOAP / RPC как пользователь с административными привилегиями.

Документация Jira указывает, что служба soap / rpc следует обычным рабочим процессам и схемам безопасности, однако я нигде не могу найти ничего, что могло бы снять это ограничение на перечисление настраиваемых полей (и вполне понятно, почему в любом случае вы захотите кто-то должен иметь права администратора, чтобы получить этот доступ, особенно учитывая то, что идентификаторы пользовательских полей, как правило, находятся в исходном коде Jira, вне моего понимания)

Кто-нибудь знает, пропустил ли я где-нибудь настройку? Или, если есть какой-то обходной путь для этого, если не считать жесткого кода идентификаторов пользовательских полей?

Или это тот случай, когда нужно вникнуть в плагин Jira RPC и изменить его исходный код, чтобы дать мне необходимую функциональность?

Приветствия

Редактировать ради гугла / потомства

Ух ты, все это время, и похоже, что Атлассиан до сих пор не изменил это поведение.

Ответы [ 2 ]

1 голос
/ 01 ноября 2009

Вы ничего не пропустили - нет способа получить пользовательские поля через стандартный SOAP API.

В JIRA Client мы узнаем о пользовательских полях двумя способами:

  1. Мы загружаем проблемы через RSS-представление навигатора проблем или через XML-представление конкретной проблемы. Если для проблемы задано настраиваемое поле, XML будет иметь свой идентификатор, класс и значение (значения).

  2. Время от времени мы проверяем содержимое страницы поиска IssueNavigator - ищем искатели для пользовательских полей. Сканирование экрана HTML дает нам не только идентификаторы пользовательских полей, но и возможные значения для перечисляемых полей.

Это, конечно, хакерство, и оно может пойти не так, поэтому хороший API был бы намного лучше.

В вашем случае я могу предложить два решения:

  1. Создайте свой собственный SOAP (или REST) ​​плагин для удаленного API, который даст вам только ту информацию, которую вы упускаете из стандартного API. Поскольку вы, по-видимому, контролируете свою JIRA, вы можете установить все, что угодно.

  2. Снимите экран со страницы «Новая ошибка» для проекта и типа вопроса, который необходимо отправить. Вы получите всю информацию - поля, опции, значения по умолчанию, какое поле обязательно для заполнения.

1 голос
/ 23 октября 2009

Чтобы обойти эту проблему, создайте пользовательский словарь, который входит в систему как администратор, получает пользовательские поля и затем выходит из системы. Не идеально, но это должно работать, пока все не изменится

...