Milestone

Milestone is a collection of Tasks in a Project.

Attributes

Milestone object has support for storing custom attributes.

id

URL-friendly identifier for the milestone.

  • Type: string
  • Immutable: true
  • Unique: true
  • Required: true
  • Minimum length: 2
  • Maximum length: 100
  • Allowed characters: a-z, A-Z, 0-9, -, _

title

Human-readable title for the milestone.

  • Type: string
  • Required: true
  • Minimum length: 1
  • Maximum length: 100

description

A free-form description of the milestone.

  • Type: string
  • Default: ""
  • Maximum length: 50000

default

An indicator of whether the milestone is a default one or not. Only one milestone can be set as a default within the project scope at the same time (setting this flag to true for one milestone unsets the same for the other ones).

  • Type: boolean
  • Default: false

states

Possible states for the tasks in the milestone. A milestone must define at least one state.

  • Type: array
  • Required: true

done_states

States that are considered as final task states in the milestone. Can be used to calculate progress of the milestone.

  • Type: array

priorities

Possible priorities for the tasks in the milestone. Priorities are considered to be integer based when left as empty.

  • Type: array

start_date

Optional start date of the milestone.

  • Type: timestamp

end_date

Optional end date of the milestone.

  • Type: timestamp

Child objects

The following child objects can be attached to the milestones returned, to eliminate the need for requesting them separately:

Object Attribute
Task tasks
User members

For example to get all the tasks in the milestone, attach include=tasks to your GET request.

See the child object API documentation for a description of the possible operations.

Operations

GET /projects/:project_id/milestones

Returns all the milestones in the project, with optional limit and offset parameters, as a metadata-results object.

GET /projects/:project_id/milestones/:id

Returns specific milestone object.

Example Request

curl -X GET \
  -H "Accept: application/vnd.hth.v1" \
  -H "Authorization: hth.company_key='$COMPANY_KEY',account_key='$ACCOUNT_KEY'" \
  https://helixteamhub.cloud/api/projects/luotsi/milestones/default

Example Response

{
  "api_status": 200,
  "api_timestamp": "2014-05-12T12:41:39Z",
  "id": "default",
  "created_at": "2014-05-12T11:43:15Z",
  "updated_at": "2014-05-12T11:43:15Z",
  "title": "Default",
  "description": "The default milestone.",
  "default": false,
  "states": [
    "open",
    "wip",
    "blocked",
    "closed"
  ],
  "done_states": [
    "closed"
  ],
  "priorities": [
    "low",
    "normal",
    "high"
  ],
  "start_date": "2014-05-10T09:00:00Z",
  "end_date": null,
  "properties": {

  }
}

POST /projects/:project_id/milestones

Creates a new milestone to the project. Returns the created milestone object.

Example Request

curl -X POST \
  -H "Accept: application/vnd.hth.v1" \
  -H "Authorization: hth.company_key='$COMPANY_KEY',account_key='$ACCOUNT_KEY'" \
  -H "Content-Type: application/json" \
  -d '{ "id": "default", "title": "Default milestone", "states": ["open"] }' \
  https://helixteamhub.cloud/api/projects/luotsi/milestones

Example Response

{
  "api_status": 201,
  "api_timestamp": "2014-05-12T15:02:10Z",
  "id": "default",
  "created_at": "2014-05-12T15:02:10Z",
  "updated_at": "2014-05-12T15:02:10Z",
  "title": "Default milestone",
  "description": "",
  "default": false,
  "states": [
    "open"
  ],
  "done_states": [

  ],
  "priorities": [

  ],
  "start_date": null,
  "end_date": null,
  "properties": {

  }
}

PUT /projects/:project_id/milestones/:id

Updates a milestone. Returns the updated milestone object.

Example Request

curl -X PUT \
  -H "Accept: application/vnd.hth.v1" \
  -H "Authorization: hth.company_key='$COMPANY_KEY',account_key='$ACCOUNT_KEY'" \
  -H "Content-Type: application/json" \
  -d '{ "description": "Sample description" }' \
  https://helixteamhub.cloud/api/projects/luotsi/milestones/default

Example Response

{
  "api_status": 200,
  "api_timestamp": "2014-05-12T15:03:58Z",
  "id": "default",
  "created_at": "2014-05-12T15:02:10Z",
  "updated_at": "2014-05-12T15:03:58Z",
  "title": "Default milestone",
  "description": "Sample description",
  "default": false,
  "states": [
    "open"
  ],
  "done_states": [

  ],
  "priorities": [

  ],
  "start_date": null,
  "end_date": null,
  "properties": {

  }
}

DELETE /projects/:project_id/milestones/:id

Deletes a milestone. Returns the deleted milestone object.

Example Request

curl -X DELETE \
  -H "Accept: application/vnd.hth.v1" \
  -H "Authorization: hth.company_key='$COMPANY_KEY',account_key='$ACCOUNT_KEY'" \
  https://helixteamhub.cloud/api/projects/luotsi/milestones/default