Spec-Zone.ru › Ansible

Модуль community.general.jira — создание и изменение задач в экземпляре JIRA

Примечание

Этот модуль входит в коллекцию community.general (версия 12.6.1).

Эта коллекция уже может быть установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Чтобы установить её, используйте: ansible-galaxy collection install community.general.

Чтобы использовать её в плейбуке, укажите: community.general.jira.

  • Краткое описание
  • Параметры
  • Атрибуты
  • Примечания
  • Примеры

Краткое описание

  • Создание и изменение задач в экземпляре JIRA.

Параметры

Параметр

Комментарии

account_id

строка

добавлен в community.general 2.5.0

Задаёт идентификатор учётной записи исполнителя, если operation имеет значение create, transition или edit.

Обратите внимание, что JIRA может запрещать изменение значений полей при определённых переходах или состояниях.

assignee

строка

Задаёт исполнителя, если operation имеет значение create, transition или edit.

Для всех полей типа «пользователь» в Jira Cloud требуются идентификаторы учётных записей. Если задано cloud=true, строковое значение, содержащее @, автоматически преобразуется из адреса электронной почты в идентификатор учётной записи. Строка без @ считается идентификатором учётной записи. Также см. account_id — специальный параметр идентификатора учётной записи исполнителя. Добавлен в community.general 12.6.0.

Jira Server и Jira Data Center по-прежнему могут принимать assignee в качестве имени пользователя.

Обратите внимание, что JIRA может запрещать изменение значений полей при определённых переходах или состояниях.

attachment

словарь

добавлен в community.general 2.5.0

Информация о загружаемом вложении.

content

строка

Содержимое файла для вложения в кодировке Base64. Если не указано, вместо него используется содержимое attachment.filename.

filename

путь / обязательно

Путь к загружаемому файлу (на удалённом узле) или, если указано attachment.content, имя файла, используемое для вложения.

mimetype

строка

Тип MIME, указываемый при загрузке. Если не указан, выполняется максимально возможное автоматическое определение.

client_cert

путь

добавлен в community.general 10.4.0

Сертификат клиента, если он требуется.

В дополнение к username и password или token. Не являются взаимоисключающими.

client_key

путь

добавлен в community.general 10.4.0

Ключ сертификата клиента, если он требуется.

В дополнение к username и password или token. Не являются взаимоисключающими.

cloud

логический

добавлен в community.general 12.6.0

Включите при использовании Jira Cloud.

Если задано значение true, модуль использует поведение, совместимое с Jira Cloud.

Если задано значение false (по умолчанию), модуль использует поведение, совместимое с Jira Server / Data Center.

В будущем этот параметр может влиять и на другие операции для обеспечения совместимости с Jira Cloud.

Варианты:

  • false ← (по умолчанию)
  • true

comment

строка

Текст добавляемого комментария.

Обратите внимание, что JIRA может запрещать изменение значений полей при определённых переходах или состояниях.

comment_visibility

словарь

добавлен в community.general 3.2.0

Используется для задания видимости комментария.

Подробности см. на странице https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-comments/#api-rest-api-2-issue-issueidorkey-comment-post.

type

строка / обязательно

Используйте comment_visibility.type, чтобы указать, какой тип ограничения видимости JIRA применяется.

Варианты:

  • "group"
  • "role"

value

строка / обязательно

Укажите значение, соответствующее типу ограничения видимости, например имя группы или роли.

custom_user_fields

список / элементы=строка

добавлен в community.general 12.6.0

Список имён полей (например, customfield_10050), содержащих значения пользователей.

Если задано cloud=true и перечисленное поле присутствует в fields в виде строки, содержащей @, модуль автоматически преобразует адрес электронной почты в идентификатор учётной записи Jira Cloud.

Встроенные пользовательские поля assignee и reporter всегда преобразуются, если присутствуют; здесь перечислите все дополнительные поля типа «пользователь» (из других продуктов или расширений Jira), для которых требуется такое же преобразование.

По умолчанию: []

description

строка

Описание задачи, если применимо.

Обратите внимание, что JIRA может запрещать изменение значений полей при определённых переходах или состояниях.

fields

словарь

Это структура данных произвольного формата, которая может содержать любые данные. Она передаётся непосредственно в REST API JIRA (возможно, после объединения с другими необходимыми данными, например при создании). Дополнительную информацию см. в примерах, а описание структуры, необходимой для различных полей, — в REST API JIRA.

Если задано cloud=true, значения полей типа «пользователь» (assignee, reporter и любые поля, перечисленные в custom_user_fields), содержащие строковое значение с @, автоматически преобразуются из адреса электронной почты в идентификатор учётной записи. Строковые значения без @ считаются идентификаторами учётных записей. Добавлено в community.general 12.6.0.

