I am currently calling the JIRA workflow API to create a new workflow. The goal is the ability to fully configure JIRA for projects automatically.
"/rest/api/2/workflow"
I am able to currently create the JIRA workflow with a post call and the following payload.
workflow_payload = json.dumps({
"name": "api_workflow",
"description": "This is a workflow created through API.",
"statuses": [
{
"id": jf.get_workflow_status_id(url_base, headers, 'Open'),
"properties": {
"jira.issue.editable": "false"
}
},
{
"id": jf.get_workflow_status_id(url_base, headers, 'In Progress'),
},
{
"id": jf.get_workflow_status_id(url_base, headers, 'Reopened'),
},
{
"id": jf.get_workflow_status_id(url_base, headers, 'Resolved'),
},
{
"id": jf.get_workflow_status_id(url_base, headers, 'Closed'),
},
],
"transitions": [
{
"description": "",
"from": [],
"name": "Create Issue",
"to": "1",
"type": "initial"
},
{
"description": "",
"from": [
"1",
"3",
"4"
],
"name": "Close Issue",
"rules": {
"conditions": []
},
"to": "6",
"type": "directed"
},
{
"description": "",
"from": [
"5",
"6"
],
"name": "Reopen Issue",
"to": "4",
"type": "directed"
},
{
"description": "",
"from": [
"3"
],
"name": "Stop Progress",
"to": "1",
"type": "directed"
},
{
"description": "",
"from": [
"1",
"4"
],
"name": "Start Progress",
"to": "3",
"type": "directed"
},
{
"description": "",
"from": [
"1",
"3",
"4"
],
"name": "Resolve Issue",
"to": "5",
"type": "directed"
},
{
"description": "Closing an issue indicates there is no more work to be done on it, and it has been verified as complete.",
"from": [
"5"
],
"name": "Close Issue",
"to": "6",
"type": "directed"
}
]
})
I had written function (jf.get_workflow_status_id(url_base, headers, 'In Progress')) so that users can provide status name and retrieve the ID. In the example above, user provides "In Progress" and in its ID will show up. I am able to create workflow with transitions from one status to the next. However when I attempt to add rules/conditions, etc I get thrown an error.
"rules": {
"conditions": []
},
{"errorMessages":["Can not deserialize instance of com.atlassian.jira.workflow.bean.create.CreateWorkflowConditionBean out of START_ARRAY token\n at [Source: org.apache.catalina.connector.CoyoteInputStream@5c6936c; line: 1, column: 392]"]}
Can anyone explain what this means? What I need to change? I initially copied a condition from a workflow I created through the UI, but that didn't work, so I kept removing things inside the bracket to the point, even without anything in it, it throws that error.
I am able to create a workflow where I provide a blank validator.
"rules": {
"validators": []
},
Let me know if any details is required. Shocking that following the example from "https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-workflows/#api-rest-api-3-workflow-post" didn't do anything or work.
Hi @Antony Chea and welcome to the community,
There is a new endpoint for creating workflow, Bulk Create Workflows. Can you try with this https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-workflows/#api-rest-api-3-workflows-create-post and let us know if that resolved the problem?
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.