Taiga webhooks notify changes on milestones, user stories, tasks, issues and wiki pages sending POST requests signed with a private key, to the configured urls.
Each project can have any number of webhooks configured on it.
To activate webhooks you must configure taiga-back local settings file ~/taiga-back/settings/local.py
adding the WEBHOOKS_ENABLED = True
.
Moreover there is another setting to disallow webhooks access to reserved and private
address, see [IANA IPv4 Special-Purpose Address](https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml) and [IANA IPv6 Special-Purpose Address](https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml). To activate add also to your settings file WEBHOOKS_BLOCK_PRIVATE_ADDRESS = True
.
The request made by the Taiga webhooks can be synchronous or asynchronous (it depends on the Taiga configuration, for example tree.taiga.io is async). In asynchronous mode those requests to your configured url can have a delay of some seconds.
All request send to the URL are POST with header Content-Type
equals to
application/json
and a signature of the message in the
X-TAIGA-WEBHOOK-SIGNATURE
HTTP header.
The body of the POST request is just a JSON with the corresponding payload.
Every request have a header called X-TAIGA-WEBHOOK-SIGNATURE
that contains
the signature generated with
[HMAC](http://en.wikipedia.org/wiki/Hash-based_message_authentication_code)
using sha1 hash.
An example of signature verification in python:
def verify_signature(key, data, signature):
mac = hmac.new(key.encode("utf-8"), msg=data, digestmod=hashlib.sha1)
return mac.hexdigest() == signature
in php:
<?php
function verify_signature($key, $data, $signature) {
return hash_hmac("sha1", $data , $key) == $signature
}
?>
The sended request depends on the object type and the kind of change, all payloads have the same base structure
{
"action": "",
"type": "",
"by": {}
"date": ""
"data": {},
"change": {}
}
-
The
action
field contains notification type with values: "create", "delete", "change" or "test". -
The
type
field contains the type of object with values: "milestone", "userstory", "task", "issue", "wikipage" or "test". -
The
by
field contains the information of the user thast generate the notification. -
The
date
field contains the date and time of thwe current notification. -
The
data
field contains the current object information. -
The
change
field (only present on change notifications) contains the information about the changes made.
{
"type": "test",
"by": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"date": "2016-04-12T12:00:56.335Z",
"action": "test",
"data": {
"test": "test"
}
}
{
"type": "milestone",
"by": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"date": "2016-04-12T12:08:18.309Z",
"action": "create",
"data": {
"permalink": "http://localhost:9001/project/project-0/taskboard/sprint-4",
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"id": 13,
"name": "Sprint 4",
"slug": "sprint-4",
"estimated_start": "2016-03-02",
"estimated_finish": "2016-03-16",
"created_date": "2016-04-12T12:08:18+0000",
"modified_date": "2016-04-12T12:08:18+0000",
"closed": false,
"disponibility": 0.0
}
}
{
"type": "milestone",
"by": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"date": "2016-04-12T12:13:47.873Z",
"action": "delete",
"data": {
"permalink": "http://localhost:9001/project/project-0/taskboard/sprint-4",
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"id": 13,
"name": "Sprint 4",
"slug": "sprint-4",
"estimated_start": "2016-03-02",
"estimated_finish": "2016-03-24",
"created_date": "2016-04-12T12:08:18+0000",
"modified_date": "2016-04-12T12:09:42+0000",
"closed": false,
"disponibility": 0.0
}
}
{
"type": "milestone",
"by": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"action": "change",
"data": {
"permalink": "http://localhost:9001/project/project-0/taskboard/sprint-4",
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"id": 13,
"name": "Sprint 4",
"slug": "sprint-4",
"estimated_start": "2016-03-02",
"estimated_finish": "2016-03-24",
"created_date": "2016-04-12T12:08:18+0000",
"modified_date": "2016-04-12T12:09:42+0000",
"closed": false,
"disponibility": 0.0
},
"date": "2016-04-12T12:09:42.527Z",
"change": {
"diff": {
"estimated_start": {
"to": "2016-03-02",
"from": "2016-03-02"
},
"estimated_finish": {
"to": "2016-03-24",
"from": "2016-03-16"
}
},
"comment": "",
"comment_html": "",
"delete_comment_date": null
}
}
{
"type": "userstory",
"date": "2016-04-12T12:17:20.486Z",
"action": "create",
"data": {
"custom_attributes_values": {},
"watchers": [],
"permalink": "http://localhost:9001/project/project-0/us/72",
"tags": [
"dolorum",
"adipisci",
"ipsa"
],
"external_reference": null,
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"assigned_to": null,
"points": [
{
"role": "UX",
"name": "5",
"value": 5.0
},
{
"role": "Design",
"name": "1",
"value": 1.0
},
{
"role": "Front",
"name": "3",
"value": 3.0
},
{
"role": "Back",
"name": "40",
"value": 40.0
}
],
"status": {
"id": 1,
"name": "New",
"slug": "new",
"color": "#999999",
"is_closed": false,
"is_archived": false
},
"milestone": null,
"id": 139,
"is_blocked": true,
"blocked_note": "Blocked test message",
"ref": 72,
"is_closed": false,
"created_date": "2016-04-12T12:17:19+0000",
"modified_date": "2016-04-12T12:17:19+0000",
"finish_date": null,
"subject": "test user story 5",
"description": "this is a test description",
"client_requirement": false,
"team_requirement": true,
"generated_from_issue": null,
"tribe_gig": null
},
"by": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
}
}
{
"type": "userstory",
"date": "2016-04-12T12:19:19.433Z",
"action": "delete",
"data": {
"custom_attributes_values": null,
"watchers": [],
"permalink": "http://localhost:9001/project/project-0/us/72",
"tags": [
"dolorum",
"adipisci",
"ipsa"
],
"external_reference": null,
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"assigned_to": null,
"points": [],
"status": {
"id": 1,
"name": "New",
"slug": "new",
"color": "#999999",
"is_closed": false,
"is_archived": false
},
"milestone": {
"permalink": "http://localhost:9001/project/project-0/taskboard/sprint-2016-2-16",
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 4,
"permalink": "http://localhost:9001/profile/admin",
"username": "admin",
"full_name": "Administrator",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"id": 1,
"name": "Sprint 2016-2-16",
"slug": "sprint-2016-2-16",
"estimated_start": "2016-02-16",
"estimated_finish": "2016-03-02",
"created_date": "2016-02-16T13:15:03+0000",
"modified_date": "2016-04-11T13:15:03+0000",
"closed": false,
"disponibility": 0.0
},
"id": 139,
"is_blocked": true,
"blocked_note": "Blocked test message",
"ref": 72,
"is_closed": false,
"created_date": "2016-04-12T12:17:19+0000",
"modified_date": "2016-04-12T12:18:19+0000",
"finish_date": null,
"subject": "test user story 5",
"description": "this is a test description",
"client_requirement": false,
"team_requirement": true,
"generated_from_issue": null,
"tribe_gig": null
},
"by": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
}
}
{
"type": "userstory",
"date": "2016-04-12T12:18:19.685Z",
"change": {
"diff": {
"milestone": {
"to": "Sprint 2016-2-16",
"from": null
}
},
"comment": "",
"comment_html": "",
"delete_comment_date": null
},
"action": "change",
"data": {
"custom_attributes_values": {},
"watchers": [],
"permalink": "http://localhost:9001/project/project-0/us/72",
"tags": [
"dolorum",
"adipisci",
"ipsa"
],
"external_reference": null,
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"assigned_to": null,
"points": [
{
"role": "UX",
"name": "5",
"value": 5.0
},
{
"role": "Design",
"name": "1",
"value": 1.0
},
{
"role": "Front",
"name": "3",
"value": 3.0
},
{
"role": "Back",
"name": "40",
"value": 40.0
}
],
"status": {
"id": 1,
"name": "New",
"slug": "new",
"color": "#999999",
"is_closed": false,
"is_archived": false
},
"milestone": {
"permalink": "http://localhost:9001/project/project-0/taskboard/sprint-2016-2-16",
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 4,
"permalink": "http://localhost:9001/profile/admin",
"username": "admin",
"full_name": "Administrator",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"id": 1,
"name": "Sprint 2016-2-16",
"slug": "sprint-2016-2-16",
"estimated_start": "2016-02-16",
"estimated_finish": "2016-03-02",
"created_date": "2016-02-16T13:15:03+0000",
"modified_date": "2016-04-11T13:15:03+0000",
"closed": false,
"disponibility": 0.0
},
"id": 139,
"is_blocked": true,
"blocked_note": "Blocked test message",
"ref": 72,
"is_closed": false,
"created_date": "2016-04-12T12:17:19+0000",
"modified_date": "2016-04-12T12:18:19+0000",
"finish_date": null,
"subject": "test user story 5",
"description": "this is a test description",
"client_requirement": false,
"team_requirement": true,
"generated_from_issue": null,
"tribe_gig": null
},
"by": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
}
}
{
"type": "task",
"date": "2016-04-12T12:20:54.758Z",
"action": "create",
"data": {
"custom_attributes_values": {},
"watchers": [],
"permalink": "http://localhost:9001/project/project-0/task/73",
"tags": [
"dolorem"
],
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"assigned_to": {
"id": 10,
"permalink": "http://localhost:9001/profile/user5",
"username": "user5",
"full_name": "Alicia Flores",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"status": {
"id": 2,
"name": "In progress",
"slug": "in-progress",
"color": "#ff9900",
"is_closed": false
},
"user_story": {
"custom_attributes_values": {
"eius vero facere": "repellat"
},
"watchers": [
1
],
"permalink": "http://localhost:9001/project/project-0/us/6",
"tags": [
"quam",
"nulla"
],
"external_reference": null,
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 8,
"permalink": "http://localhost:9001/profile/user3",
"username": "user3",
"full_name": "Concepcion Garrido",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"assigned_to": {
"id": 13,
"permalink": "http://localhost:9001/profile/user8",
"username": "user8",
"full_name": "Lourdes Aguilar",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"points": [
{
"role": "UX",
"name": "8",
"value": 8.0
},
{
"role": "Design",
"name": "10",
"value": 10.0
},
{
"role": "Front",
"name": "0",
"value": 0.0
},
{
"role": "Back",
"name": "40",
"value": 40.0
}
],
"status": {
"id": 4,
"name": "Ready for test",
"slug": "ready-for-test",
"color": "#fcc000",
"is_closed": false,
"is_archived": false
},
"milestone": {
"permalink": "http://localhost:9001/project/project-0/taskboard/sprint-2016-2-16",
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 4,
"permalink": "http://localhost:9001/profile/admin",
"username": "admin",
"full_name": "Administrator",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"id": 1,
"name": "Sprint 2016-2-16",
"slug": "sprint-2016-2-16",
"estimated_start": "2016-02-16",
"estimated_finish": "2016-03-02",
"created_date": "2016-02-16T13:15:03+0000",
"modified_date": "2016-04-11T13:15:03+0000",
"closed": false,
"disponibility": 0.0
},
"id": 2,
"is_blocked": false,
"blocked_note": "",
"ref": 6,
"is_closed": false,
"created_date": "2016-04-11T13:15:04+0000",
"modified_date": "2016-04-11T13:15:04+0000",
"finish_date": null,
"subject": "Implement the form",
"description": "Voluptas odio a minus ipsam blanditiis rem, blanditiis...",
"client_requirement": false,
"team_requirement": false,
"generated_from_issue": null,
"tribe_gig": null
},
"milestone": {
"permalink": "http://localhost:9001/project/project-0/taskboard/sprint-2016-2-16",
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 4,
"permalink": "http://localhost:9001/profile/admin",
"username": "admin",
"full_name": "Administrator",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"id": 1,
"name": "Sprint 2016-2-16",
"slug": "sprint-2016-2-16",
"estimated_start": "2016-02-16",
"estimated_finish": "2016-03-02",
"created_date": "2016-02-16T13:15:03+0000",
"modified_date": "2016-04-11T13:15:03+0000",
"closed": false,
"disponibility": 0.0
},
"id": 163,
"is_blocked": true,
"blocked_note": "blocked note message",
"ref": 73,
"created_date": "2016-04-12T12:20:54+0000",
"modified_date": "2016-04-12T12:20:54+0000",
"finished_date": null,
"subject": "test task",
"us_order": 1,
"taskboard_order": 1,
"description": "Task description example",
"is_iocaine": true,
"external_reference": null
},
"by": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
}
}
{
"data": {
"custom_attributes_values": null,
"watchers": [],
"permalink": "http://localhost:9001/project/project-0/task/73",
"tags": [
"dolorem"
],
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"assigned_to": {
"id": 4,
"permalink": "http://localhost:9001/profile/admin",
"username": "admin",
"full_name": "Administrator",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"status": {
"id": 2,
"name": "In progress",
"slug": "in-progress",
"color": "#ff9900",
"is_closed": false
},
"user_story": {
"custom_attributes_values": {
"eius vero facere": "repellat"
},
"watchers": [
1
],
"permalink": "http://localhost:9001/project/project-0/us/6",
"tags": [
"quam",
"nulla"
],
"external_reference": null,
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 8,
"permalink": "http://localhost:9001/profile/user3",
"username": "user3",
"full_name": "Concepcion Garrido",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"assigned_to": {
"id": 13,
"permalink": "http://localhost:9001/profile/user8",
"username": "user8",
"full_name": "Lourdes Aguilar",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"points": [
{
"role": "UX",
"name": "8",
"value": 8.0
},
{
"role": "Design",
"name": "10",
"value": 10.0
},
{
"role": "Front",
"name": "0",
"value": 0.0
},
{
"role": "Back",
"name": "40",
"value": 40.0
}
],
"status": {
"id": 4,
"name": "Ready for test",
"slug": "ready-for-test",
"color": "#fcc000",
"is_closed": false,
"is_archived": false
},
"milestone": {
"permalink": "http://localhost:9001/project/project-0/taskboard/sprint-2016-2-16",
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 4,
"permalink": "http://localhost:9001/profile/admin",
"username": "admin",
"full_name": "Administrator",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"id": 1,
"name": "Sprint 2016-2-16",
"slug": "sprint-2016-2-16",
"estimated_start": "2016-02-16",
"estimated_finish": "2016-03-02",
"created_date": "2016-02-16T13:15:03+0000",
"modified_date": "2016-04-11T13:15:03+0000",
"closed": false,
"disponibility": 0.0
},
"id": 2,
"is_blocked": false,
"blocked_note": "",
"ref": 6,
"is_closed": false,
"created_date": "2016-04-11T13:15:04+0000",
"modified_date": "2016-04-11T13:15:04+0000",
"finish_date": null,
"subject": "Implement the form",
"description": "Voluptas odio a minus ipsam blanditiis rem, blanditiis corrupti odio expedita nihil consequuntur possimus sequi, quia eos obcaecati hic molestias quam similique ratione neque, ex eveniet hic ipsam minus animi cumque beatae deserunt fugit eos, mollitia aut veritatis quisquam delectus ipsum ex in?",
"client_requirement": false,
"team_requirement": false,
"generated_from_issue": null,
"tribe_gig": null
},
"milestone": {
"permalink": "http://localhost:9001/project/project-0/taskboard/sprint-2016-2-16",
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 4,
"permalink": "http://localhost:9001/profile/admin",
"username": "admin",
"full_name": "Administrator",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"id": 1,
"name": "Sprint 2016-2-16",
"slug": "sprint-2016-2-16",
"estimated_start": "2016-02-16",
"estimated_finish": "2016-03-02",
"created_date": "2016-02-16T13:15:03+0000",
"modified_date": "2016-04-11T13:15:03+0000",
"closed": false,
"disponibility": 0.0
},
"id": 163,
"is_blocked": true,
"blocked_note": "blocked note message",
"ref": 73,
"created_date": "2016-04-12T12:20:54+0000",
"modified_date": "2016-04-12T12:21:40+0000",
"finished_date": null,
"subject": "test task",
"us_order": 1,
"taskboard_order": 1,
"description": "Task description example",
"is_iocaine": true,
"external_reference": null
},
"type": "task",
"action": "delete",
"date": "2016-04-12T12:28:18.750Z",
"by": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
}
}
{
"action": "change",
"by": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"type": "task",
"data": {
"custom_attributes_values": {},
"watchers": [],
"permalink": "http://localhost:9001/project/project-0/task/73",
"tags": [
"dolorem"
],
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"assigned_to": {
"id": 4,
"permalink": "http://localhost:9001/profile/admin",
"username": "admin",
"full_name": "Administrator",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"status": {
"id": 2,
"name": "In progress",
"slug": "in-progress",
"color": "#ff9900",
"is_closed": false
},
"user_story": {
"custom_attributes_values": {
"eius vero facere": "repellat"
},
"watchers": [
1
],
"permalink": "http://localhost:9001/project/project-0/us/6",
"tags": [
"quam",
"nulla"
],
"external_reference": null,
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 8,
"permalink": "http://localhost:9001/profile/user3",
"username": "user3",
"full_name": "Concepcion Garrido",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"assigned_to": {
"id": 13,
"permalink": "http://localhost:9001/profile/user8",
"username": "user8",
"full_name": "Lourdes Aguilar",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"points": [
{
"role": "UX",
"name": "8",
"value": 8.0
},
{
"role": "Design",
"name": "10",
"value": 10.0
},
{
"role": "Front",
"name": "0",
"value": 0.0
},
{
"role": "Back",
"name": "40",
"value": 40.0
}
],
"status": {
"id": 4,
"name": "Ready for test",
"slug": "ready-for-test",
"color": "#fcc000",
"is_closed": false,
"is_archived": false
},
"milestone": {
"permalink": "http://localhost:9001/project/project-0/taskboard/sprint-2016-2-16",
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 4,
"permalink": "http://localhost:9001/profile/admin",
"username": "admin",
"full_name": "Administrator",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"id": 1,
"name": "Sprint 2016-2-16",
"slug": "sprint-2016-2-16",
"estimated_start": "2016-02-16",
"estimated_finish": "2016-03-02",
"created_date": "2016-02-16T13:15:03+0000",
"modified_date": "2016-04-11T13:15:03+0000",
"closed": false,
"disponibility": 0.0
},
"id": 2,
"is_blocked": false,
"blocked_note": "",
"ref": 6,
"is_closed": false,
"created_date": "2016-04-11T13:15:04+0000",
"modified_date": "2016-04-11T13:15:04+0000",
"finish_date": null,
"subject": "Implement the form",
"description": "Voluptas odio a minus ipsam blanditiis rem, blanditiis...",
"client_requirement": false,
"team_requirement": false,
"generated_from_issue": null,
"tribe_gig": null
},
"milestone": {
"permalink": "http://localhost:9001/project/project-0/taskboard/sprint-2016-2-16",
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 4,
"permalink": "http://localhost:9001/profile/admin",
"username": "admin",
"full_name": "Administrator",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"id": 1,
"name": "Sprint 2016-2-16",
"slug": "sprint-2016-2-16",
"estimated_start": "2016-02-16",
"estimated_finish": "2016-03-02",
"created_date": "2016-02-16T13:15:03+0000",
"modified_date": "2016-04-11T13:15:03+0000",
"closed": false,
"disponibility": 0.0
},
"id": 163,
"is_blocked": true,
"blocked_note": "blocked note message",
"ref": 73,
"created_date": "2016-04-12T12:20:54+0000",
"modified_date": "2016-04-12T12:21:40+0000",
"finished_date": null,
"subject": "test task",
"us_order": 1,
"taskboard_order": 1,
"description": "Task description example",
"is_iocaine": true,
"external_reference": null
},
"date": "2016-04-12T12:21:40.603Z",
"change": {
"diff": {
"assigned_to": {
"from": "Alicia Flores",
"to": "Administrator"
}
},
"comment": "",
"comment_html": "",
"delete_comment_date": null
}
}
{
"data": {
"custom_attributes_values": {},
"watchers": [],
"permalink": "http://localhost:9001/project/project-0/issue/75",
"tags": [
"officia",
"delectus"
],
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"milestone": null,
"owner": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"assigned_to": null,
"status": {
"id": 1,
"name": "New",
"slug": "new",
"color": "#8C2318",
"is_closed": false
},
"type": {
"id": 1,
"name": "Bug",
"color": "#89BAB4"
},
"priority": {
"id": 1,
"name": "Low",
"color": "#666666"
},
"severity": {
"id": 4,
"name": "Important",
"color": "#FFA500"
},
"id": 95,
"is_blocked": false,
"blocked_note": "",
"ref": 75,
"created_date": "2016-04-12T12:48:12+0000",
"modified_date": "2016-04-12T12:48:12+0000",
"finished_date": null,
"subject": "Test issue 3",
"description": "Test issue description",
"external_reference": null
},
"type": "issue",
"action": "create",
"date": "2016-04-12T12:48:13.089Z",
"by": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
}
}
{
"data": {
"custom_attributes_values": null,
"watchers": [],
"permalink": "http://localhost:9001/project/project-0/issue/75",
"tags": [
"officia",
"delectus"
],
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"milestone": null,
"owner": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"assigned_to": null,
"status": {
"id": 3,
"name": "Ready for test",
"slug": "ready-for-test",
"color": "#88A65E",
"is_closed": true
},
"type": {
"id": 1,
"name": "Bug",
"color": "#89BAB4"
},
"priority": {
"id": 1,
"name": "Low",
"color": "#666666"
},
"severity": {
"id": 4,
"name": "Important",
"color": "#FFA500"
},
"id": 95,
"is_blocked": false,
"blocked_note": "",
"ref": 75,
"created_date": "2016-04-12T12:48:12+0000",
"modified_date": "2016-04-12T12:49:13+0000",
"finished_date": "2016-04-12T12:49:13+0000",
"subject": "Test issue 3",
"description": "Test issue description",
"external_reference": null
},
"type": "issue",
"action": "delete",
"date": "2016-04-12T12:50:23.488Z",
"by": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
}
}
{
"change": {
"diff": {
"status": {
"to": "Ready for test",
"from": "New"
}
},
"comment": "",
"comment_html": "",
"delete_comment_date": null
},
"data": {
"custom_attributes_values": {},
"watchers": [],
"permalink": "http://localhost:9001/project/project-0/issue/75",
"tags": [
"officia",
"delectus"
],
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"milestone": null,
"owner": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"assigned_to": null,
"status": {
"id": 3,
"name": "Ready for test",
"slug": "ready-for-test",
"color": "#88A65E",
"is_closed": true
},
"type": {
"id": 1,
"name": "Bug",
"color": "#89BAB4"
},
"priority": {
"id": 1,
"name": "Low",
"color": "#666666"
},
"severity": {
"id": 4,
"name": "Important",
"color": "#FFA500"
},
"id": 95,
"is_blocked": false,
"blocked_note": "",
"ref": 75,
"created_date": "2016-04-12T12:48:12+0000",
"modified_date": "2016-04-12T12:49:13+0000",
"finished_date": "2016-04-12T12:49:13+0000",
"subject": "Test issue 3",
"description": "Test issue description",
"external_reference": null
},
"by": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"type": "issue",
"action": "change",
"date": "2016-04-12T12:49:13.188Z"
}
{
"data": {
"permalink": "http://localhost:9001/project/project-0/wiki/test-wiki-page",
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"last_modifier": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"id": 6,
"slug": "test-wiki-page",
"content": "this is a test content",
"created_date": "2016-04-12T12:29:32+0000",
"modified_date": "2016-04-12T12:29:32+0000"
},
"type": "wikipage",
"action": "create",
"date": "2016-04-12T12:29:32.535Z",
"by": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
}
}
{
"data": {
"permalink": "http://localhost:9001/project/project-0/wiki/test-wiki-page",
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"last_modifier": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"id": 6,
"slug": "test-wiki-page",
"content": "This is other test content",
"created_date": "2016-04-12T12:29:32+0000",
"modified_date": "2016-04-12T12:30:29+0000"
},
"type": "wikipage",
"action": "delete",
"date": "2016-04-12T12:31:19.281Z",
"by": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
}
}
{
"change": {
"diff": {
"content_html": {
"to": "<p>This is other test content</p>",
"from": "<p>this is a test content</p>"
},
"content_diff": {
"to": "<del style=\"background:#ffe6e6;\">t</del><ins style=\"background:#e6ffe6;\">T</ins><span>his is </span><del style=\"background:#ffe6e6;\">a</del><ins style=\"background:#e6ffe6;\">other</ins><span> test content</span>",
"from": null
}
},
"comment": "",
"comment_html": "",
"delete_comment_date": null
},
"data": {
"permalink": "http://localhost:9001/project/project-0/wiki/test-wiki-page",
"project": {
"id": 1,
"permalink": "http://localhost:9001/project/project-0",
"name": "Project Example 0",
"logo_big_url": null
},
"owner": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"last_modifier": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"id": 6,
"slug": "test-wiki-page",
"content": "This is other test content",
"created_date": "2016-04-12T12:29:32+0000",
"modified_date": "2016-04-12T12:30:29+0000"
},
"by": {
"id": 6,
"permalink": "http://localhost:9001/profile/user1",
"username": "user1",
"full_name": "Purificacion Montero",
"photo": "//media.taiga.io/avatar.80x80_q85_crop.png",
"gravatar_id": "464bb6d514c3ecece1b87136ceeda1da"
},
"type": "wikipage",
"action": "change",
"date": "2016-04-12T12:30:29.870Z"
}