Jelly - это скриптовый и шаблонный язык из проекта Apache Джакарты. Он похож на Ant, в том, что скрипты являются XML, и каждый тег сопоставляется с классом Java, но имеет более сложную внутреннюю модель конвейера для взаимодействия тегов, подобно JSP taglib. Более подробную информацию см. на сайте Jelly.
JIRA поставляется с несколькими тегами Jelly, реализующими основные операции в JIRA. Это обеспечивает скриптовый интерфейс для JIRA. Существует много возможных применений для тегов JIRA Jelly, наиболее распространенным из которых является импорт данных в JIRA из других систем и автоматизация общих административных задач (см. примеры ниже).
Включение Jelly
Поддержка Jelly JIRA по умолчанию отключена, поскольку Jelly, в принципе, позволяет запускать произвольный код Java на сервере под учетной записью Tomcat. В некоторых средах это может считаться угрозой безопасности, в зависимости от того, кому разрешено настраивать и запускать сценарии Jelly (требуется разрешение «Системные администраторы JIRA»). Мы рекомендуем использовать Jelly только тогда, когда вы абсолютно не можете обойтись без него и отключите поддержку Jelly, когда вам это больше не нужно.
Чтобы включить Jelly, установите системное свойство jira.jelly.on при запуске сервера приложений. Свойства системы устанавливаются с параметрами в java-команду, например. java -Djira.jelly.on = true ... (Этот параметр можно установить в файле setenv.sh (Linux) или setenv.bat (Windows) в папке / bin)
Как установить это свойство зависит от вашего сервера приложений. Например, установите переменную среды JAVA_OPTS = -Djira.jelly.on = true или при запуске JIRA в качестве службы задайте параметр JVM службы.
Запуск скрипта Jelly
Чтобы запустить скрипт для Jelly один раз:
- Войдите в систему как пользователь с глобальным разрешением «Системные администраторы JIRA».
- Выберите шестеренка> Система. Выберите Расширенно> Jelly Runner, чтобы открыть страницу Jelly Runner.
Комбинация клавиш: 'g' + 'g' + наберите 'jel'
- Вставьте скрипт Jelly в текстовую область.
Периодически запускайте скрипт Jelly:
- Настройте службу следующим классом:
com.atlassian.jira.jelly.service.JellyService
Ограничение Jelly
Чтобы удалить интерфейс для вставки скриптов в:
- Отредактируйте atlassian-jira / secure / admin / views / jelly_runner.jsp
- Добавьте отключенный атрибут в текстовое поле, например.<ui: textarea label = "text ('admin.jellyrunner.jelly.script.xml')" name = "'script'" rows = "'40'" cols = "'80'" disabled = "true" />
Это предотвращает вставку текста в страницу Jelly Runner. Обратите внимание, что это только изменение интерфейса, и все же возможно запустить скрипты Jelly, отправив HTTP-запрос с нужным контентом.
Написание сценария Jelly
JIRA: AddActorsToDefaultProjectRole
JIRA: AddActorsToProjectRole
JIRA: AddComment
JIRA: AddComponent
JIRA: AddFieldToScreen
JIRA: AddPermission
JIRA: AddUserToGroup
JIRA: AddVersion
JIRA: AssignIssue
JIRA: AttachFile
JIRA: CreateCustomField
JIRA: CreateGroup
JIRA: CreateIssue
JIRA: CreatePermissionScheme
JIRA: CreateProject
JIRA: CreateProjectRole
JIRA: CreateUser
JIRA: DeleteProjectRole
JIRA: GetDefaultRoleActors
JIRA: GetProjectRole
JIRA: GetProjectRoleActors
JIRA: IsProjectRoleNameUnique
JIRA: LinkIssue
JIRA: Login
JIRA: RemoveActorsFromDefaultProjectRole
JIRA: RemoveActorsFromProjectRole
JIRA: RemoveUser
JIRA: RunSearchRequest
JIRA: SelectComponentAssignees
JIRA: TransitionWorkflow
JIRA: UpdateProjectRole
Скрипты обычно имеют форму:
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<!--
Добавьте свой собственный Jelly XML здесь
-->
</JiraJelly>
Есть также несколько дополнительных тегов, к которым можно получить доступ, используя следующий внешний тег, а не один выше (это теги, которые ранее были ограничены):
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.enterprise.JiraTagLib">
<!--
Добавьте свой собственный Jelly XML здесь
-->
</JiraJelly>
В дополнение к тегам JIRA вы можете использовать теги из электронной почты, http, soap, sql и core Jelly taglib. В случае необходимости пользователь может добавить больше.
Многие Jelly-теги JIRA устанавливают контекстные переменные, поэтому последующие теги могут ссылаться на их вывод путем разыменования контекстной переменной (например, $ {jira.new.username}). Другие теги позволяют явно указывать имя переменной для хранения некоторого вывода, например, <jira: CreateUser> имеет параметры issueKeyVar и issueIdVar:
<jira:CreateIssue project-key="TP" summary="Issue One" issueKeyVar="issuekey" issueIdVar="issueid"/>
Raised issue ${issuekey} with id ${issueid}
Обратите внимание, что переменная устанавливается только после закрытия тега, а не внутри тега.
Обратите внимание: из-за этой интерполяции переменной, если ваш текст содержит что-либо вида $ {something}, вам нужно избежать этого как $$ {something}, чтобы предотвратить «переменную», которая была расширена до пустой строки.
При указании значения атрибута обратите внимание, что следующие специальные символы должны быть избегаемы.
Специальный Символ |
Избегаемый эквивалент |
Амперсанд (&) |
& |
апостроф или одинарная кавычка (') |
' |
двойная кавычка (") |
" |
меньше (<) |
< |
больше (>) |
> |
Список доступных в настоящее время тегов:
JIRA: AddActorsToDefaultProjectRole
Этот тег добавит «участников» к членству по умолчанию для данной роли проекта. Актеры могут быть определены как группы или пользователи, т. е. вы можете добавить как пользователей, так и группы в роль проекта.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
projectroleid |
int |
|
Это идентификатор роли проекта. |
actors |
string |
|
Список разделенных запятыми пользователей или групп |
actortype |
string |
|
Это определяет тип «актер», который вы отправляете в тег. В настоящее время это поле может содержать «atlassian-user-role-actor» для пользователей или «atlassian-group-role-actor» для групп. |
Примеры
Добавление списка пользователей или групп по умолчанию в роль проекта
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:AddActorsToDefaultProjectRole projectroleid="1" actors="fred,admin,tom"
actortype="atlassian-user-role-actor" />
</JiraJelly>
JIRA: AddActorsToProjectRole
Этот тег добавит «участников» к заданной роли проекта для конкретного проекта. Актеры могут быть определены как группы или пользователи, т. е. Вы можете добавить как пользователей, так и группы в роль проекта.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
projectroleid |
int |
|
Это идентификатор роли проекта. |
actors |
string |
|
Это список с разделителями-запятыми с именами пользователей или групп |
actortype |
string |
|
Это определяет тип «actor». В настоящее время это поле может содержать «atlassian-user-role-actor» для пользователей или «atlassian-group-role-actor» для групп. |
projectkey
|
string |
|
Это ключ проекта, для которого вы хотите добавить пользователей или группы для указанной роли. |
Примеры
Добавление списка пользователей или групп в роль проекта
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:AddActorsToProjectRole projectroleid="1" actors="jira-administrators,jira-users"
projectkey="MKY" actortype="atlassian-group-role-actor" />
</JiraJelly>
jira:AddComment
This function adds a comment to an Issue.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
issue-key
|
string |
|
Задача добавления комментария к (необходимому). |
commenter
|
string |
В настоящее время вошедший пользователь |
Имя пользователя, чтобы сделать комментарий (Должны иметь разрешения на просмотр и комментарий). |
comment
|
string |
|
Комментарий добавляется к задаче (обязательно). |
groupLevel
|
string
|
none |
Название группы, которая может видеть этот комментарий. ПРИМЕЧАНИЕ. Если это указано, вы не можете указать параметр roleLevel. |
roleLevel
|
string
|
none |
Имя или идентификатор роли проекта, которые могут видеть этот комментарий. ПРИМЕЧАНИЕ. Если это указано, вы не можете указать параметр groupLevel. |
created
|
string
|
Current Date/Time |
Дата / время Комментарий был создан в формате yyyy-MM-dd hh: mm: ss.0 |
updated
|
string
|
Current Date/Time |
Дата / время Комментарий последний раз обновлялся в формате yyyy-MM-dd hh: mm: ss.0. Это можно использовать, если вы пытаетесь импортировать комментарий с определенными ранее существующими значениями |
editedBy
|
string
|
Currently logged in user |
Имя пользователя, который последний раз обновил комментарий. Это можно использовать, если вы пытаетесь импортировать комментарий с определенными ранее существующими значениями. |
tweakIssueUpdateDate
|
boolean
|
true |
Если предоставляются обновленные данные, обновленные данные задачи будут обновлены с этим значением. Если для параметра tweakIssueUpdateDate установлено значение false, обновленная временная метка задачи будет оставлена нетронутой. |
Примеры
Создать комментарий
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:AddComment comment="Issue comment" issue-key="ABC-1"
groupLevel="admin-group"/>
</JiraJelly>
Создать задачу и комментарий
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateIssue project-key="TP" issueType="Bug" summary="Issue summary" issueKeyVar="key"/>
<jira:AddComment issue-key="${key}" comment="A comment on ${key}"/>
</JiraJelly>
JIRA: AddComponent
Добавляет компонент в проект.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
project-key
|
string |
|
Ключ проекта, к которому вы хотите добавить компонент (не требуется, если он вложен внутри тега). |
name
|
string |
|
Название компонента (обязательно). |
description
|
string |
|
Описание компонента.
|
componentLead
|
string |
|
Имя пользователя ведущего Компоненты. Оставьте пробел ни для какого ведущего. |
Примеры
Создать компонент
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:AddComponent project-key="ABC" name="Comp 1" description="Comp 1 description"/>
</JiraJelly>
Создание компонента в проекте
<JiraJelly xmlns: jira = "желе: com.atlassian.jira.jelly.JiraTagLib">
<jira: CreateProject key = "ABC" name = "A Project" lead = "logged-in-user">
<jira: AddComponent name = "Comp 1" />
</ JIRA: CreateProject>
</ JiraJelly>
Создание компонента с помощью ведущего компоненты
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:AddComponent project-key="ABC" name="Comp 1" description="Comp 1 with lead" componentLead="user-name"/>
</JiraJelly>
JIRA: AddFieldToScreen
Добавляет поле к определенной вкладке на экране. Можно также указать, в какую позицию вставить поле.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
ffldId
|
string |
|
Идентификатор поля для добавления поля (обязательно). например «описание», «duedate» и т. д. |
screen
|
string |
|
Идентификатор экрана или имя (обязательно). например «1» или «Экран по умолчанию». |
tab
|
string
|
0 |
Идентификатор вкладки или имя. например «0» или «Поле вкладки». |
fieldPosition
|
int
|
Последняя позиция |
Позиция для ввода поля. Диапазон значений - от 1 до количества полей на экране. |
Примеры
Добавление полей на экран
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<!-- Adds 'description' field to the 'Field Tab' on 'Default Screen' -->
<jira:AddFieldToScreen fieldId="description" screen="Default Screen" tab="Field Tab"/>
<!-- Adds 'duedate' field to same screen as above. duedate is inserted in position 1 -->
<jira:AddFieldToScreen fieldId="duedate" screen="1" tab="0" fieldPosition="1"/>
</JiraJelly>
Создание нового пользовательского поля и добавление его на экран
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateCustomField fieldType="cascadingselect"
fieldScope="issuetype"
fieldName="Issue cascadingselect Bug"
issueType="Bug"
description="Bank have requested Y2K fixes to be sent as an EBF."
searcher="cascadingselectsearcher"
customFieldIdVar="customField"
>
<jira:AddCustomFieldSelectValue value="Parent 1" />
<jira:AddCustomFieldSelectValue value="Parent 2">
<jira:AddCustomFieldSelectValue value="Child 1" />
<jira:AddCustomFieldSelectValue value="Child 2" />
</jira:AddCustomFieldSelectValue>
<jira:AddCustomFieldSelectValue value="Parent 3" />
</jira:CreateCustomField>
<jira:AddFieldToScreen screen="Default Screen" fieldId="${customField.getId()}"/>
</JiraJelly>
JIRA: AddPermission
Предоставляет разрешения в пределах схемы разрешений. Часто вложен в тег JIRADOC: CreatePermissionScheme.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
schemeId |
string |
|
Если он не вложен в тег CreatePermissionScheme, то он указывает идентификатору схемы добавить разрешение (0 - схема разрешения по умолчанию). |
permissions
|
required string |
|
Список разрешеений разделов с разделеннымизапятыми: Строка - разрешение
Project - администрирование проектов Browse- Просмотр проектов Create - создавать проблемы Edit - Изменить проблемы ScheduleIssue - Расписание вопросов Move - переместить проблемы Assign - назначить проблемы Assignable- назначаемый пользователь Решить - решить проблемы Resolve - Закрыть вопросы ModifyReporter - Изменить репортера Comment - Добавить комментарий CommentEditAll - Редактировать все комментарии CommentEditOwn - Редактировать собственные комментарии CommentDeleteAll - Удалить все комментарии CommentDeleteOwn - удалить собственные комментарии Delete - Удалить проблемы Работа - работа над проблемами WorklogEditAll - редактирование всех журналов WorklogEditOwn - редактирование собственных журналов WorklogDeleteOwn - удаление собственных журналов WorklogDeleteAll - удалить все журналы Link- Связать задачи Attach - создать вложения AttachDeleteAll - удалить все вложения AttachDeleteOwn - удаление собственных вложений ViewVersionControl - просмотр контроля версий ViewVotersAndWatchers - Просмотр избирателей и наблюдателей ManageWatcherList - управлять списком наблюдателей SetSecurity - установить уровень безопасности задач |
type
|
string |
|
Тип получателя для разрешения::
group projectrole user lead assignee reporter userCF groupCF |
group
string |
string |
|
Если тип - это «группа» (или тип не указан), задается имя группы для предоставления разрешений. |
projectroleid
|
int |
|
Если type является «projectrole», он указывает индентификатор projectroleдля предоставления разрешений. |
user
|
string |
|
Если тип «пользователь»,он задает имя пользователя для предоставления разрешений. |
userCF
|
string |
|
Если тип «userCF», он указывает идентификатор пользовательского поля пользователя, например. «customfield_10000», идентифицирующий пользователя, которому будет предоставлено разрешение. |
groupCF |
string |
|
Если type является «groupCF», задается идентификатор пользовательского поля для выбора группы (например, список выбора с именами групп в качестве значений), членам которых должно быть предоставлено это разрешение. Например. 'Customfield_10000. |
Примеры
Предоставить разрешения для пользователей jira и jira-разработчиков в новой схеме разрешения
(См. Также сценарии JIRADOC: пример)
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreatePermissionScheme name="New Permission Scheme">
<jira:AddPermission group="jira-users" permissions="Browse,Create,Comment,Attach" type="group"/>
<jira:AddPermission group="jira-developers" permissions="Move,Assignable,Link,ViewVersionControl" type="group"/>
</jira:CreatePermissionScheme>
</JiraJelly>
Репортерам задач предоставить возможность редактировать / удалять свои собственные задачи, в новой схеме разрешения
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.enterprise.JiraTagLib">
<jira:CreatePermissionScheme name="New Permission Scheme">
<jira:AddPermission type="reporter" permissions="Delete, Edit"/>
</jira:CreatePermissionScheme>
</JiraJelly>
Сделать проекты с использованием схемы разрешений по умолчанию видимыми для определенных пользователей
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.enterprise.JiraTagLib">
<jira:AddPermission schemeId="0" permissions="Browse" type="user" user="johnc"/>
<jira:AddPermission schemeId="0" permissions="Browse" type="user" user="ebf"/>
</JiraJelly>
Предоставление групповому селектору членов пользовательских полей способность назначать / быть назначенной задачу(ей).
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:AddPermission schemeId="10164" type="groupCF" groupCF="customfield_10000"
permissions="Assign,Assignable" />
</JiraJelly>
JIRA: AddUserToGroup
Делает пользователя членом группы. Добавляет имя пользователя и / или имя группы в контекст, если это указано.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
username
|
string |
|
Имя пользователя для добавления в группу (требуется, если нет в теге). |
group-name
|
string |
|
Группировать, чтобы добавить пользователя в (требуется, если нет в теге). Примечание: если у группы есть глобальные разрешения «Системные администраторы JIRA», а вошедшего в систему пользователя не будет, появится сообщение об ошибке, и операция не будет выполнена. |
Имя пользователя задается в контексте, если указано в теге. Имя группы устанавливается в контексте, если указано в tag.h4. Примеры
Добавить пользователя в группу
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:AddUserToGroup username="new-user" group-name="new-group"/>
</JiraJelly>
Добавить нового пользователя в группу
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateUser username="new-user" password="password" confirm="password"
fullname="Full name" email="test@test.com">
<jira:AddUserToGroup group-name="new-group"/>
</jira:CreateUser>
</JiraJelly>
Добавить пользователя в новую группу
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateGroup group-name="new-group">
<jira:AddUserToGroup username="new-user"/>
</jira:CreateGroup>
</JiraJelly>
Добавить нового пользователя в новую группу
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateUser username="new-user" password="password" confirm="password"
fullname="Full name" email="test@test.com"/>
<jira:CreateGroup group-name="new-group">
<jira:AddUserToGroup/>
</jira:CreateGroup>
</jira:CreateUser>
</JiraJelly>
JIRA: AddVersion
Добавляет версию в проект.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
project-key
|
string |
|
Ключ проекта, который вы хотите добавить в компонент (не требуется, если он вложен внутри тега). |
name
|
string |
|
Название версии (обязательно). |
description
|
string |
|
Описание версии. |
releaseDate
|
string |
|
Дата релиза версии. |
schedule
|
string |
|
Расписание версии. |
Примеры
Создать версию
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:AddVersion project-key="ABC" name="Ver 1"/>
</JiraJelly>
Создание версии в проекте
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateProject key="ABC" name="A Project" lead="logged-in-user">
<jira:AddVersion name="Ver 1"/>
</jira:CreateProject>
</JiraJelly>
JIRA: AssignIssue
Назначает задачу пользователю.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
key |
string |
|
Ключ задачи для назначения. |
assignee
|
string |
|
Пользователь должен назначить задачу. |
Примеры
Создание и назначение задачи
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateIssue project-key="TST" summary="My Issue summary" issueKeyVar="keyvar"/>
<jira:AssignIssue key="${keyvar}" assignee="testuser"/>
</JiraJelly>
JIRA: AttachFile
Прикрепляет файл к проблеме.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
key |
string |
|
Ключ задачи для присоединения файла. (Обязательно) |
filepath
|
string |
|
Путь (на сервере) файла для присоединения. (Обязательно) |
option
|
string
|
add |
Поведение, когда файл с тем же именем уже прикреплен. (Необязательный). Возможные варианты:
· skip - не прикреплять файл, если файл с этим именем уже прикреплен. · override - перезаписать существующий прикрепленный файл · add - добавить файл в качестве другого вложения |
created
|
string |
Current Date/Time |
Дата / время создания вложения в формате yyyy-MM-dd hh: mm: ss.0 (необязательно) |
Примеры
Добавление вложения
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:AttachFile key="TST-1" filepath="/tmp/somefile" option="override"/>
</JiraJelly>
JIRA: CreateCustomField
Тег создает новое пользовательское поле. Только специальные пользовательские поля могут быть добавлены с помощью тегов Jelly.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
fieldType |
string |
|
Тип поля, который отображается как ключ в дескрипторе плагина |
fieldScope |
string |
|
Один из глобальных, проектных или типов задач |
fieldName |
string |
|
Название пользовательского поля |
projectKey |
string |
|
Ключ к соответствующему проекту. Действителен только для области "проект" |
issueType |
string |
|
Тип задачи. Действителен только для области "issuetype" |
description |
string |
|
Описание поля, которое должно отображаться при добавлении значения |
searcher |
string |
|
Действительный связанный поисковик пользовательского поля · textsearcher · exacttext · searcher · daterange · datetimerange · exactnumber · numberrange · versionsearcher · projectsearcher · userpickersearcher · userpickergroupsearcher · groupickersearcher · selectsearcher · radiosearcher · cascadingselectsearcher · multiselectsearcher · checkboxsearcher · labels |
customFieldIdVar |
string |
|
Имя переменной для размещения нового пользовательского поля. |
Примеры
Создание каскадного пользовательского поля
jira: subtag AddCustomFieldSelectValue может использоваться для добавления значений для избранных списков. Они также могут быть вложены для каскадных списков выбора.
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateCustomField fieldType="cascadingselect"
fieldScope="issuetype"
fieldName="Issue cascadingselect Bug"
issueType="Bug"
description=" Банк запросил исправления Y2K для отправки в виде EBF "
searcher="cascadingselectsearcher"
>
<jira:AddCustomFieldSelectValue value="Parent 1" />
<jira:AddCustomFieldSelectValue value="Parent 2">
<jira:AddCustomFieldSelectValue value="Child 1" />
<jira:AddCustomFieldSelectValue value="Child 2" />
</jira:AddCustomFieldSelectValue>
<jira:AddCustomFieldSelectValue value="Parent 3" />
</jira:CreateCustomField>
</JiraJelly>
jira: CreateGroup
Создает группу в JIRA.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
group-name |
string |
|
Название группы для создания (требуется). |
Контекстные переменные
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
jelly.group.name |
string |
|
Имя создаваемой группы. |
Примеры
Создать группу
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateGroup group-name="new-group"/>
</JiraJelly>
jira: CreateIssue
Этот тег создает новую задачу в JIRA и помещает идентификатор задачи в контекст.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
project-key |
string |
|
Ключ проекта для добавления задачи (требуется, если не вложен в тег). |
issueType |
string |
Первый тип задачи |
Строковое имя типа задачи которая должна быть создана для (например, ошибки). |
summary |
string |
|
Краткое описание создаваемой задачи (обязательно). |
priority |
string |
Высокий приоритет |
Имя строки приоритета (например, майор). |
components |
string |
|
Строковое имя компонента. |
versions |
string |
|
Строковое имя затронутой версии. |
fixVersions |
string |
|
Строковое имя Исправления для версии. |
assignee |
string |
|
Имя пользователя для назначения этой задачи (для входа в систему пользователя требуется разрешение на выдачу разрешения, а для указанного пользователя требуется назначаемое разрешение). Установите значение «-1» для автоматического назначения. |
reporter |
string |
|
Имя пользователя, сообщающего об этой задаче. Пользователь входит в систему, а затем создается задача. Пользователь снова выходит из системы, когда тег "Создать задачу" закрывается. Если у зарегистрированного пользователя нет прав "Изменить репортера", значение по умолчанию этого атрибута является именем пользователя вошедшего в систему. Если, однако, у зарегистрированного пользователя есть привилегия "Изменить репортера", значение по умолчанию отсутствует, и этот атрибут является обязательным. См. JRA-12984 для дальнейшего объяснения.(Разбито? См. JRA-5620.) |
environment |
string |
|
Описание среды. |
description |
string |
|
Подробное описание задачи. |
duedate |
string |
|
Сроки задачи. Необходимым форматом является текущий формат даты JIRA. Примечание. Поскольку формат даты JIRA по умолчанию зависит от локали (например, 12 января / 05), вы можете использовать формат ISO yyyy-mm-dd. Для этого задайте следующие свойства на странице «Расширенные настройки»
· jira:jira.date.picker.java.format для оценки yyyy-MM-dd · jira.date.picker.javascript.format для значения% Y-% m-% e
См. Изменение формата ввода даты для получения дополнительной информации об изменении этих значений. |
created |
string |
Текущая дата / время |
Дата / время, когда задача была создана в формате yyyy-MM-dd hh: mm: ss.0 |
updated |
string |
Текущая дата / время |
Дата / время, когда задача была обновлена в формате yyyy-MM-dd hh: mm: ss.0 |
issueIdVar |
string |
|
Имя переменной для размещения идентификатора новой задачи. |
issueKeyVar |
string |
|
Имя переменной для размещения ключа новой задачи. |
duplicateSummary |
string |
|
Установка этого атрибута в «игнорировать» позволит создать задачу с тем же резюме. |
security-level |
string |
|
Устанавливает уровень безопасности задачи. Значение - это имя уровня, например, «Секретно». |
Примеры
Создать проблему
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateIssue project-key="ABC" assignee="-1" summary="Issue summary">
<!-- other jelly tags -->
</jira:CreateIssue>
</JiraJelly>
Создать задачу из проекта
Этот пример более сложный, поскольку для проекта требуется создать схему разрешения до того, как задача может быть создана.
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateProject key="ABC" name="A Project" lead="logged-in-user">
<jira:CreatePermissionScheme name="admin-scheme">
<jira:AddPermission permissions="Assignable,Browse,Create,Assign"
<type="group"/>
<jira:SelectProjectScheme/>
</jira:CreatePermissionScheme>
<jira:CreateIssue summary="Issue summary">
<!-- other jelly tags -->
</jira:CreateIssue>
</jira:CreateProject>
</JiraJelly>
Создать задачу с значениями пользовательских полей
Используйте subtag jira: AddCustomFieldValue
Имя аттрибута |
Тип |
Описание |
id |
long |
Идентификатор пользовательского поля с customfield_ prefix |
value
|
string |
строковое представление значения пользовательского поля. Обратите внимание, что это может отличаться от отображаемого значения (например, команда выбора проекта использует идентификатор проекта как значение String, но отображает название проекта) |
key
|
string |
Ключ используется для многомерных данных. В настоящее время только Cascading selects поддерживает его использование. Опустите, чтобы указать значение родителя, используйте «1» в качестве значения для дочернего элемента |
name
|
String
|
Устаревшее Имя настраиваемого поля. |
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateIssue project-key="ABC" summary="Issue summary">
<jira:AddCustomFieldValue id="customfield_10000" value="field value"/>
<jira:AddCustomFieldValue name="Environment Select list" value="Windows XP"/>
<!-- For Cascading Selects : Note also that the value for cascading selects is the optionId-->
<jira:AddCustomFieldValue id="customfield_10001" value="Parent Option Id" />
<jira:AddCustomFieldValue id="customfield_10001" value="Child Option Id" key="1" />
<!-- For Version Pickers and Single Version Pickers : Note also that the value for version pickers is the versionId-->
<jira:AddCustomFieldValue id="customfield_10002" value="Version Id"/>
<!-- For Multi Selects -->
<jira:AddCustomFieldValue id="customfield_10003" value="Value 1" />
<jira:AddCustomFieldValue id="customfield_10003" value="Value 2" />
<!-- For Multi User Pickers : Note also that the value for multi user pickers is a comma separated list of users-->
<jira:AddCustomFieldValue id="customfield_10004" value="User 1,User 2" />
</jira:CreateIssue>
</JiraJelly>
Использование атрибута name устарело. Хотя он будет работать в версии 3.0, его использование не рекомендуется.
Заметка:
- Чтобы просмотреть <customFieldId>,
- Перейдите в раздел Администрирование -> Поля задач -> Пользовательские поля
- Наведите курсор на ссылку «Настроить» пользовательского поля
- Вы можете просмотреть <customFieldId> в строке состояния вашего браузера
- Чтобы просмотреть «Идентификатор родительской опции» и «Идентификатор дочерней опции» для «Каскадный выбор полей»,
- Перейдите в раздел Администрирование -> Поля задач -> Пользовательские поля -> Настроить -> Изменить опции -> Изменить
- Вы можете просмотреть <selectedParentOptionId> («Идентификатор родительской опции») и <selectedValue> («Идентификатор дочерней опции») в строке состояния вашего браузера
jira: CreatePermissionScheme
Создает схему разрешений
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
name |
required string |
|
Название схемы разрешения. |
description
string |
string |
|
Описание схемы разрешений. |
Контекстные переменные
Контекстные переменные
|
Тип |
Описание |
jelly.permission.scheme.id |
string |
Идентификатор созданной схемы разрешения |
jira: CreateProject
Этот тег создает новый проект в JIRA и помещает id проекта в контекст.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
key
|
string |
|
Ключ проекта, используемый для создания ключей задачи (обязательно). |
name |
string |
|
Название проекта (обязательно). |
lead |
string |
|
Имя пользователя, являющегося ведущим проекта (обязательно). |
url |
string |
|
URL-адрес сайта для этого проекта. |
description |
string |
|
Описание этого проекта. |
Контекстные переменные
Контекстные переменные
|
Тип |
Описание |
jelly.project.id |
string |
Идентификатор проекта, который был создан. |
jelly.project.key |
string |
Ключ проекта, который был создан. |
Примеры
Создать проект
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateProject key="ABC" name="A Project" lead="a-user">
<!-- other jelly tags -->
</jira:CreateProject>
</JiraJelly>
jira: CreateProjectRole
Этот тег создаст роль проекта с заданным именем и описанием.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
name |
string |
|
Имя роли проекта, которую вы создадите |
description |
string |
|
Описание роли проекта, которую вы будете создавать |
Контекстные переменные
Контекстные переменные
|
Тип |
Описание |
jelly.role.id |
Long |
Идентификатор роли проекта |
jelly.role.name |
string |
Название роли проекта |
jelly.role.description |
string |
Описание роли проекта |
Примеры
Создание новой роли проекта
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateProjectRole name="lion-tamer" description="tames the lions">
${jelly.role.id} ${jelly.role.name} ${jelly.role.description}
</jira:CreateProjectRole>
</JiraJelly>
jira: CreateUser
Создает пользователя в JIRA и помещает свое имя пользователя в контекст.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
username |
string |
|
Имя создаваемого пользователя (обязательно). |
password |
string |
|
Пароль пользователя. Если поле пароля остается пустым, случайный пароль будет автоматически сгенерирован. |
confirm |
string |
|
Подтверждение пароля пользователя (обязательно). |
fullname |
string |
|
Описательное имя пользователя (обязательно). |
|
string |
|
Адрес электронной почты пользователя (обязательно). |
sendEmail |
boolean
|
false |
Если указано, указывает, следует ли отправлять подтверждение по электронной почте. |
Контекстные переменные
Контекстные переменные
|
Тип |
Описание |
jelly.new.username |
string |
Имя пользователя создаваемого пользователя. |
Примеры
Создать пользователя
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateUser username="new-user" password="password" confirm="password"
fullname="Full name" email="test@test.com"/>
</JiraJelly>
jira: DeleteProjectRole
Этот тег удалит роль проекта с данным идентификатором.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
projectroleid |
int |
|
Идентификатор роли проекта, которую вы хотите удалить. |
confirm |
string |
|
Чтобы удалить роль проекта, для этого значения должно быть установлено значение «true». |
Примеры
Удаление роли проекта от JIRA
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:DeleteProjectRole projectroleid="1" confirm="true" />
</JiraJelly>
jira: GetDefaultRoleActors
Этот тег будет возвращать объект ProjectRoleActors для данной роли проекта для конкретного проекта. Этот объект несет членов роли проекта, то есть пользователей и / или групп. Чтобы получить коллекцию пользователей в этом объекте, используйте выражение $ {roleactors.users}, где roleactors - это имя переменной объекта. Для получения дополнительной информации о объекте RoleActors обратитесь к API JIRA.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
projectroleid |
int |
|
Идентификатор роли проекта, который вы хотите запросить(query) |
var
|
string |
|
Имя переменной, которой вы хотите, чтобы возвращаемые роли были помещены в |
Примеры
Возврат списка участников роли и повторение пользователей в каждом из этих участников.
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib" xmlns:core="jelly:core">
<jira:GetDefaultRoleActors projectroleid="1" var="roleactors" >
<core:forEach var="actor" items="${roleactors.users}">
${actor.name}
</core:forEach>
</jira:GetDefaultRoleActors>
</JiraJelly>
jira: GetProjectRole
Этот тег вернет роль проекта с данным идентификатором.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
projectroleid |
int |
|
Идентификатор роли проекта, который вы хотите |
var
|
string |
|
Имя переменной, которой вы хотите присвоить роль проекта |
Примеры
Возврат роли проекта
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:GetProjectRole projectroleid="1" var="role" >
${role.name}
</jira:GetProjectRole>
</JiraJelly>
jira: GetProjectRoleActors
Этот тег будет возвращать объект ProjectRoleActors для данной роли и проекта. Этот объект является заполнителем для внутренних членов роли проекта, то есть пользователей и / или групп. Чтобы получить коллекцию пользователей в этом объекте, используйте выражение $ {roleactors.users}, где roleactors - это имя переменной объекта. Для получения дополнительной информации о объекте RoleActors обратитесь к API JIRA.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
projectkey
|
string |
|
Ключ проекта, который вы хотите запросить (query) |
projectroleid
|
int |
|
Идентификатор роли проекта, который вы хотите запросить (query) |
var
|
string |
|
Имя переменной, для которой требуется объект возвращенных "объектов роли", назначенный для |
Примеры
Вернуть список пользователей для данного объекта «актеры роли»
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib" xmlns:core="jelly:core">
<jira:GetProjectRoleActors projectkey="MKY" projectroleid="1" var="roleactors" >
<core:forEach var="actor" items="${roleactors.users}">
${actor.name}
</core:forEach>
</jira:GetProjectRoleActors>
</JiraJelly>
jira: IsProjectRoleNameUnique
Этот тег вернет «true» или «false», чтобы вы знали, есть ли уже роль проекта с данным именем.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
name
|
string |
|
Название роли проекта |
var |
string |
|
Имя переменной, к которой вы хотите получить возвращенный результат. |
Примеры
Определение уникальности роли проекта.
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:IsProjectRoleNameUnique name="unique name" var="isUnique" >
${isUnique}
</jira:IsProjectRoleNameUnique>
</JiraJelly>
jira: LinkIssue
Этот тег создает ссылку из одной задачи в другую.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
key
|
string |
|
Ключ задачи, со ссылкой из (источник ссылки - требуется) |
linkKey
|
string |
|
Ключ задачи, со ссылкой к (назначение ссылки - требуется) |
linkDesc
|
string |
|
linkDesc берется из «Внутреннего описания» или «Внешнего описания» ссылки. (обязательно) |
Примеры
Создать связь между двумя существующими задачами
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:LinkIssue key="TST-1" linkKey="TST-2" linkDesc="duplicates"/>
</JiraJelly>
Создайте две задачи и соедините их
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateIssue project-key="HSP" assignee="-1" summary="Issue summary 1" reporter="admin" issueKeyVar="issuekey1"/>
<jira:CreateIssue project-key="NDT" assignee="-1" summary="Issue summary 2" reporter="admin" issueKeyVar="issuekey2"/>
<jira:LinkIssue key="${issuekey1}" linkKey="${issuekey2}" linkDesc="duplicates"/>
</JiraJelly>
jira:Login
Этот тег регистрирует пользователя в JIRA с использованием имени пользователя и пароля. Используйте этот тег, когда вы запускаете скрипт Jelly таким образом, чтобы вы не вошли в систему (например, если вы используете JellyService вместо использования Jelly Runner) или если вы хотите запустить скрипт Jelly как другой пользователь к тому, с которым вы вошли в систему.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
username
|
string |
|
Имя пользователя для входа в систему. |
password |
string |
|
Пароль пользователя для входа в систему. |
Контекстные переменные
Контекстные переменные
|
Тип |
Описание |
jelly.user
|
User |
Пользователь вошел в систему. |
jelly.username
|
string |
Имя пользователя, вошедшего в систему. |
Примеры
Войдите в систему с именем пользователя и паролем и установите в контекст
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:Login username="misc-user" password="password">
<!-- other jelly tags -->
</jira:Login>
</JiraJelly>
jira: RemoveActorsFromDefaultProjectRole
Этот тег удалит список участников роли (то есть пользователей и / или групп) из членства по умолчанию для данной роли проекта.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
projectroleid
|
int |
|
Идентификатор роли проекта, который вы хотите удалить участников по умолчанию из |
actors
|
string |
|
Список пользователей или групп с разделителями-запятыми, которые вы хотите удалить из роли проекта по умолчанию |
actortype
|
string |
|
Тип «актера», который вы удаляете. В настоящее время доступными параметрами являются «atlassian-group-role-actor» или «atlassian-user-role-actor» |
Примеры
Удаление списка групп из роли проекта по умолчанию
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:RemoveActorsFromDefaultProjectRole projectroleid="1"
actors="jira-administrators, jira-users" actortype="atlassian-group-role-actor" />
</JiraJelly>
jira: RemoveActorsFromProjectRole
Этот тег удалит список ролевых актеров из заданной роли проекта для данного проекта.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
projectroleid
|
int |
|
Идентификатор роли проекта, членов которых вы хотите удалить из |
actors
|
string |
|
Список пользователей или групп, разделенных запятыми, которые вы хотите удалить из роли проекта |
projectkey
|
string |
|
Ключевым элементом проекта является роль проекта связанная с |
actortype
|
string |
|
Тип «актера», с которым вы работаете. В настоящее время доступными параметрами являются «atlassian-group-role-actor» или «atlassian-user-role-actor» |
Примеры
Удаление списка групп из роли проекта
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:RemoveActorsFromProjectRole projectroleid="1"
actors="jira-administrators, jira-users" projectkey="MKY"
actortype="atlassian-group-role-actor" />
</JiraJelly>
jira: RemoveUser
Удаляет существующего пользователя JIRA своим именем пользователя
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
name
|
string |
|
Имя пользователя для удаления (обязательно). |
Примеры
Удалить пользователя
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:RemoveUser name="existing-user"/>
</JiraJelly>
jira: RunSearchRequest
Этот тег запускает запрос на поиск JIRA с использованием предопределенного фильтра.
Примечание: Этот тег возвращает GenericValue для каждой пзадачи, которая соответствует поисковому запросу.
GenericValue состоит из пар ключ-значение, например:
[GenericEntity:Issue]
[created,2007-11-01 15:51:25.0]
[summary,Testing]
[component,null]
[workflowId,12530]
[timeoriginalestimate,null]
[fixfor,null]
[type,2]
[timespent,null]
[environment,Windows]
[resolution,null]
[status,1]
[updated,2007-11-01 15:51:25.0]
[timeestimate,null]
[id,11540]
[key,TSTA-5]
[duedate,null]
[description,Test]
[project,10063]
[reporter,admin]
[security,null]
[votes,0]
[assignee,null]
[priority,3]
Чтобы получить значение, например. , вы можете вызвать gv.getString («ключ»). Полную информацию см. в API-интерфейсе OFBiz GenericValue.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
filterid
|
int |
|
Идентификатор фильтра, который будет использоваться для запуска поискового запроса. |
size-var
|
string |
|
Переменная, которая будет содержать количество задач, возвращаемых из поиска запроса. |
var
|
string |
|
Переменная, которая будет содержать задачи, возвращенные из поиска запроса. |
Примеры
Выполнение запроса на поиск и повторение с помощью ключей возвращаемых задач
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib" xmlns:core="jelly:core">
<jira:RunSearchRequest filterid="10524" var="issues" size-var="issuecount"/>
<core:forEach var="issue" items="${issues}">
${issue.key}
</core:forEach>
</JiraJelly>
jira: SelectComponentAssignees
Выбирает представителей по умолчанию для вновь созданных задач компонента.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
project-key
|
string |
|
Ключ проекта, который вы хотите добавить к компоненту (обязательно). |
componentName
|
string |
|
Название компонента (обязательно). |
assigneeType
|
string |
|
Тип представителя по умолчанию (обязательно). Типы представителей: · projectDefault · componentLead · projectLead · unassigned |
Примеры
Выберите представителя компоненты
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.enterprise.JiraTagLib">
<jira:SelectComponentAssignees project-key="ABC" componentName="Comp 1" assigneeType="componentLead"/>
</JiraJelly>
jira: TransitionWorkflow
Обратите внимание: этот тег недоступен в 3.3 и 3.3.1 - подробности см. в JRA-7690.
Этот тег выполняет переход рабочего процесса по задаче.
Имейте в виду, что если вы указываете пары атрибутов / значений полей в теге Jelly, эти поля ДОЛЖНЫ находиться на экране перехода с соответствующим рабочим процессом. Если поле отсутствует на экране, значение не будет задано по задаче. Например, если вы хотите установить атрибут разрешения в своем Jelly XML, ваш переход должен иметь связанный с ним экран, который включает в себя поле разрешения на этом экране.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
user
|
string |
В настоящее время вошедший пользователь |
Имя пользователя для выполнения перехода рабочего процесса. Пользователь должен иметь соответствующие разрешения для выполнения перехода. Обратите внимание, что требуемые разрешения также зависят от полей, которые обновляются во время перехода. (См. Другие атрибуты ниже). |
key
|
string |
|
Ключ задачи для выполнения перехода. |
workflowAction
|
string |
|
Идентификатор или имя перехода рабочего процесса для выполнения. Если аргумент может быть преобразован в число, он считается идентификатором перехода. В противном случае предполагается, что это имя. |
resolution
|
string |
|
Идентификатор или имя разрешения, которое будет задано по задаче в ходе перехода. Обратите внимание, что переход должен ожидать, что разрешение будет обновлено, иначе возникнет ошибка, если этот атрибут будет предоставлен. Если аргумент может быть преобразован в число, он считается идентификатором разрешения. В противном случае предполагается, что это имя. |
assignee
|
string |
|
Имя пользователя для назначения задачи во время перехода. «Пользователь», выполняющий переход, должен иметь разрешения на назначение задач, если этот атрибут предоставлен. Обратите внимание, что переход должен ожидать, что представитель будет обновлен, иначе возникнет ошибка, если этот атрибут будет предоставлен. Используйте значение «-automatic-», чтобы JIRA назначил проблему назначаемому по умолчанию представителю. |
fixVersions
|
string |
|
Список разделенных запятыми идентификаторов версий или имен для установки в качестве «исправления для» версий во время перехода. «Пользователь», выполняющий переход, должен иметь разрешения на установку «исправлять» версии, если этот атрибут предоставлен. Обратите внимание, что переход должен ожидать обновления версий «fix for», иначе возникает ошибка, если этот атрибут предоставлен. Если значение в указанном списке с запятыми может быть преобразовано в число, оно считается идентификатором версии. В противном случае предполагается, что это имя. |
comment
|
string |
|
Комментарий, чтобы добавить к задаче во время перехода. «Пользователь», выполняющий переход, должен иметь разрешения на добавление комментариев, и переход должен ожидать добавления комментариев во время его выполнения для успешного добавления комментария. |
groupLevel
|
string |
|
Уровень комментария. Уровень должен быть именем группы, членом которой является пользователь. ПРИМЕЧАНИЕ. Если это указано, вы не можете указать параметр roleLevel. |
roleLevel
|
string |
|
Имя или идентификатор роли проекта, которые могут видеть этот комментарий. ПРИМЕЧАНИЕ. Если это указано, вы не можете указать параметр groupLevel. |
Примеры
Выполнение перехода рабочего процесса
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:TransitionWorkflow key="TST-6" user="testuser" workflowAction="Resolve issue"
resolution="fixed" fixVersions="version 1,version 3" assignee="-automatic-"
comment="Test comment" groupLevel="jira-developers" />
</JiraJelly>
jira: UpdateProjectRole
Этот тег обновит имя и описание для данного идентификатора роли проекта.
Атрибуты
Имя атрибута |
Тип |
Значение по умолчанию |
Описание |
projectroleid
|
int |
|
Идентификатор роли проекта, который вы хотите запросить |
name
|
string |
|
Имя, которое вы хотите, чтобы роль проекта обновлялась с помощью |
description
|
string |
|
Описание, в котором вы хотите, чтобы роль проекта обновлялась с помощью |
Примеры
Обновление роли проекта
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:UpdateProjectRole projectroleid="123" name="unique name"
description="my project role is nice" />
</JiraJelly>
Бета-теги
Существует также несколько тегов BETA, которые не были полностью протестированы или задокументированы. Следующий список содержит теги и атрибуты, которые могут быть переданы им:
-
AddIssueSecurity
- schemId (обязательно)
- security (обязательно)
- type (обязательно)
-
AddIssueSecurityLevel
- name (обязательно)
- description (обязательно)
-
Output
- issue.scheme.level.id
-
CreateIssueSecurityScheme
- name (обязательно)
- description (обязательно)
-
Output
- issue.scheme.id
-
LoadManager
- var (переменная для ввода менеджера)
- manager (имя менеджера, например IssueManager)
-
LoadProject
- var (переменная для ввода проекта)
- project-name (название проекта)
-
RemoveGroup
- name (обязательно)
-
RemovePermissionScheme
- schemId (обязательно)
- confirm (обязательно)
- RemoveProject
- pId (обязательно)
-
SelectProjectScheme
- projectKey (обязательно)
- permission-scheme (название схемы разрешения) или
- issue-scheme (название схемы безопасности задачи)
-
StringContains
- value (Строка для просмотра)
- possiblyContains (String, чтобы искать)
- doContain (true или false), если значение содержит possiblyContains == doesContain, внутренняя часть тега выполняется.
Если вам нужна дополнительная информация о том, как использовать бета-теги, прочитайте источник и / или отправьте сообщение в Atlassian Answers для JIRA.
Примеры скриптов
Создание нового проекта
Для правильного разбиения проектов необходимо, чтобы для каждого проекта была схема разрешений, а для групп проекта - распределение разрешений. Создание нового проекта может быть трудоемким процессом. Следующие примеры скриптов Jelly автоматизируют это:
Этот скрипт может использоваться для общедоступного проекта:
<?xml version="1.0"?>
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.enterprise.JiraTagLib" xmlns:j="jelly:core">
<j:set var="name" value="Test Project"/>
<j:set var="key" value="TEST"/>
<j:set var="lowerkey" value="test"/>
<j:set var="lead_username" value="joe"/>
<j:set var="lead_password" value="joe"/>
<j:set var="lead_fullname" value="Joe Bloggs"/>
<j:set var="lead_email" value="joe@example.com"/>
<j:set var="url" value="http://example.com/TestProj"/>
<jira:CreateUser username="${lead_username}" password="${lead_password}" confirm="${lead_password}"
fullname="${lead_fullname}" email="${lead_email}"/>
<jira:CreateGroup group-name="${lowerkey}-developers">
<jira:AddUserToGroup username="${lead}"/>
</jira:CreateGroup>
<jira:CreateProject key="${key}" name="${name}" url="${url}" lead="${lead_username}">
<jira:CreatePermissionScheme name="${name} permissions">
<jira:AddPermission type="reporter" permissions="Close"/>
<jira:AddPermission group="jira-administrators" permissions="Close,Delete" type="group"/>
<jira:AddPermission group="jira-users" permissions="Create,Edit,Comment,Link,Attach" type="group"/>
<jira:AddPermission group="${lowerkey}-developers"
permissions="Project,ScheduleIssue,Move,Assign,Assignable,Resolve,Close,Work" type="group"/>
<jira:AddPermission group="Anyone" permissions="Browse,ViewVersionControl"/>
<jira:SelectProjectScheme/>
</jira:CreatePermissionScheme>
</jira:CreateProject>
</JiraJelly>
Этот сценарий более сложный, с несколькими группами для каждого проекта:
<?xml version="1.0"?>
<!-- This script handles some of the administrative chores required when adding
a new project to JIRA. It creates the project, groups, permission scheme, and gives
groups the relevant permissions in the permission scheme. -->
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib" xmlns:j="jelly:core">
<!-- Name of the project to create -->
<j:set var="name" value="Jelly Test Project"/>
<!-- Key for the new project -->
<j:set var="key" value="TEST"/>
<!-- Existing user who will become the project lead (default assignee) -->
<j:set var="admin" value="admin"/>
<jira:CreateGroup group-name="${key}-users"/>
<jira:CreateGroup group-name="${key}-developers"/>
<jira:CreateGroup group-name="${key}-managers"/>
<jira:CreateGroup group-name="${key}-bizusers"/>
<jira:CreateGroup group-name="${key}-qa"/>
<jira:CreateProject key="${key}" name="${name}" lead="${admin}">
<jira:CreatePermissionScheme name="${key} Permission Scheme">
<jira:AddPermission type="reporter" permissions="Edit"/>
<jira:AddPermission type="assignee" permissions="Resolve"/>
<jira:AddPermission group="jira-administrators" permissions="Project,Delete" type="group"/>
<jira:AddPermission group="${key}-users" permissions="Browse,Create,Comment,Attach" type="group"/>
<jira:AddPermission group="${key}-developers" permissions="Move,Assignable,Link,ViewVersionControl"
type="group"/>
<jira:AddPermission group="${key}-managers" permissions="Edit,Assign,Assignable,Resolve,Close,Delete"
type="group"/>
<jira:AddPermission group="${key}-bizusers" permissions="Assignable" type="group"/>
<jira:AddPermission group="${key}-qa" permissions="Assignable" type="group"/>
<jira:AddPermission group="opsmgrs" permissions="Browse,Edit,Assignable,Comment" type="group"/>
<jira:AddPermission group="dba-user-group" permissions="Browse,Assign,Assignable,Comment" type="group"/>
<jira:AddPermission group="help-desk-group" permissions="Browse,Assign,Assignable,Comment" type="group"/>
<jira:AddPermission group="webadmin-group" permissions="Browse,Assign,Assignable,Comment" type="group"/>
<jira:AddPermission group="unix-admin-group" permissions="Browse,Assign,Assignable,Comment" type="group"/>
<jira:SelectProjectScheme/>
</jira:CreatePermissionScheme>
</jira:CreateProject>
</JiraJelly>
Для списка проектов выполните конкретную операцию.
Этот скрипт выполняет итерацию через (разделенный запятыми) список проектов, создает группу, специфичную для проекта, и добавляет пользователя в эту группу.
<?xml version="1.0"?>
<!-- Jelly script to create 'support' group per project -->
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib" xmlns:util="jelly:util" xmlns:j="jelly:core">
<util:tokenize var="projects" delim=",">ARM,QWI,DWI,DBOR,DBSQ,LYX,MMM,MOI,TPAI,SEP,AMR,SLA,TP,TRBC,YRD</util:tokenize>
<j:forEach var="proj" items="${projects}">
<jira:CreateGroup group-name="${proj}-support"/>
<jira:AddUserToGroup username="jeff" group-name="${proj}-support"/>
</j:forEach>
</JiraJelly>
Создавать пользователя, задачу и назначать задачу пользователю
Следующий сценарий создает пользователя (называемый новым пользователем), создает новую задачу, добавляет пользователя в группу разработчиков jira и назначает задачу пользователю. Он иллюстрирует использование контекстных переменных.
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateUser username="new-user" password="password" confirm="password"
fullname="Full name" email="test@test.com"/>
Username is ${jelly.new.username}
<jira:CreateIssue project-key="TP" summary="New issue summary" issueKeyVar="ik"/>
<jira:AddUserToGroup username="new-user" group-name="jira-developers"/>
<jira:AssignIssue key="${ik}" assignee="${jelly.new.username}"/>
</JiraJelly>
Назначение и запуск
Здесь мы создаем задачу, назначаем ее «bob» (кто должен быть в jira-developers) и начинаем работу:
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateIssue project-key="TP" summary="New issue" issueKeyVar="ik"/>
<jira:AssignIssue key="${ik}" assignee="bob"/>
<jira:TransitionWorkflow key="${ik}" user="bob" workflowAction="Start Progress" />
</JiraJelly>
Перемещение нерегламентированных задач в состояние «Неактивное»
Когда JIRA используется для взаимодействия с клиентами, этот сценарий полезен для поиска задач, которые ожидают ответа клиента, и на какое-то время не ответили. Он переводит такие проблемы в состояние «Неактивное».Вы обычно вызываете этот скрипт периодически с помощью Jelly Service.
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.enterprise.JiraTagLib" xmlns:core="jelly:core" xmlns:log="jelly:log" >
<jira:Login username="customersupport" password="XXXXXX">
<log:warn>Running Inactivate issues service</log:warn>
<core:set var="comment">This issue has not been updated for 5 business days.
If you have an update, please use "Add Comments For Vendor" action to let us know.
If you need more time to gather information please let us know and we will 'freeze' this issue.
If you have no other questions, please Close this issue.
If no update is received in the next 5 business days, this issue will be automatically closed.
Thank you,
The Support Team</core:set>
<core:set var="workflowStep" value="Mark Inactive" />
<core:set var="workflowUser" value="customersupport" />
<!-- Run the SearchRequestFilter -->
<jira:RunSearchRequest filterid="11505" var="issues" />
<core:forEach var="issue" items="${issues}">
<log:warn>Inactivating issue ${issue.key}</log:warn>
<jira:TransitionWorkflow key="${issue.key}" user="${workflowUser}" workflowAction="${workflowStep}" comment="${comment}"/>
</core:forEach>
</jira:Login>
</JiraJelly>
Где
- workflowStep - это название перехода рабочего процесса, например «Закрыть задачу», «Начало прогресса», так же, как они отображаются в левом меню на экране задач.
- workflowUser - это пользователь для запуска перехода как
- filterid - это идентификатор сохраненного поиска (фильтра), который обнаруживает, что задачи должны быть инактивированы (перешли). Этот идентификатор можно найти по URL-адресу фильтра на вкладке «Управление» в разделе «Найти задачи».
Инструмент JIRA инструментарий (Toolkit) полезен в сочетании с этим скриптом, чтобы найти задачи, ожидающие ответа клиента.
По материалам Atlassian JIRA Administrator's Guide: Jelly Tags