Skip to content

IssueCRUD

Create Issue

Attempt to create an issue

Request

post /issues

Request body

Attribute Type Required Notes
name string yes name of issue
description string no description of issue
projectId integer yes id of the project the issue is assigned to
issueTypeId integer yes defines type of issue
priorityId integer yes defines priority of issue
statusId integer yes defines status
scheduleId integer no defines schedule id
assignedId integer no
parentType integer no defines type of parent issue
parentId integer no defines id of parent issue
private boolean no defines if issue is private
dueDate string no due date of issue
estimated integer no estimate time to resolve issue
spent integer no time spent on issue
gitlabIssueId integer no defines gitlab issue id
gitlabIssueIid integer no defines gitlab issue iid
labels array no array of integers that define labels
collaborators array no array of integers that define collaborators

Request body example

{
    "name": "test",
    "description": "test",
    "projectId": {
        "id": 1
        },
    "issueTypeId": {
        "id": 1
        },
    "priorityId": {
        "id": 1
        },
    "statusId": {
        "id": 1
        },
    "scheduleId": {
        "id": 1
        },
    "assignedId": {
        "id": 1
        },
    "parentType": {
        "id": 1
        },
    "parentId": 1,
    "private": false,
    "dueDate": "2023-03-16T10:17:04.000Z",
    "estimated": 0,
    "spent": 0,
    "gitlabIssueId": 2,
    "gitlabIssueIid": 2,
    "labels": 1,
    "collaborators": [0]
}
curl --location 'https://example.juno.one/issues' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0QGp1bm8ub25lIiwidGVuYW50SUQiOiJkZXZlbG9wbWVudCIsImV4cCI6MTY4MjMzOTQwNn0.XWAuQmaKsv5fh60umfYO2gMwtXUjWLWsy6HbDt_fQXV6HPhgQhMkqmmzhWaCXsUP9h-dvKrQowLdqBqHHTYQAA' \
--header 'X-TenantID: example' \
--header 'Content-Type: application/json' \
--data '{
"name": "asd",
"description": null,
"projectId":{
    "id": 13
    },
"issueTypeId":{
    "id": 1
    },
"priorityId":{
    "id": 0
    },
"statusId":{
    "id": 0
    },
"scheduleId": null,
"assignedId": null,
"parentType": null,
"parentId": null,
"private": false,
"dueDate": null,
"estimated": 0,
"spent": 0,
"gitlabIssueId": null,
"gitlabIssueIid": null,
"labels": [],
"collaborators": []

}'
import requests
import json

url = "https://example.juno.one/issues"