При передаче в comment структура данных объединяется на первом уровне, начиная с community.general 4.6.0. Это полезно, например, для добавления свойств JIRA.

Обратите внимание, что JIRA может запрещать изменение значений полей при определённых переходах или состояниях.

По умолчанию: {}

inwardissue

строка

Задача, из которой создаётся связь.

issue

псевдонимы: ticket

строка

Ключ существующей задачи, с которой выполняется операция.

issuetype

строка

Тип задачи при её создании.

jql

строка

добавлен в community.general 0.2.0

Запрос к JIRA на синтаксисе JQL, например "CMDB Hostname" = test.example.com.

linktype

строка

Задаёт тип связи, если выбрано действие «link».

maxresults

целое число

добавлен в community.general 0.2.0

Ограничивает число результатов operation=search. Если значение не указано, используется ограничение JIRA по умолчанию.

Используется только при operation=search, в остальных случаях игнорируется.

operation

псевдонимы: command

строка / обязательно

Выполняемая операция.

worklog добавлено в community.general 6.5.0.

Варианты:

  • "attach"
  • "comment"
  • "create"
  • "edit"
  • "fetch"
  • "link"
  • "search"
  • "transition"
  • "update"
  • "worklog"

outwardissue

строка

Задача, на которую создаётся ссылка.

password

строка

Пароль для входа в систему.

Необходимо использовать вместе с username. Взаимоисключающий с token.

project

строка

Проект для этой операции. Обязателен при создании задачи.

status

строка

Используется только при operation со значением transition. Название несколько вводит в заблуждение: фактически речь идёт о названии перехода.

Взаимоисключающий с status_id.

status_id

строка

добавлен в community.general 10.3.0

Используется только при operation со значением transition и обозначает идентификатор перехода.

Взаимоисключающий с status.

summary

строка

Краткое описание задачи, если применимо.

Обратите внимание, что JIRA может запрещать изменение значений полей при определённых переходах или состояниях.

timeout

число с плавающей точкой

Задаёт время ожидания (в секундах) для запросов к API JIRA.

По умолчанию: 10.0

token

строка

добавлен в community.general 4.2.0

Персональный токен доступа для входа в систему.

Взаимоисключающий с username и password.

uri

строка / обязательно

Базовый URI экземпляра JIRA.

username

строка

Имя пользователя для входа в систему.

Необходимо использовать вместе с password. Взаимоисключающий с token.

validate_certs

логический

Требовать действительные сертификаты SSL (задайте false, если хотите использовать самоподписанные сертификаты).

Варианты:

  • false
  • true ← (по умолчанию)

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: отсутствует

Может выполняться в check_mode и возвращать прогноз изменения статуса, не изменяя целевой объект.

diff_mode

Поддержка: отсутствует

В режиме diff возвращает сведения об изменениях (или о возможных изменениях в check_mode).

Примечания

Примечание

  • В настоящее время поддерживаются только базовая аутентификация и токены.
  • Для использования с JIRA Cloud передайте адрес электронной почты для входа в качестве username, а токен API — в качестве password.
  • В Jira Cloud устаревшая конечная точка /rest/api/2/search удалена. При использовании operation=search с Jira Cloud задайте cloud=true, чтобы модуль использовал вместо неё заменяющую конечную точку /rest/api/2/search/jql.

Примеры

# Create a new issue and add a comment to it:
- name: Create an issue
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    project: ANS
    operation: create
    summary: Example Issue
    description: Created using Ansible
    issuetype: Task
  args:
    fields:
      customfield_13225: "test"
      customfield_12931: {"value": "Test"}
  register: issue

- name: Comment on issue
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    issue: '{{ issue.meta.key }}'
    operation: comment
    comment: A comment added by Ansible

- name: Comment on issue with restricted visibility
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    issue: '{{ issue.meta.key }}'
    operation: comment
    comment: A comment added by Ansible
    comment_visibility:
      type: role
      value: Developers

- name: Comment on issue with property to mark it internal
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    issue: '{{ issue.meta.key }}'
    operation: comment
    comment: A comment added by Ansible
    fields:
      properties:
        - key: 'sd.public.comment'
          value:
            internal: true

# Add an workog to an existing issue
- name: Worklog on issue
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    issue: '{{ issue.meta.key }}'
    operation: worklog
    comment: A worklog added by Ansible
    fields:
      timeSpentSeconds: 12000

