Addon for Jira integration with use of templates
This addon provide two main functionalities, "Preparation of AYON and Jira tickets" and "Sending notifications to Jira",
These allow to create multiple AYON tasks and they matching Jira ticket on any folder path (characters/Alice
, sequences/seq01/shots/shot01/
).
It also allows to update state of Jira ticket by sending comments (and possibly uploading thumbnails or reviews).
Addon exposes creation of set of AYON and matching Jira tickets based on a prepared templates.
Currently these templates are located in server/templates
, they come in pairs, ending with _Ayon_Template.json
and _Jira_Template.json
.
Workflow for allowing multiple Jira tickets connected to single AYON task was implemented based on requirements.
Example shows that 2 Jira tickets should be created, each value enclosed in %
will be replaced by appropriate
value provided by whoever is triggering ticket creation via front end part of this addon.
(%Tier1CharacterNameOutfitName%
in this example would be replaced by name of character, eg. Robot
etc.)
Epic Link
would be used as a name of Epic, all tickets with same value would be joined to the Epic
AYON Task
will contain unique id to AYON task after its creation
Summary
is used as name of ticket
Description
is description of the ticket
Custom ID
is unique number in this field for all tickets in the template, it creates Depends_On
and Unblocks
links between Jira tickets. (Key of Jira ticket would be required for that, which is unknown until creation.
Values here are stand-ins to be replaced with appropriate ticket key.)
{
"jira_template": [
{
"Epic Link": "%Tier1CharacterNameOutfitName% - Concept",
"Component": "Design",
"AYON Task": "",
"Summary": "Specify any design requirements for %Tier1CharacterNameOutfitName%",
"Description": "What does this secondary outfit need to accomplish for design?",
"Custom ID": "2",
"Depends_On": "",
"Unblocks": "4",
"IssueType": "Task",
"Priority": "Medium",
"Original Estimate": "0.5",
"Int vs Ext": "Internal"
},
{
"Epic Link": "%Tier1CharacterNameOutfitName% - Concept",
"Component": "Narrative",
"AYON Task": "",
"Summary": "Create narrative description for %Tier1CharacterNameOutfitName%'s secondary outfit",
"Description": "What does this secondary outfit need to accomplish narratively?",
"Custom ID": "3",
"Depends_On": "",
"Unblocks": "4",
"IssueType": "Task",
"Priority": "Medium",
"Original Estimate": "0.5",
"Int vs Ext": "Internal"
}
}
}
Example AYON templates shows that 2 tasks should be created, Concept
and Model
.
"concept_jira_id": "5"
points to identifier '5' from Jira_Template.Custom ID
field and creates link between AYON task and Jira ticket.
These custom id identifiers must be unique in Jira_Template
file.
"concept_jira_ticket": ""
will be filled by Jira ticket key (KAN-201
) when ticket is created
{
"ayon_template": {
"tasks": {
"Concept": {
"current_phase": "",
"concept_jira_id": "5",
"concept_jira_ticket": ""
},
"Model": {
"current_phase": "",
"stood up_jira_id": "8",
"stood up_jira_ticket": "",
"presentable_jira_id": "15",
"presentable_jira_ticket": "",
"shippable_jira_id": "17",
"shippable_jira_ticket": "",
"polished_jira_id": "19",
"polished_jira_ticket": ""
}
}
}
}
Front end form is provided by this addon (addon must be added to production
bundle!).
It contains fields:
Folder path
- should contain path of asset for which task(s) defined in the templates should be created- value could be easily copied from:
- copy box in the top middle in
Browser
page in the Project on AYON server - from right column with details for folder in the same page
- project name prefix is not required, but doesn't cause an issue
- copy box in the top middle in
- value could be easily copied from:
Jira project key
- identifier of Jira projectTemplates
- dropdown to select implemented templates
After providing values for these fields, Create
button could be triggered.
Addon is expected to be built by cloning it first from Github, then running create_package.py
which will result
in zip file in package
folder. This file should be used to be installed on AYON server.
Before running create_packages
:
- provide/update templates in
server/templates
folder - provide/update identifiers of Jira custom field in
server/custom_fields.py
- these custom fields must be created and applied on Jira tickets/epics by Jira admin
Currently these parts of workflow are a bit manual process, but it is expected to be enhanced in the future.
Settings could be set in Studio Settings
or overriden per project in Project Settings
.
Jira server url, username, password and jira project code needs to be provided for creation of tickets and notifications.
ayon+settings://jira/phases
contains list of phases, where phase selects appropriate Jira ticket for single AYON task.
This phase must be set in right column of Editor
page on the AYON server (on folder, eg. asset) before work starts
on this AYON task.
Prefix value is used in task metadata as a part of key containing Jira ticket key.
ayon+settings://jira/publish/CollectJiraNotifications
controls for which hosts/tasks/products comment to the
Jira ticket should be sent.
Content of the comment is configurable with a use of Anatomy template keys, see https://ayon.ynput.io/docs/admin_settings_project_anatomy/#available-template-keys
Please be careful about which placeholder you put into the message, as some of them are not applicable for all products (frame
etc.)
There is also possibility to upload thumbnail
or review
directly to the Jira ticket.
Review might be too big to upload to occupy additional space on Jira, Review file size limit
allows to replace upload
with link in the comment for too large review files.
- provide possibility to add/update templates via UI (Settings or frontend)
- provide better logging and reporting
- add folder Picker to UI