payload = json.dumps({
  "name": "asd",
  "description": None,
  "projectId": {
    "id": 13
  },
  "issueTypeId": {
    "id": 1
  },
  "priorityId": {
    "id": 0
  },
  "statusId": {
    "id": 0
  },
  "scheduleId": None,
  "assignedId": None,
  "parentType": None,
  "parentId": None,
  "private": False,
  "dueDate": None,
  "estimated": 0,
  "spent": 0,
  "gitlabIssueId": None,
  "gitlabIssueIid": None,
  "labels": [],
  "collaborators": []
})
headers = {
  'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0QGp1bm8ub25lIiwidGVuYW50SUQiOiJkZXZlbG9wbWVudCIsImV4cCI6MTY4NDQ4MzYyNn0.cYdUo4oiHnkdAywSAb7EFus9PFg-2FYHZPj4gdMML-mKgUVZw9fewOo4QK6U3PqCzGWjFVksz8HULzyKMnV8AA',
  'X-TenantID': 'example',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
val client = OkHttpClient()
val mediaType = "application/json".toMediaType()
val body = "{\n    \"name\": \"asd\",\n    \"description\": null,\n    \"projectId\":{\n        \"id\": 13\n    },\n    \"issueTypeId\":{\n        \"id\": 1\n    },\n    \"priorityId\":{\n        \"id\": 0\n    },\n    \"statusId\":{\n        \"id\": 0\n    },\n    \"scheduleId\": null,\n    \"assignedId\": null,\n    \"parentType\": null,\n    \"parentId\": null,\n    \"private\": false,\n    \"dueDate\": null,\n    \"estimated\": 0,\n    \"spent\": 0,\n    \"gitlabIssueId\": null,\n    \"gitlabIssueIid\": null,\n    \"labels\": [],\n    \"collaborators\": []\n\n}".toRequestBody(mediaType)
val request = Request.Builder()
  .url("https://example.juno.one/issues")
  .post(body)
  .addHeader("Authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0QGp1bm8ub25lIiwidGVuYW50SUQiOiJkZXZlbG9wbWVudCIsImV4cCI6MTY4NDQ4MzYyNn0.cYdUo4oiHnkdAywSAb7EFus9PFg-2FYHZPj4gdMML-mKgUVZw9fewOo4QK6U3PqCzGWjFVksz8HULzyKMnV8AA")
  .addHeader("X-TenantID", "example")
  .addHeader("Content-Type", "application/json")
  .build()
val response = client.newCall(request).execute()

Response

Successful response of issue create has the status 200 with following response body:

{
    "id": 2897,
    "name": "asd",
    "description": null,
    "projectId": {
        "id": 13,
        "name": "G: Turborohlik mobilní aplikace",
        "test_case_robust": true
    },
    "issueTypeId": {
        "id": 1,
        "name": "bug"
    },
    "parentId": null,
    "priorityId": {
        "id": 49,
        "name": "Low",
        "priorityId": 1,
        "projectId": {
            "id": 13,
            "name": "G: Turborohlik mobilní aplikace",
            "test_case_robust": true
        },
        "color": "#29a745",
        "position": 0
    },
    "creatorId": {
        "id": 13,
        "firstname": "Super+1",
        "lastname": "Admin ",
        "email": "test@juno.one",
        "avatar": "2",
        "deleted": false,
        "language": "en"
    },
    "statusId": {
        "id": 85,
        "name": "Backlog",
        "color": "#23be62",
        "deleted": false,
        "final": false
    },
    "assignedId": null,
    "lastUpdator": {
        "id": 13,
        "firstname": "Super+1",
        "lastname": "Admin ",
        "email": "test@juno.one",
        "avatar": "2",
        "deleted": false,
        "language": "en"
    },
    "private": false,
    "dueDate": null,
    "closed": false,
    "closed_at": null,
    "deleted": false,
    "deleted_at": null,
    "created_at": "2023-05-09T10:23:26Z",
    "updated_at": "2023-05-09T10:23:26Z",
    "estimated": 0,
    "estimated_from_children": 0,
    "spent": 0,
    "spent_from_children": 0,
    "parentType": null,
    "gitlabIssueId": null,
    "gitlabIssueIid": null,
    "scheduleId": null,
    "labels": [],
    "collaborators": [],
    "comments": [],
    "testExecutions": []
}

400 Bad Request

{
    "timestamp": "2022-02-16T17:11:34.422+00:00",
    "status": 400,
    "error": "Bad Request",
    "message": "The request is missing id parameter",
    "path": "/issues"
}

404 Not found

{
    "timestamp": "2022-02-16T17:11:34.422+00:00",
    "status": 404,
    "error": "Not Found",
    "message": "Issue with id 30 was not found.",
    "path": "/issues"
}

406 Insufficient permision

{
  "timestamp": "2022-02-16T17:11:34.422+00:00",
  "status": 406,
  "error": "Missing permission for action",
  "message": "You do not have a permission for this action",
  "path": "/issues"
}

500 Unknown error

{
    "timestamp": "2022-02-16T17:11:34.422+00:00",
    "status": 500,
    "error": "Unknown",
    "message": "There was a problem with your request. Please contact your administrator.",
    "path": "/issues"
}

Find Issue

Attempt to find an issue specified by issue id

Request

get /issues/{id}

Parameters

Parameter Type Required Notes
id Path yes defines id of the issue

Request body

This endpoint does not have a request body


curl --location 'https://example.juno.one/issues/13' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0QGp1bm8ub25lIiwidGVuYW50SUQiOiJkZXZlbG9wbWVudCIsImV4cCI6MTY4MjMzOTQwNn0.XWAuQmaKsv5fh60umfYO2gMwtXUjWLWsy6HbDt_fQXV6HPhgQhMkqmmzhWaCXsUP9h-dvKrQowLdqBqHHTYQAA' \
--header 'X-tenantId: example' \
--data ''
import requests

url = "https://example.juno.one/issues/13"

payload = ""
headers = {
  'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0QGp1bm8ub25lIiwidGVuYW50SUQiOiJkZXZlbG9wbWVudCIsImV4cCI6MTY4NDQ4MzYyNn0.cYdUo4oiHnkdAywSAb7EFus9PFg-2FYHZPj4gdMML-mKgUVZw9fewOo4QK6U3PqCzGWjFVksz8HULzyKMnV8AA',
  'X-tenantId': 'example'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
val client = OkHttpClient()
val request = Request.Builder()
  .url("https://example.juno.one/issues/13")
  .addHeader("Authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0QGp1bm8ub25lIiwidGVuYW50SUQiOiJkZXZlbG9wbWVudCIsImV4cCI6MTY4NDQ4MzYyNn0.cYdUo4oiHnkdAywSAb7EFus9PFg-2FYHZPj4gdMML-mKgUVZw9fewOo4QK6U3PqCzGWjFVksz8HULzyKMnV8AA")
  .addHeader("X-tenantId", "example")
  .build()
val response = client.newCall(request).execute()

Response

Successful response of issue find has the status 200 with following response body:

{
    "id": 13,
    "name": "asd",
    "description": null,
    "projectId": {
        "id": 42,
        "name": "ORP - Oxpointy",
        "test_case_robust": true
    },
    "issueTypeId": {
        "id": 1,
        "name": "bug"
    },
    "parentId": null,
    "priorityId": {
        "id": 49,
        "name": "Low",
        "priorityId": 1,
        "projectId": {
            "id": 13,
            "name": "G: Turborohlik mobilní aplikace",
            "test_case_robust": true
        },
        "color": "#29a745",
        "position": 0
    },
    "creatorId": {
        "id": 13,
        "firstname": "Super+1",
        "lastname": "Admin ",
        "email": "test@juno.one",
        "avatar": "2",
        "deleted": false,
        "language": "en"
    },
    "statusId": {
        "id": 85,
        "name": "Backlog",
        "color": "#23be62",
        "deleted": false,
        "final": false
    },
    "assignedId": null,
    "lastUpdator": {
        "id": 13,
        "firstname": "Super+1",
        "lastname": "Admin ",
        "email": "test@juno.one",
        "avatar": "2",
        "deleted": false,
        "language": "en"
    },
    "private": false,
    "dueDate": null,
    "closed": false,
    "closed_at": null,
    "deleted": true,
    "deleted_at": "2021-11-08T10:19:04Z",
    "created_at": "2021-11-08T10:18:42Z",
    "updated_at": "2023-04-18T12:03:05Z",
    "estimated": 0,
    "estimated_from_children": 0,
    "spent": 0,
    "spent_from_children": 0,
    "parentType": null,
    "gitlabIssueId": null,
    "gitlabIssueIid": null,
    "scheduleId": null,
    "labels": [],
    "collaborators": [],
    "comments": [],
    "testExecutions": []
}

404 Not found

{
    "timestamp": "2022-02-16T17:11:34.422+00:00",
    "status": 404,
    "error": "Not Found",
    "message": "Issue with id 1 was not found.",
    "path": "/issues/1"
}

406 Insufficient permision

{
  "timestamp": "2022-02-16T17:11:34.422+00:00",
  "status": 406,
  "error": "Missing permission for action",
  "message": "You do not have a permission for this action",
  "path": "/issues/1"
}

500 Unknown error

{
    "timestamp": "2022-02-16T17:11:34.422+00:00",
    "status": 500,
    "error": "Unknown",
    "message": "There was a problem with your request. Please contact your administrator.",
    "path": "/issues/1"
}

Update Issue

Attempt to update an issue specified by issue id

Request

put /issues/{id}

Parameters

Parameter Type Required Notes
id Path yes defines id of an issue

Request body

Attribute Type Required Notes
name string no
projectId integer no
issueTypeId integer no
statusId integer no
priorityId integer no
description string no
parentId integer no
parentType integer no
assignedId integer no
creatorId integer no
private boolean no
dueDate string no
estimated integer no
spent integer no
gitlabIssueId integer no
gitlabIssueIid integer no
scheduleId integer no

Request body example

{

    "name": "asd",
    "description": null,
    "projectId": {
        "id": 42

    },
    "issueTypeId": {
        "id": 1

    },
    "parentId": null,
    "priorityId": {
        "id": 49
    },
    "creatorId": {
        "id": 13
    },
    "statusId": {
        "id": 85

    },
    "assignedId": null,

    "private": false,
    "dueDate": null,


    "estimated": 0,

    "spent": 0,

    "parentType": null,
    "gitlabIssueId": null,
    "gitlabIssueIid": null,
    "scheduleId": null

}
               curl --location --request PUT 'https://example.juno.one/issues/13' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0QGp1bm8ub25lIiwidGVuYW50SUQiOiJkZXZlbG9wbWVudCIsImV4cCI6MTY4MjMzOTQwNn0.XWAuQmaKsv5fh60umfYO2gMwtXUjWLWsy6HbDt_fQXV6HPhgQhMkqmmzhWaCXsUP9h-dvKrQowLdqBqHHTYQAA' \
--header 'X-tenantId: example' \
--header 'Content-Type: application/json' \
--data '{

    "name": "asd",
    "description": null,
    "projectId": {
        "id": 42

    },
    "issueTypeId": {
        "id": 1

    },
    "parentId": null,
    "priorityId": {
        "id": 49
    },
    "creatorId": {
        "id": 13
    },
    "statusId": {
        "id": 85

    },
    "assignedId": null,

    "private": false,
    "dueDate": null,


    "estimated": 0,

    "spent": 0,

    "parentType": null,
    "gitlabIssueId": null,
    "gitlabIssueIid": null,
    "scheduleId": null

}'
import requests
import json

url = "https://example.juno.one/issues/13"

payload = json.dumps({
  "name": "asd",
  "description": None,
  "projectId": {
    "id": 42
  },
  "issueTypeId": {
    "id": 1
  },
  "parentId": None,
  "priorityId": {
    "id": 49
  },
  "creatorId": {
    "id": 13
  },
  "statusId": {
    "id": 85
  },
  "assignedId": None,
  "private": False,
  "dueDate": None,
  "estimated": 0,
  "spent": 0,
  "parentType": None,
  "gitlabIssueId": None,
  "gitlabIssueIid": None,
  "scheduleId": None
})
headers = {
  'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0QGp1bm8ub25lIiwidGVuYW50SUQiOiJkZXZlbG9wbWVudCIsImV4cCI6MTY4NDQ4MzYyNn0.cYdUo4oiHnkdAywSAb7EFus9PFg-2FYHZPj4gdMML-mKgUVZw9fewOo4QK6U3PqCzGWjFVksz8HULzyKMnV8AA',
  'X-tenantId': 'example',
  'Content-Type': 'application/json'
}

response = requests.request("PUT", url, headers=headers, data=payload)

print(response.text)
val client = OkHttpClient()
val mediaType = "application/json".toMediaType()
val body = "{\n\n    \"name\": \"asd\",\n    \"description\": null,\n    \"projectId\": {\n        \"id\": 42\n        \n    },\n    \"issueTypeId\": {\n        \"id\": 1\n        \n    },\n    \"parentId\": null,\n    \"priorityId\": {\n        \"id\": 49\n    },\n    \"creatorId\": {\n        \"id\": 13\n    },\n    \"statusId\": {\n        \"id\": 85\n\n    },\n    \"assignedId\": null,\n\n    \"private\": false,\n    \"dueDate\": null,\n\n\n    \"estimated\": 0,\n\n    \"spent\": 0,\n\n    \"parentType\": null,\n    \"gitlabIssueId\": null,\n    \"gitlabIssueIid\": null,\n    \"scheduleId\": null\n\n}".toRequestBody(mediaType)
val request = Request.Builder()
  .url("https://example.juno.one/issues/13")
  .put(body)
  .addHeader("Authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0QGp1bm8ub25lIiwidGVuYW50SUQiOiJkZXZlbG9wbWVudCIsImV4cCI6MTY4NDQ4MzYyNn0.cYdUo4oiHnkdAywSAb7EFus9PFg-2FYHZPj4gdMML-mKgUVZw9fewOo4QK6U3PqCzGWjFVksz8HULzyKMnV8AA")
  .addHeader("X-tenantId", "example")
  .addHeader("Content-Type", "application/json")
  .build()
val response = client.newCall(request).execute()

Response

Successful response of issue update has the status 200 with following response body:

{
    "id": 13,
    "name": "asd",
    "description": null,
    "projectId": {
        "id": 42,
        "name": "ORP - Oxpointy",
        "test_case_robust": true
    },
    "issueTypeId": {
        "id": 1,
        "name": "bug"
    },
    "parentId": null,
    "priorityId": {
        "id": 49,
        "name": "Low",
        "priorityId": 1,
        "projectId": {
            "id": 13,
            "name": "G: Turborohlik mobilní aplikace",
            "test_case_robust": true
        },
        "color": "#29a745",
        "position": 0
    },
    "creatorId": {
        "id": 13,
        "firstname": "Super+1",
        "lastname": "Admin ",
        "email": "test@juno.one",
        "avatar": "2",
        "deleted": false,
        "language": "en"
    },
    "statusId": {
        "id": 85,
        "name": "Backlog",
        "color": "#23be62",
        "deleted": false,
        "final": false
    },
    "assignedId": null,
    "lastUpdator": {
        "id": 13,
        "firstname": "Super+1",
        "lastname": "Admin ",
        "email": "test@juno.one",
        "avatar": "2",
        "deleted": false,
        "language": "en"
    },
    "private": false,
    "dueDate": null,
    "closed": false,
    "closed_at": null,
    "deleted": true,
    "deleted_at": "2021-11-08T10:19:04Z",
    "created_at": "2021-11-08T10:18:42Z",
    "updated_at": "2023-05-09T10:25:58Z",
    "estimated": 0,
    "estimated_from_children": 0,
    "spent": 0,
    "spent_from_children": 0,
    "parentType": null,
    "gitlabIssueId": null,
    "gitlabIssueIid": null,
    "scheduleId": null,
    "labels": [],
    "collaborators": [],
    "comments": [],
    "testExecutions": []
}

400 Bad Request

{
    "timestamp": "2022-02-16T17:11:34.422+00:00",
    "status": 400,
    "error": "Bad Request",
    "message": "The request is missing id parameter",
    "path": "/issues/1"
}

404 Not found

{
    "timestamp": "2022-02-16T17:11:34.422+00:00",
    "status": 404,
    "error": "Not Found",
    "message": "Issue with id 30 was not found.",
    "path": "/issues/1"
}

406 Insufficient permision

{
  "timestamp": "2022-02-16T17:11:34.422+00:00",
  "status": 406,
  "error": "Missing permission for action",
  "message": "You do not have a permission for this action",
  "path": "/issues/1"
}

500 Unknown error

{
    "timestamp": "2022-02-16T17:11:34.422+00:00",
    "status": 500,
    "error": "Unknown",
    "message": "There was a problem with your request. Please contact your administrator.",
    "path": "/issues/1"
}

Delete issue

Attempt to delete an issue specified by issue id

Request

delete /issues/delete/{id} 

Parameters

Parameter Type Required Notes
id Path yes defines id of an issue

Request body

This endpoint does not have a request body


curl --location --request DELETE 'https://example.juno.one/issues/delete/1' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0QGp1bm8ub25lIiwidGVuYW50SUQiOiJkZXZlbG9wbWVudCIsImV4cCI6MTY4MjMzOTQwNn0.XWAuQmaKsv5fh60umfYO2gMwtXUjWLWsy6HbDt_fQXV6HPhgQhMkqmmzhWaCXsUP9h-dvKrQowLdqBqHHTYQAA' \
--header 'X-TenantID: example'
import requests

url = "https://example.juno.one/issues/delete/1"

payload = {}
headers = {
  'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0QGp1bm8ub25lIiwidGVuYW50SUQiOiJkZXZlbG9wbWVudCIsImV4cCI6MTY4NDQ4MzYyNn0.cYdUo4oiHnkdAywSAb7EFus9PFg-2FYHZPj4gdMML-mKgUVZw9fewOo4QK6U3PqCzGWjFVksz8HULzyKMnV8AA',
  'X-TenantID': 'example'
}

response = requests.request("DELETE", url, headers=headers, data=payload)

print(response.text)
val client = OkHttpClient()
val mediaType = "text/plain".toMediaType()
val body = "".toRequestBody(mediaType)
val request = Request.Builder()
  .url("https://example.juno.one/issues/delete/1")
  .method("DELETE", body)
  .addHeader("Authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0QGp1bm8ub25lIiwidGVuYW50SUQiOiJkZXZlbG9wbWVudCIsImV4cCI6MTY4NDQ4MzYyNn0.cYdUo4oiHnkdAywSAb7EFus9PFg-2FYHZPj4gdMML-mKgUVZw9fewOo4QK6U3PqCzGWjFVksz8HULzyKMnV8AA")
  .addHeader("X-TenantID", "example")
  .build()
val response = client.newCall(request).execute()

Response

Successful response of issue delete has the status 200 with following response body:

{
    "id": 1,
    "name": "xxssxs",
    "description": "grgrrr",
    "projectId": {
        "id": 3,
        "name": "I: Nejlepší řeznictví",
        "test_case_robust": true
    },
    "issueTypeId": {
        "id": 1,
        "name": "bug"
    },
    "parentId": null,
    "priorityId": {
        "id": 12,
        "name": "Critical",
        "priorityId": 4,
        "projectId": {
            "id": 3,
            "name": "I: Nejlepší řeznictví",
            "test_case_robust": true
        },
        "color": "#DC3545",
        "position": 0
    },
    "creatorId": {
        "id": 9,
        "firstname": "Kája",
        "lastname": "Nováčková",
        "email": "daslfuihasdf@asdfkolhju.cz",
        "avatar": "6",
        "deleted": true,
        "language": "cs"
    },
    "statusId": {
        "id": 15,
        "name": "Backlog",
        "color": "#23be62",
        "deleted": false,
        "final": false
    },
    "assignedId": {
        "id": 4,
        "firstname": "Markét",
        "lastname": "Vopatová",
        "email": "marketa@pokus.cz",
        "avatar": "1",
        "deleted": false,
        "language": "cs"
    },
    "lastUpdator": {
        "id": 9,
        "firstname": "Kája",
        "lastname": "Nováčková",
        "email": "daslfuihasdf@asdfkolhju.cz",
        "avatar": "6",
        "deleted": true,
        "language": "cs"
    },
    "private": false,
    "dueDate": null,
    "closed": false,
    "closed_at": null,
    "deleted": true,
    "deleted_at": "2023-05-09T10:29:16Z",
    "created_at": "2021-06-27T17:23:03Z",
    "updated_at": "2023-05-09T10:29:16Z",
    "estimated": 0,
    "estimated_from_children": 0,
    "spent": 0,
    "spent_from_children": 0,
    "parentType": null,
    "gitlabIssueId": null,
    "gitlabIssueIid": null,
    "scheduleId": null,
    "labels": [],
    "collaborators": [],
    "comments": [
        {
            "id": 432,
            "userId": {
                "id": 13,
                "firstname": "Super+1",
                "lastname": "Admin ",
                "email": "test@juno.one",
                "avatar": "2",
                "deleted": false,
                "language": "en"
            },
            "description": "asedae\n\nasedxasedx\nsedx\nase\ndas\ned\nxas\nexd\nase\ndxas\nedx\nas\nxedased\nxas\ned\nxas\ned\nxas\nedxasxed\nas\ned\nase\nxdasexd",
            "created_at": "2022-09-07T09:25:04Z",
            "updated_at": "2023-05-09T10:29:16Z",
            "deleted": false,
            "deleted_at": null
        }
    ],
    "testExecutions": [
        {
            "id": 1,
            "testPlanId": {
                "id": 1,
                "name": "Kontinuální testování WEBu"
            },
            "testStepId": 499,
            "creatorId": {
                "id": 1,
                "firstname": "Admin",
                "lastname": "Test",
                "email": "asdfsdfg@sdfgiluh.vzxcv",
                "avatar": null,
                "deleted": false,
                "language": "cs"
            },
            "statusId": {
                "id": 1,
                "name": "No Run",
                "projectId": {
                    "id": 1,
                    "name": "Rohlik.cz - výchozí projektt",
                    "test_case_robust": true
                },
                "state": 0,
                "color": "#798295"
            },
            "actual_result": "",
            "duration": 0,
            "position": 1,
            "batchId": 1,
            "jiraIssueId": null,
            "jiraIssueUrl": null,
            "created_at": "2022-03-22T11:33:03Z",
            "updated_at": "2022-03-22T11:33:03Z",
            "related_issues": [
                {
                    "id": 1,
                    "issueTypeId": {
                        "id": 1,
                        "name": "bug"
                    },
                    "statusId": {
                        "id": 15,
                        "name": "Backlog",
                        "color": "#23be62",
                        "deleted": false,
                        "final": false
                    },
                    "closed": false,
                    "deleted": true
                }
            ],
            "related_jira_issues": [
                {
                    "id": 246,
                    "jiraIssueId": 14,
                    "jiraKeyId": "DNTPPJI-1",
                    "jiraLink": "https://domain.atlassian.net/browse/DNTPPJI-189",
                    "closed": false,
                    "closed_at": null,
                    "deleted": false,
                    "deleted_at": null,
                    "created_at": "2023-05-02T10:56:50.000+00:00",
                    "updated_at": "2023-05-02T10:56:50.000+00:00"
                }
            ]
        }
    ]
}

404 Not found

{
    "timestamp": "2022-02-16T17:11:34.422+00:00",
    "status": 404,
    "error": "Not Found",
    "message": "Issue with id 30 was not found.",
    "path": "/issues/delete/30"
}

406 Insufficient permision

{
  "timestamp": "2022-02-16T17:11:34.422+00:00",
  "status": 406,
  "error": "Missing permission for action",
  "message": "You do not have a permission for this action",
  "path": "/issues/delete/30"
}

500 Unknown error

{
            "timestamp": "2022-02-16T17:11:34.422+00:00",
            "status": 500,
            "error": "Unknown",
            "message": "There was a problem with your request. Please contact your administrator.",
            "path": "/issues/delete/30"
}

Undelete issue

Attempt to undelete an issue specified by an issue id

Request

delete /issues/undelete/{id} 

Parameters

Parameter Type Required Notes
id Path yes defines the id of an issue

Request body

This endpoint does not have a request body


curl --location --request DELETE 'https://example.juno.one/issues/undelete/1' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0QGp1bm8ub25lIiwidGVuYW50SUQiOiJkZXZlbG9wbWVudCIsImV4cCI6MTY4MjMzOTQwNn0.XWAuQmaKsv5fh60umfYO2gMwtXUjWLWsy6HbDt_fQXV6HPhgQhMkqmmzhWaCXsUP9h-dvKrQowLdqBqHHTYQAA' \
--header 'X-TenantID: example'
import requests

url = "https://example.juno.one/issues/undelete/1"

payload = {}
headers = {
  'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0QGp1bm8ub25lIiwidGVuYW50SUQiOiJkZXZlbG9wbWVudCIsImV4cCI6MTY4NDQ4MzYyNn0.cYdUo4oiHnkdAywSAb7EFus9PFg-2FYHZPj4gdMML-mKgUVZw9fewOo4QK6U3PqCzGWjFVksz8HULzyKMnV8AA',
  'X-TenantID': 'example'
}

response = requests.request("DELETE", url, headers=headers, data=payload)

print(response.text)
val client = OkHttpClient()
val mediaType = "text/plain".toMediaType()
val body = "".toRequestBody(mediaType)
val request = Request.Builder()
  .url("https://example.juno.one/issues/undelete/1")
  .method("DELETE", body)
  .addHeader("Authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0QGp1bm8ub25lIiwidGVuYW50SUQiOiJkZXZlbG9wbWVudCIsImV4cCI6MTY4NDQ4MzYyNn0.cYdUo4oiHnkdAywSAb7EFus9PFg-2FYHZPj4gdMML-mKgUVZw9fewOo4QK6U3PqCzGWjFVksz8HULzyKMnV8AA")
  .addHeader("X-TenantID", "example")
  .build()
val response = client.newCall(request).execute()

Response

Successful response of issue delete has the status 200 with following response body:

{
    "id": 1,
    "name": "xxssxs",
    "description": "grgrrr",
    "projectId": {
        "id": 3,
        "name": "I: Nejlepší řeznictví",
        "test_case_robust": true
    },
    "issueTypeId": {
        "id": 1,
        "name": "bug"
    },
    "parentId": null,
    "priorityId": {
        "id": 12,
        "name": "Critical",
        "priorityId": 4,
        "projectId": {
            "id": 3,
            "name": "I: Nejlepší řeznictví",
            "test_case_robust": true
        },
        "color": "#DC3545",
        "position": 0
    },
    "creatorId": {
        "id": 9,
        "firstname": "Kája",
        "lastname": "Nováčková",
        "email": "daslfuihasdf@asdfkolhju.cz",
        "avatar": "6",
        "deleted": true,
        "language": "cs"
    },
    "statusId": {
        "id": 15,
        "name": "Backlog",
        "color": "#23be62",
        "deleted": false,
        "final": false
    },
    "assignedId": {
        "id": 4,
        "firstname": "Markét",
        "lastname": "Vopatová",
        "email": "marketa@pokus.cz",
        "avatar": "1",
        "deleted": false,
        "language": "cs"
    },
    "lastUpdator": {
        "id": 9,
        "firstname": "Kája",
        "lastname": "Nováčková",
        "email": "daslfuihasdf@asdfkolhju.cz",
        "avatar": "6",
        "deleted": true,
        "language": "cs"
    },
    "private": false,
    "dueDate": null,
    "closed": false,
    "closed_at": null,
    "deleted": false,
    "deleted_at": null,
    "created_at": "2021-06-27T17:23:03Z",
    "updated_at": "2023-05-09T10:34:39Z",
    "estimated": 0,
    "estimated_from_children": 0,
    "spent": 0,
    "spent_from_children": 0,
    "parentType": null,
    "gitlabIssueId": null,
    "gitlabIssueIid": null,
    "scheduleId": null,
    "labels": [],
    "collaborators": [],
    "comments": [
        {
            "id": 432,
            "userId": {
                "id": 13,
                "firstname": "Super+1",
                "lastname": "Admin ",
                "email": "test@juno.one",
                "avatar": "2",
                "deleted": false,
                "language": "en"
            },
            "description": "asedae\n\nasedxasedx\nsedx\nase\ndas\ned\nxas\nexd\nase\ndxas\nedx\nas\nxedased\nxas\ned\nxas\ned\nxas\nedxasxed\nas\ned\nase\nxdasexd",
            "created_at": "2022-09-07T09:25:04Z",
            "updated_at": "2023-05-09T10:29:16Z",
            "deleted": false,
            "deleted_at": null
        }
    ],
    "testExecutions": [
        {
            "id": 1,
            "testPlanId": {
                "id": 1,
                "name": "Kontinuální testování WEBu"
            },
            "testStepId": 499,
            "creatorId": {
                "id": 1,
                "firstname": "Admin",
                "lastname": "Test",
                "email": "asdfsdfg@sdfgiluh.vzxcv",
                "avatar": null,
                "deleted": false,
                "language": "cs"
            },
            "statusId": {
                "id": 1,
                "name": "No Run",
                "projectId": {
                    "id": 1,
                    "name": "Rohlik.cz - výchozí projektt",
                    "test_case_robust": true
                },
                "state": 0,
                "color": "#798295"
            },
            "actual_result": "",
            "duration": 0,
            "position": 1,
            "batchId": 1,
            "jiraIssueId": null,
            "jiraIssueUrl": null,
            "created_at": "2022-03-22T11:33:03Z",
            "updated_at": "2022-03-22T11:33:03Z",
            "related_issues": [
                {
                    "id": 1,
                    "issueTypeId": {
                        "id": 1,
                        "name": "bug"
                    },
                    "statusId": {
                        "id": 15,
                        "name": "Backlog",
                        "color": "#23be62",
                        "deleted": false,
                        "final": false
                    },
                    "closed": false,
                    "deleted": false
                }
            ],
            "related_jira_issues": [
                {
                    "id": 246,
                    "jiraIssueId": 14,
                    "jiraKeyId": "DNTPPJI-1",
                    "jiraLink": "https://domain.atlassian.net/browse/DNTPPJI-189",
                    "closed": false,
                    "closed_at": null,
                    "deleted": false,
                    "deleted_at": null,
                    "created_at": "2023-05-02T10:56:50.000+00:00",
                    "updated_at": "2023-05-02T10:56:50.000+00:00"
                }
            ]
        }
    ]
}

404 Not found

{
    "timestamp": "2022-02-16T17:11:34.422+00:00",
    "status": 404,
    "error": "Not Found",
    "message": "Issue with id 30 was not found.",
    "path": "/issues/undelete/30"
}

406 Insufficient permision

{
  "timestamp": "2022-02-16T17:11:34.422+00:00",
  "status": 406,
  "error": "Missing permission for action",
  "message": "You do not have a permission for this action",
  "path": "/issues/undelete/30"
}

500 Unknown error

{
    "timestamp": "2022-02-16T17:11:34.422+00:00",
    "status": 500,
    "error": "Unknown",
    "message": "There was a problem with your request. Please contact your administrator.",
    "path": "/issues/undelete/30"
}

Bulk edit issues

Attempt to bulk edit issues.

Request

put /issues/bulk-edit

Request body

Attribute Type Required Notes
issuesIds integer yes defines issues ids
creatorId integer no defines issue creator id
assigneeId integer no defines id of the person the issue is assigned to
issueTypeId integer no defines issue type id
priorityId integer no defines priority id
reviewStatusId integer no defines review status id
nestedLabelIds integer no defines nested label id
collaboratorsIds integer no defines ids of collaborators
roadmapId integer no defines roadmap id

Request body example

{
  "issuesIds": [
    1
  ],
  "creatorId": {
    "creatorId": {
      "id": 0
    },
    "toEdit": false
  },
  "assigneeId": {
    "assigneeId": {
      "id": 0
    },
    "toEdit": false
  },
  "issueTypeId": {
    "issueTypeId": {
      "id": 0
    },
    "toEdit": false
  },
  "priorityId": {
    "priorityId": {
      "id": 1
    },
    "toEdit": false
  },
  "reviewStatusId": {
    "reviewStatusId": {
      "id": 1
    },
    "toEdit": false
  },
  "nestedLabelIds": {
    "nestedLabelIds": [
      1
    ],
    "toEdit": false
  },
  "collaboratorsIds": {
    "collaboratorIds": [
      1
    ],
    "toEdit": false
  },
  "roadmapId": {
    "roadmapId": {
      "id": {
        "id": 1
      }
    },
    "toEdit": false
  }
}
curl --location --request PUT 'https://example.juno.one/issues/bulk-edit' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0QGp1bm8ub25lIiwidGVuYW50SUQiOiJkZXZlbG9wbWVudCIsImV4cCI6MTY4MjMzOTQwNn0.XWAuQmaKsv5fh60umfYO2gMwtXUjWLWsy6HbDt_fQXV6HPhgQhMkqmmzhWaCXsUP9h-dvKrQowLdqBqHHTYQAA' \
--header 'x-tenantID: example' \
--header 'Content-Type: application/json' \
--data '{
"issueIds": [1],
"creatorId": {
    "creatorId": {
        "id": 0
    },
    "toEdit": false
},
"assigneeId":{
    "assigneeId": {
        "id": 0
    },
    "toEdit": false
},
"issueTypeId":{
    "issueTypeId": {
        "id": 0
    },
    "toEdit": false
},
"priorityId":{
    "priorityId": {
        "id": 0
    }
    ,
    "toEdit": false
},
"reviewStatusId":{
    "reviewStatusId": {
        "id": 0
    },
    "toEdit": false
},
"nestedLabelIds":{
    "nestedLabelIds": [],
    "toEdit": false
},
"collaboratorIds":{
    "collaboratorIds": [],
    "toEdit": false
},
"roadmapId":{
    "roadmapId": {
        "id": 0
    },
    "toEdit": false
}

}'
import requests
import json

url = "https://example.juno.one/issues/bulk-edit"

payload = json.dumps({
  "issueIds": [
    1
  ],
  "creatorId": {
    "creatorId": {
      "id": 0
    },
    "toEdit": False
  },
  "assigneeId": {
    "assigneeId": {
      "id": 0
    },
    "toEdit": False
  },
  "issueTypeId": {
    "issueTypeId": {
      "id": 0
    },
    "toEdit": False
  },
  "priorityId": {
    "priorityId": {
      "id": 0
    },
    "toEdit": False
  },
  "reviewStatusId": {
    "reviewStatusId": {
      "id": 0
    },
    "toEdit": False
  },
  "nestedLabelIds": {
    "nestedLabelIds": [],
    "toEdit": False
  },
  "collaboratorIds": {
    "collaboratorIds": [],
    "toEdit": False
  },
  "roadmapId": {
    "roadmapId": {
      "id": 0
    },
    "toEdit": False
  }
})
headers = {
  'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0QGp1bm8ub25lIiwidGVuYW50SUQiOiJkZXZlbG9wbWVudCIsImV4cCI6MTY4NDQ4MzYyNn0.cYdUo4oiHnkdAywSAb7EFus9PFg-2FYHZPj4gdMML-mKgUVZw9fewOo4QK6U3PqCzGWjFVksz8HULzyKMnV8AA',
  'x-tenantID': 'example',
  'Content-Type': 'application/json'
}

response = requests.request("PUT", url, headers=headers, data=payload)

print(response.text)
val client = OkHttpClient()
val mediaType = "application/json".toMediaType()
val body = "{\n\"issueIds\": [1],\n\"creatorId\": {\n    \"creatorId\": {\n        \"id\": 0\n    },\n    \"toEdit\": false\n},\n\"assigneeId\":{\n    \"assigneeId\": {\n        \"id\": 0\n    },\n    \"toEdit\": false\n},\n\"issueTypeId\":{\n    \"issueTypeId\": {\n        \"id\": 0\n    },\n    \"toEdit\": false\n},\n\"priorityId\":{\n    \"priorityId\": {\n        \"id\": 0\n    }\n    ,\n    \"toEdit\": false\n},\n\"reviewStatusId\":{\n    \"reviewStatusId\": {\n        \"id\": 0\n    },\n    \"toEdit\": false\n},\n\"nestedLabelIds\":{\n    \"nestedLabelIds\": [],\n    \"toEdit\": false\n},\n\"collaboratorIds\":{\n    \"collaboratorIds\": [],\n    \"toEdit\": false\n},\n\"roadmapId\":{\n    \"roadmapId\": {\n        \"id\": 0\n    },\n    \"toEdit\": false\n}\n\n}".toRequestBody(mediaType)
val request = Request.Builder()
  .url("https://example.juno.one/issues/bulk-edit")
  .put(body)
  .addHeader("Authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0QGp1bm8ub25lIiwidGVuYW50SUQiOiJkZXZlbG9wbWVudCIsImV4cCI6MTY4NDQ4MzYyNn0.cYdUo4oiHnkdAywSAb7EFus9PFg-2FYHZPj4gdMML-mKgUVZw9fewOo4QK6U3PqCzGWjFVksz8HULzyKMnV8AA")
  .addHeader("x-tenantID", "example")
  .addHeader("Content-Type", "application/json")
  .build()
val response = client.newCall(request).execute()

Response

Successful response of issue bulk edit has the status 200 with following response body:

[
    {
        "id": 1,
        "name": "xxssxs",
        "description": "grgrrr",
        "projectId": {
            "id": 3,
            "name": "I: Nejlepší řeznictví",
            "test_case_robust": true
        },
        "issueTypeId": {
            "id": 1,
            "name": "bug"
        },
        "parentId": null,
        "priorityId": {
            "id": 12,
            "name": "Critical",
            "priorityId": 4,
            "projectId": {
                "id": 3,
                "name": "I: Nejlepší řeznictví",
                "test_case_robust": true
            },
            "color": "#DC3545",
            "position": 0
        },
        "creatorId": {
            "id": 9,
            "firstname": "Kája",
            "lastname": "Nováčková",
            "email": "daslfuihasdf@asdfkolhju.cz",
            "avatar": "6",
            "deleted": true,
            "language": "cs"
        },
        "statusId": {
            "id": 15,
            "name": "Backlog",
            "color": "#23be62",
            "deleted": false,
            "final": false
        },
        "assignedId": {
            "id": 4,
            "firstname": "Markét",
            "lastname": "Vopatová",
            "email": "marketa@pokus.cz",
            "avatar": "1",
            "deleted": false,
            "language": "cs"
        },
        "lastUpdator": {
            "id": 9,
            "firstname": "Kája",
            "lastname": "Nováčková",
            "email": "daslfuihasdf@asdfkolhju.cz",
            "avatar": "6",
            "deleted": true,
            "language": "cs"
        },
        "private": false,
        "dueDate": null,
        "closed": false,
        "closed_at": null,
        "deleted": false,
        "deleted_at": null,
        "created_at": "2021-06-27T17:23:03Z",
        "updated_at": "2023-05-09T10:37:15Z",
        "estimated": 0,
        "estimated_from_children": 0,
        "spent": 0,
        "spent_from_children": 0,
        "parentType": null,
        "gitlabIssueId": null,
        "gitlabIssueIid": null,
        "scheduleId": null,
        "labels": [],
        "collaborators": [],
        "comments": [
            {
                "id": 432,
                "userId": {
                    "id": 13,
                    "firstname": "Super+1",
                    "lastname": "Admin ",
                    "email": "test@juno.one",
                    "avatar": "2",
                    "deleted": false,
                    "language": "en"
                },
                "description": "asedae\n\nasedxasedx\nsedx\nase\ndas\ned\nxas\nexd\nase\ndxas\nedx\nas\nxedased\nxas\ned\nxas\ned\nxas\nedxasxed\nas\ned\nase\nxdasexd",
                "created_at": "2022-09-07T09:25:04Z",
                "updated_at": "2023-05-09T10:29:16Z",
                "deleted": false,
                "deleted_at": null
            }
        ],
        "testExecutions": [
            {
                "id": 1,
                "testPlanId": {
                    "id": 1,
                    "name": "Kontinuální testování WEBu"
                },
                "testStepId": 499,
                "creatorId": {
                    "id": 1,
                    "firstname": "Admin",
                    "lastname": "Test",
                    "email": "asdfsdfg@sdfgiluh.vzxcv",
                    "avatar": null,
                    "deleted": false,
                    "language": "cs"
                },
                "statusId": {
                    "id": 1,
                    "name": "No Run",
                    "projectId": {
                        "id": 1,
                        "name": "Rohlik.cz - výchozí projektt",
                        "test_case_robust": true
                    },
                    "state": 0,
                    "color": "#798295"
                },
                "actual_result": "",
                "duration": 0,
                "position": 1,
                "batchId": 1,
                "jiraIssueId": null,
                "jiraIssueUrl": null,
                "created_at": "2022-03-22T11:33:03Z",
                "updated_at": "2022-03-22T11:33:03Z",
                "related_issues": [
                    {
                        "id": 1,
                        "issueTypeId": {
                            "id": 1,
                            "name": "bug"
                        },
                        "statusId": {
                            "id": 15,
                            "name": "Backlog",
                            "color": "#23be62",
                            "deleted": false,
                            "final": false
                        },
                        "closed": false,
                        "deleted": false
                    }
                ],
                "related_jira_issues": [
                    {
                        "id": 246,
                        "jiraIssueId": 14,
                        "jiraKeyId": "DNTPPJI-1",
                        "jiraLink": "https://domain.atlassian.net/browse/DNTPPJI-189",
                        "closed": false,
                        "closed_at": null,
                        "deleted": false,
                        "deleted_at": null,
                        "created_at": "2023-05-02T10:56:50.000+00:00",
                        "updated_at": "2023-05-02T10:56:50.000+00:00"
                    }
                ]
            }
        ]
    }
]

400 Bad Request

{
    "timestamp": "2022-02-16T17:11:34.422+00:00",
    "status": 400,
    "error": "Bad Request",
    "message": "The request is missing id parameter",
    "path": "/issues/bulk-edit"
}

404 Not found

{
    "timestamp": "2022-02-16T17:11:34.422+00:00",
    "status": 404,
    "error": "Not Found",
    "message": "Issue with id 30 was not found.",
    "path": "/issues/bulk-edit"
}

406 Insufficient permision

{
    "timestamp": "2022-02-16T17:11:34.422+00:00",
    "status": 406,
    "error": "Missing permission for action",
    "message": "You do not have a permission for this action",
    "path": "/issues/bulk-edit"
}

500 Unknown error

{
    "timestamp": "2022-02-16T17:11:34.422+00:00",
    "status": 500,
    "error": "Unknown",
    "message": "There was a problem with your request. Please contact your administrator.",
    "path": "/issues/bulk-edit"
}