Uploading Planning Data
Upload Example Using cURL
In the following, we provide an example of how to push your Planning data to Logilica for storage and built-in analytics. The following depicts all possible fields that can be included in an upload of a ticket or issue, both the mandatory and optional fields.
The cURL POST command is below. Note, that the POST command includes the example API token lgca_UeRxFs_3RYRJEJtdYp7j7Wa6DirG5NjiYslsb
and the example workspace myworkspace
. The command URL also includes a placeholder for the projectID to associate the uploaded issues with. This projectID is obtained from the pm/projects/create
endpoint.
curl --location --request POST \
'https://logilica.io/api/import/v1/pm/<projectID>/issues/create' \
--header 'X-lgca-token: lgca_UeRxFs_3RYRJEJtdYp7j7Wa6DirG5NjiYslsb' \
--header 'x-lgca-domain: myworkspace' \
--header 'Content-Type: application/json' \
--data-raw '[{
"id": "ABC-123",
"origin": "JIRA",
"createdAt": 1689207410,
"updatedAt": 1689309835,
"creator": {
"name": "John Doe",
"email": "[email protected]",
"accountId": "johnDoe",
"lastActivity": 1701436893
},
"reporter": {
"name": "Jane Doe",
"email": "[email protected]",
"accountId": "janeDoe",
"lastActivity": 1699536093
},
"assignedAt": 1689207463,
"assignee": {
"name": "Sally Smith",
"email": "[email protected]",
"accountId": "sallySmith",
"lastActivity": 1701091293
},
"inProgressAt": 1689207487,
"resolvedAt": 1689309835,
"resolver": {
"name": "Sally Smith",
"email": "[email protected]",
"accountId": "sallySmith",
"lastActivity": 1701436893
},
"resolution": "Fix",
"type": "Task",
"status": "Completed",
"statusCategory": "Done",
"summary": "Revive user API endpoints in each service.",
"description": "Go into each service and enable the API endpoints that both upload and import user data.",
"url": "https://myworkspacename.atlassian.net/browse/ABC-123",
"labels": ["backend"],
"sprintKeys": ["456"],
"priority": "Low",
"storyPointEstimate": 1,
"parentIssue": "ABC-789",
"events": [
{
"type": "PM_ISSUE_CREATED",
"author": {
"name": "John Doe",
"email": "[email protected]",
"accountId": "johnDoe",
"lastActivity": 1701436893
},
"createdAt": 1689207410,
"to": ""
},
{
"type": "PM_ISSUE_ASSIGNED",
"author": {
"name": "John Doe",
"email": "[email protected]",
"accountId": "johnDoe",
"lastActivity": 1701436893
},
"createdAt": 1689207463,
"to": {
"name": "Sally Smith",
"email": "[email protected]",
"accountId": "sallySmith",
"lastActivity": 1701091293
}
},
{
"type": "PM_ISSUE_IN_PROGRESS",
"author": {
"name": "Sally Smith",
"email": "[email protected]",
"accountId": "sallySmith",
"lastActivity": 1701091293
},
"createdAt": 1689207487,
"from": "To Do",
"to": "In Progress"
},
{
"type": "PM_ISSUE_RESOLVED",
"author": {
"name": "Sally Smith",
"email": "[email protected]",
"accountId": "sallySmith",
"lastActivity": 1701091293
},
"createdAt": 1689309835,
"from": "In Progress",
"to": "Done"
}
]
}]'
Method of Importing Planning Data
To ensure the accuracy of data in Logilica, planning data should be imported in the following order:
Create a project and fetch the ID returned to you. You use this ID in subsequent calls to the Logilica Import API for Planning Data.
Import or update sprints
Import or update issues
Data is displayed in Logilica once issues have been imported.
API Schema for Importing Planning Data
Create a new project
Add a new project
The URL by which this project may be reached in a browser
For Jira style projects, this maps the the issue prefix, eg in "JIRA-123", key
would be "JIRA". For gitlab projects, this is the ID of the project.
^[0-9a-zA-z/\-_.]{1,256}$
The name of organization / group to which the project belongs. orgName
combined with key
forms a unique identifier for the project.
^[0-9a-zA-z/\-_.]{1,256}$
POST /api/import/v1/pm/projects/create HTTP/1.1
Host: logilica.io
Content-Type: application/json
Accept: */*
Content-Length: 59
{
"URL": "https://example.com",
"key": "text",
"orgName": "text"
}
{
"id": "text"
}
Add or Update Sprints
Add or update a list of sprints
unique (per board) ID of sprint
name of sprint
current state, e.g. "closed" or "in progress"
sprint goal or description
UNIX timestamp for when sprint started
UNIX timestamp for when sprint is set to ended
UNIX timestamp for when the sprint was finished
POST /api/import/v1/pm/{projectID}/sprints HTTP/1.1
Host: logilica.io
Content-Type: application/json
Accept: */*
Content-Length: 100
[
{
"id": "text",
"name": "text",
"state": "text",
"goal": "text",
"startedAt": 1,
"endedAt": 1,
"completedAt": 1
}
]
No content
Add or Update Issues
Create or update an issue
unique global ID of issue
tool where the issue is from (e.g. Jira)
UNIX timestamp of the last update to the issue
UNIX timestamp of when issue was created
UNIX timestamp of when issue was last assigned
UNIX timestamp of when issue was moved to In Progress
UNIX timestamp of when issue was moved to Done
The kind of resolution, e.g. "Fix", "Ignored"
Issue type (Bug, Task, Subtask, Story, Epic). Subtasks and Epics are treated specially.
Issue status
Issue status category (one of "To Do", "In Progress", "Done")
Issue title
Issue description
URL to issue
Any labels applied to issue
IDs of sprints the issue belongs to
Priority of issue
Story point estimate
When the issue is part of an epic, the ID of that epic
POST /api/import/v1/pm/{projectID}/issues/create HTTP/1.1
Host: logilica.io
Content-Type: application/json
Accept: */*
Content-Length: 882
[
{
"id": "text",
"origin": "text",
"updatedAt": 1,
"createdAt": 1,
"creator": {
"name": "text",
"email": "[email protected]",
"accountId": "text",
"lastActivity": 1
},
"reporter": {
"name": "text",
"email": "[email protected]",
"accountId": "text",
"lastActivity": 1
},
"assignedAt": 1,
"assignee": {
"name": "text",
"email": "[email protected]",
"accountId": "text",
"lastActivity": 1
},
"inProgressAt": 1,
"resolvedAt": 1,
"resolver": {
"name": "text",
"email": "[email protected]",
"accountId": "text",
"lastActivity": 1
},
"resolution": "text",
"type": "text",
"status": "text",
"statusCategory": "text",
"summary": "text",
"description": "text",
"url": "https://example.com",
"labels": [
"text"
],
"sprintKeys": [
"text"
],
"priority": "text",
"storyPointEstimate": 1,
"parentIssue": "text",
"events": [
{
"createdAt": 1,
"sprintID": "text",
"author": {
"name": "text",
"email": "[email protected]",
"accountId": "text",
"lastActivity": 1
},
"type": "PM_ISSUE_CREATED",
"from": "text",
"to": "text"
}
]
}
]
{
"warnings": {
"message": "text",
"ids": [
"text"
]
}
}
Last updated