https://github.com/ynput/ayon-jira
Addon for Jira integration with use of templates
https://github.com/ynput/ayon-jira
addon ayon
Last synced: about 2 months ago
JSON representation
Addon for Jira integration with use of templates
- Host: GitHub
- URL: https://github.com/ynput/ayon-jira
- Owner: ynput
- License: apache-2.0
- Archived: true
- Created: 2024-06-13T12:56:21.000Z (almost 2 years ago)
- Default Branch: develop
- Last Pushed: 2026-02-24T14:49:23.000Z (3 months ago)
- Last Synced: 2026-04-13T07:49:52.155Z (about 2 months ago)
- Topics: addon, ayon
- Language: Python
- Homepage:
- Size: 5.93 MB
- Stars: 1
- Watchers: 6
- Forks: 1
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ayon-jira
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).
## Preparation of AYON and Jira tickets
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.
### Jira template
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"
}
}
}
```
### AYON template
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": ""
}
}
}
}
```
### Triggering of creation
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
- `Jira project key` - identifier of Jira project
- `Templates` - dropdown to select implemented templates
After providing values for these fields, `Create` button could be triggered.
### Installation and configuration
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.
##### AYON Settings
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.
### Todos
- provide possibility to add/update templates via UI (Settings or frontend)
- provide better logging and reporting
- add folder Picker to UI