Skip to content

collect_jira_ticket_info

Collect metadata for Jira integration from task metadata.

Requires

instance.data["taskEntity]

Provides

instance.data["jira"]["jira_ticket_id"]

CollectJiraTicket

Bases: InstancePlugin

Collects id for Jira ticket according to current_stage on the task

Source code in client/ayon_jira/plugins/publish/collect_jira_ticket_info.py
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
class CollectJiraTicket(pyblish.api.InstancePlugin):
    """Collects id for Jira ticket according to current_stage on the task"""
    order = pyblish.api.CollectorOrder + 0.499
    label = "Collect Jira Ticket"
    families = ["jira"]

    def process(self, instance):
        context_data = instance.context.data
        if (not context_data.get("jira") or
                not context_data["jira"]["enabled"]):
            return

        task_entity = instance.data.get("taskEntity")
        if not task_entity:
            return
        task_data = task_entity.get("data", {})
        if not task_data:
            return

        jira_meta = task_data.get("jira")
        if not jira_meta:
            return

        current_stage = self._get_current_stage(task_entity)
        self.log.info(f"Collected stage '{current_stage}'")

        jira_ticket_key = f"{current_stage}_jira_ticket"

        jira_ticket_id = jira_meta.get(jira_ticket_key)
        instance.data["jira"]["jira_ticket_id"] = jira_ticket_id

        self.log.info(f"Collected ticket id '{jira_ticket_id}'")

    def _get_current_stage(self, task_entity):
        return task_entity["attrib"]["jiraCurrentPhase"]