1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2026-04-21 19:29:05 +00:00
community.general/plugins
vladi-k 3e9689b13d
jira - resolve Cloud assignee email to account ID via user search (#11735)
* jira - resolve Cloud assignee email to account ID via user search

When cloud=true and assignee contains '@', look up a unique user with
GET /rest/api/2/user/search and use accountId for create, transition,
and edit. Document Jira Cloud vs Server/Data Center assignee behavior.

Fixes https://github.com/ansible-collections/community.general/issues/11734

Assisted-by AI: Claude 4.6 Opus (Anthropic) via Cursor IDE

Signed-off-by: Vladimir Vasilev <vvasilev@redhat.com>

* * Using urllib.parse.quote for URL encoding
* Adding "added in version" note for assignee when resolving account_id from email

Signed-off-by: Vladimir Vasilev <vvasilev@redhat.com>

* * Added cached variable 'user_email'
* Changed comparison to handle missing email safely
* Updated error message formatting to use repr-style values

Signed-off-by: Vladimir Vasilev <vvasilev@redhat.com>

* jira - adjust assignee and cloud descriptions (#11734)

Signed-off-by: Vladimir Vasilev <vvasilev@redhat.com>

* jira - resolve user-type field emails to account IDs on Jira Cloud (#11734)

When cloud=true, user-type fields (assignee, reporter, and any listed
in the new custom_user_fields parameter) that contain '@' are resolved
from email to Jira Cloud account ID via the user search API. Strings
without '@' are assumed to be account IDs. Add custom_user_fields
parameter for user to declare additional custom fields of user type.

Signed-off-by: Vladimir Vasilev <vvasilev@redhat.com>

* jira - address PR 11735 review (docs, assignee path, errors, naming)

- Clarify O(custom_user_fields): built-ins stay automatic; list extra
  user-typed fields without implying they are only custom-field IDs.
- On Jira Cloud, set assignee from the module param as a plain string and
  let resolve_user_fields() map it to accountId (including email lookup).
- Drop redundant ``or []`` when merging O(custom_user_fields) with the
  built-in user field list.
- Use public names USER_FIELDS, resolve_user_fields, and resolve_account_id
  (no leading underscore) per reviewer preference.
- Quote field name and email in resolution errors with explicit "…" text
  instead of repr-style !r, keeping values readable in failure messages.

Refs: https://github.com/ansible-collections/community.general/pull/11735

AI-assisted: Composer 2 (Anthropic) via Cursor IDE

Signed-off-by: Vladimir Vasilev <vvasilev@redhat.com>

* Changing fail_json formatting

Signed-off-by: Vladimir Vasilev <vvasilev@redhat.com>

* formatting fixes

Signed-off-by: Vladimir Vasilev <vvasilev@redhat.com>

* jira - fixing assignee as module option in description

Signed-off-by: Vladimir Vasilev <vvasilev@redhat.com>

---------

Signed-off-by: Vladimir Vasilev <vvasilev@redhat.com>
2026-04-20 09:28:01 +02:00
..
action Sort imports with ruff check --fix (#11400) 2026-01-09 07:40:58 +01:00
become incus, machinectl, run0 - fix become over pty connections (#11771) 2026-04-15 17:47:09 +02:00
cache Sort imports with ruff check --fix (#11400) 2026-01-09 07:40:58 +01:00
callback counter_enabled callback: honor display_ok_hosts setting (#11656) 2026-03-23 19:57:48 +01:00
connection incus, machinectl, run0 - fix become over pty connections (#11771) 2026-04-15 17:47:09 +02:00
doc_fragments New module icinga2_downtime (#11462) 2026-02-23 05:38:54 +01:00
filter Add missing __future__ imports (#11567) 2026-03-11 06:42:08 +01:00
inventory fix: remove HTTPStatus constructs introduced in Python 3.11 (#11573) 2026-03-12 20:46:55 +01:00
lookup etcd3 lookup - improve HTTPS connection handling and docs (#11861) 2026-04-17 13:56:57 +02:00
module_utils lvol - migrate to CmdRunner (#11887) 2026-04-20 09:26:41 +02:00
modules jira - resolve Cloud assignee email to account ID via user search (#11735) 2026-04-20 09:28:01 +02:00
plugin_utils Add missing __future__ imports (#11567) 2026-03-11 06:42:08 +01:00
test Sort imports with ruff check --fix (#11400) 2026-01-09 07:40:58 +01:00