- name: Workflow on issue with comment restricted visibility
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    issue: '{{ issue.meta.key }}'
    operation: worklog
    comment: A worklog added by Ansible
    comment_visibility:
      type: role
      value: Developers
    fields:
      timeSpentSeconds: 12000

- name: Workflow on issue with comment property to mark it internal
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    issue: '{{ issue.meta.key }}'
    operation: worklog
    comment: A worklog added by Ansible
    fields:
      properties:
        - key: 'sd.public.comment'
          value:
            internal: true
      timeSpentSeconds: 12000

# Assign an existing issue using edit
- name: Assign an issue using free-form fields
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    issue: '{{ issue.meta.key}}'
    operation: edit
    assignee: ssmith

# Create an issue with an existing assignee
- name: Create an assigned issue
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    project: ANS
    operation: create
    summary: Assigned issue
    description: Created and assigned using Ansible
    issuetype: Task
    assignee: ssmith

# Assign an issue on Jira Cloud using an email address
# (the module resolves the email to an account ID automatically)
- name: Assign an issue on Jira Cloud using email
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    issue: '{{ issue.meta.key }}'
    operation: edit
    cloud: true
    assignee: user@example.com

# Create an issue on Jira Cloud with reporter and a custom user field
# resolved from email addresses to account IDs
- name: Create an issue on Jira Cloud with user field resolution
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    project: ANS
    operation: create
    summary: Example Issue
    description: Created using Ansible
    issuetype: Task
    cloud: true
    assignee: assignee@example.com
    custom_user_fields:
      - customfield_10050
  args:
    fields:
      reporter: reporter@example.com
      customfield_10050: approver@example.com

# Edit an issue
- name: Set the labels on an issue using free-form fields
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    issue: '{{ issue.meta.key }}'
    operation: edit
  args:
    fields:
      labels:
        - autocreated
        - ansible

# Updating a field using operations: add, set & remove
- name: Change the value of a Select dropdown
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    issue: '{{ issue.meta.key }}'
    operation: update
  args:
    fields:
      customfield_12931: ['set': {'value': 'Virtual'}]
      customfield_13820: ['set': {'value': 'Manually'}]
  register: cmdb_issue
  delegate_to: localhost


# Retrieve metadata for an issue and use it to create an account
- name: Get an issue
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    project: ANS
    operation: fetch
    issue: ANS-63
  register: issue

# Search for an issue on Jira Data Center / Server
# You can limit the search for specific fields by adding optional args. Note! It must be a dict, hence, lastViewed: null
- name: Search for an issue
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    project: ANS
    operation: search
    maxresults: 10
    jql: project=cmdb AND cf[13225]="test"
  args:
    fields:
      lastViewed:
  register: issue

# Search for an issue on Jira Cloud (uses the /search/jql endpoint)
- name: Search for an issue on Jira Cloud
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    project: ANS
    operation: search
    cloud: true
    maxresults: 10
    jql: project=cmdb AND cf[13225]="test"
  args:
    fields:
      lastViewed:
  register: issue

- name: Create a unix account for the reporter
  become: true
  user:
    name: '{{ issue.meta.fields.creator.name }}'
    comment: '{{ issue.meta.fields.creator.displayName }}'

# You can get list of valid linktypes at /rest/api/2/issueLinkType
# url of your jira installation.
- name: Create link from HSP-1 to MKY-1
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    operation: link
    linktype: Relates
    inwardissue: HSP-1
    outwardissue: MKY-1

# Transition an issue
- name: Resolve the issue
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    issue: '{{ issue.meta.key }}'
    operation: transition
    status: Resolve Issue
    account_id: 112233445566778899aabbcc
    fields:
      resolution:
        name: Done
      description: I am done! This is the last description I will ever give you.

# Attach a file to an issue
- name: Attach a file
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    issue: HSP-1
    operation: attach
    attachment:
      filename: topsecretreport.xlsx

# Use username, password and client certificate authentification
- name: Create an issue
  community.general.jira:
    uri: '{{ server }}'
    username: '{{ user }}'
    password: '{{ pass }}'
    client_cert: '{{ path/to/client-cert }}'
    client_key: '{{ path/to/client-key }}'

# Use token and client certificate authentification
- name: Create an issue
  community.general.jira:
    uri: '{{ server }}'
    token: '{{ token }}'
    client_cert: '{{ path/to/client-cert }}'
    client_key: '{{ path/to/client-key }}'

Авторы

  • Steve Smith (@tarka)
  • Per Abildgaard Toft (@pertoft)
  • Brandon McNama (@DWSR)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Запросить помощь
  • Сообщить об ошибке
  • Запросить новую функцию
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/jira_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API