Documentation (2024.2 Enterprise)

# Branch

A Branch represents a branch in a version control Repository.

- Attributes
- Operations
  - `GET /projects/:project_id/repositories/:repository_id/branches`
  - `GET /projects/:project_id/repositories/:repository_id/branches/:id`
  - `POST /projects/:project_id/repositories/:repository_id/branches`
  - `PUT /projects/:project_id/repositories/:repository_id/branches/:id`
  - `DELETE /projects/:project_id/repositories/:repository_id/branches/:id`

Forward slash characters in `:repository_id` must be encoded with `%2F`

## Attributes

### id

A name of the branch, e.g. `master`.

- Type: `string`

### uuid

A universally unique identifier.

- Type: `string`

### commit

The latest commit in the branch

- Type: `string`

### protected

An indicator of whether the branch is protected or not. Protected branches cannot be deleted, cannot be pushed with force, and only Project Admin can push to them. Currently branches can be protected only within Git repositories.

- Type: `boolean`

## Operations

### GET /projects/:project_id/repositories/:repository_id/branches

Returns the branches in a repository, with optional limit and offset, as a metadata-results 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/repositories/chef/branches

#### Example Response

    {
      "metadata": {
        "more_results": false,
        "next_offset": 3,
        "count": 3
      },
      "results": [
        {
          "api_status": 200,
          "api_timestamp": "2016-03-18T14:33:33Z",
          "id": "develop",
          "uuid": "46943352-03c3-42f8-807f-e378e98e878c-develop",
          "commit": "ad527b07d4618bad64368ad507d0d193c4387d99",
          "protected": false,
          "repository": {
            "id": "chef",
            "uuid": "46943352-03c3-42f8-807f-e378e98e878c"
          }
        },
        {
          "api_status": 200,
          "api_timestamp": "2016-03-18T14:33:33Z",
          "id": "master",
          "uuid": "46943352-03c3-42f8-807f-e378e98e878c-master",
          "commit": "eadca9ff750e9e504f94e72b702423c399641098",
          "protected": true,
          "repository": {
            "id": "chef",
            "uuid": "46943352-03c3-42f8-807f-e378e98e878c"
          }
        },
        {
          "api_status": 200,
          "api_timestamp": "2016-03-18T14:33:33Z",
          "id": "production",
          "uuid": "46943352-03c3-42f8-807f-e378e98e878c-production",
          "commit": "063f8954ef1a8d997fde9eee93651914ea6b1e75",
          "protected": true,
          "repository": {
            "id": "chef",
            "uuid": "46943352-03c3-42f8-807f-e378e98e878c"
          }
        }
      ]
    }

### GET /projects/:project_id/repositories/:repository_id/branches/:id

Returns a specific branch.

#### 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/repositories/chef/branches/master

#### Example Response

    {
      "api_status": 200,
      "api_timestamp": "2016-03-18T14:35:57Z",
      "id": "master",
      "uuid": "46943352-03c3-42f8-807f-e378e98e878c-master",
      "commit": "eadca9ff750e9e504f94e72b702423c399641098",
      "protected": true,
      "repository": {
        "id": "chef",
        "uuid": "46943352-03c3-42f8-807f-e378e98e878c"
      }
    }

### POST /projects/:project_id/repositories/:repository_id/branches

Creates a new branch to the company and returns the created branch 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": "production", "commit": "063f8954ef1a8d997fde9eee93651914ea6b1e75", "protected": true }' \
      https://helixteamhub.cloud/api/projects/luotsi/repositories/chef/branches

#### Example Response

    {
      "api_status": 201,
      "api_timestamp": "2016-03-18T14:30:50Z",
      "id": "production",
      "uuid": "46943352-03c3-42f8-807f-e378e98e878c-production",
      "commit": "063f8954ef1a8d997fde9eee93651914ea6b1e75",
      "protected": true,
      "repository": {
        "id": "chef",
        "uuid": "46943352-03c3-42f8-807f-e378e98e878c"
      }
    }

### PUT /projects/:project_id/repositories/:repository_id/branches/:id

Updates the branch protection attribute. Only Project Admins are allowed to change branch protection.

#### Example Request

    curl -X PUT \
      -H "Content-Type: application/json" \
      -H "Accept: application/vnd.hth.v1" \
      -H "Authorization: hth.company_key='$COMPANY_KEY',account_key='$ACCOUNT_KEY'" \
      -d '{ "protected": false }'
      https://helixteamhub.cloud/api/projects/luotsi/repositories/chef/branches/production

#### Example Response

    {
      "api_status": 200,
      "api_timestamp": "2016-03-18T15:53:05Z",
      "id": "production",
      "uuid": "46943352-03c3-42f8-807f-e378e98e878c-production",
      "commit": "063f8954ef1a8d997fde9eee93651914ea6b1e75",
      "protected": false,
      "repository": {
        "id": "chef",
        "uuid": "46943352-03c3-42f8-807f-e378e98e878c"
      }
    }

### DELETE /projects/:project_id/repositories/:repository_id/branches/:id

Deletes a branch. Returns the deleted branch.

#### 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/repositories/chef/branches/production

#### Example Response

    {
      "api_status": 200,
      "api_timestamp": "2016-03-18T15:53:36Z",
      "id": "production",
      "uuid": "46943352-03c3-42f8-807f-e378e98e878c-production",
      "commit": "063f8954ef1a8d997fde9eee93651914ea6b1e75",
      "protected": false,
      "repository": {
        "id": "chef",
        "uuid": "46943352-03c3-42f8-807f-e378e98e878c"
      }
    }

Your search for returned results

Your search for returned results