Project

A project is where most of the collaboration happens in Helix TeamHub. A company can have 0 to n projects, and each project belongs to exactly one company. Most of the other objects are handled in the scope of projects.

Attributes

Project object has support for storing custom attributes.

id

A URL-friendly identifier for the project.

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

name

The project's human-readable name.

  • Type: string
  • Unique: true
  • Required: true
  • Minimum length: 2
  • Maximum length: 100

visibility

The project's visibility flag: Can be visible to only its members or to all people in the company.

  • Type: string
  • Default: company
  • Allowed values: company, members

color

The background color of the default project avatar.

  • Type: string
  • Default: blue
  • Allowed values: blue, green, red, orange, turquoise, purple

labels

Possible labels for the tasks in the project.

  • Type: array

description

A free-form description of the project.

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

hook_events

All hook events the project supports.

  • Type: array

The hook_events array contains string identifiers of all the supported hook events.

"hook_events": ["repository"]

automatic_depot_creation

If set to true, a new Graph depot named //<project_short_name>/ is created in the Git Connector server. Any Git repositories added to the project will be automatically created in this depot

  • Type: boolean
  • Default: false

properties

See custom attributes for more information.

Searchable attributes

Projects can be searched by their id, name, and description attributes. See the search documentation for instructions how to do this.

Child objects

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

Object Attribute
User users
Collaborator collaborators
Groups groups
Repository repositories
Hook hooks
Milestone milestones
Task tasks
Subscriber subscribers

For example, to get all of the project's users in full and the number of repositories it has, attach include=users&count=repositories to your GET request.

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

Operations

GET /projects

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

GET /projects/:id

Returns one project as a project 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

Example Response

{
  "api_status": 200,
  "api_timestamp": "2013-06-14T12:06:57Z",
  "id": "luotsi",
  "created_at": "2011-08-23T21:43:20Z",
  "updated_at": "2013-05-11T09:53:09Z",
  "name": "Helix TeamHub",
  "description": "The next generation software development and collaboration hub for the world.",
  "color": "red",
  "labels": [
    "bug",
    "feature",
    "improvement"
  ],
  "visibility": "members",
  "properties": {

  }
}

POST /projects

Creates a new project to the company. Returns the created project 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": "platform", "name": "Platform" }' \
  https://helixteamhub.cloud/api/projects

Example Response

{
  "api_status": 201,
  "api_timestamp": "2013-06-14T12:06:57Z",
  "created_at": "2011-08-23T21:43:20Z",
  "updated_at": "2013-05-11T09:53:09Z",
  "id": "platform",
  "name": "Platform",
  "description": "",
  "color": "red",
  "labels": [

  ],
  "visibility": "members",
  "properties": {

  }
}

PUT /projects/:id

Updates a project. Returns the updated project 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 '{ "visibility": "company" }' \
  https://helixteamhub.cloud/api/projects/platform

Example Response

{
  "api_status": 200,
  "api_timestamp": "2013-06-14T12:06:57Z",
  "created_at": "2011-08-23T21:43:20Z",
  "updated_at": "2013-05-11T09:53:09Z",
  "id": "platform",
  "name": "Platform",
  "description": "",
  "color": "red",
  "labels": [

  ],
  "visibility": "company",
  "properties": {

  }
}

DELETE /projects/:id

Deletes a project. Returns the deleted project object.