---
title: "CreateTask"
method: POST
path: "/gitpod.v1.EnvironmentAutomationService/CreateTask"
tags: ["gitpod.v1.EnvironmentAutomationService"]
---

# CreateTask

`POST /gitpod.v1.EnvironmentAutomationService/CreateTask`

Creates a new automation task.

 Use this method to:
 - Define one-off or scheduled tasks
 - Set up build or test automation
 - Configure task dependencies
 - Specify execution environments

 ### Examples

 - Create basic task:

   Creates a simple build task.

   ```yaml
   environmentId: "07e03a28-65a5-4d98-b532-8ea67b188048"
   metadata:
     reference: "build"
     name: "Build Project"
     description: "Builds the project artifacts"
     triggeredBy:
       - postEnvironmentStart: true
   spec:
     command: "npm run build"
   ```

 - Create task with dependencies:

   Creates a task that depends on other services.

   ```yaml
   environmentId: "07e03a28-65a5-4d98-b532-8ea67b188048"
   metadata:
     reference: "test"
     name: "Run Tests"
     description: "Runs the test suite"
   spec:
     command: "npm test"
   dependsOn: ["d2c94c27-3b76-4a42-b88c-95a85e392c68"]
   ```

## Request body

- GitpodV1CreateTaskRequest
  - `dependsOn` string[]
  - `environmentId` string, uuid
  - `metadata` GitpodV1TaskMetadata — unresolved $ref
  - `spec` GitpodV1TaskSpec
    - `command` string — command contains the command the task should execute
    - `runsOn` GitpodV1RunsOn
      - `docker` GitpodV1RunsOnDocker, required
        - `environment` string[]
        - `image` string

## Response `200`

Success

- GitpodV1CreateTaskResponse
  - `task` GitpodV1Task, required
    - `dependsOn` string[] — dependencies specifies the IDs of the automations this task depends on.
    - `environmentId` string, uuid
    - `id` string, uuid, required
    - `metadata` GitpodV1TaskMetadata — unresolved $ref
    - `spec` GitpodV1TaskSpec
      - `command` string — command contains the command the task should execute
      - `runsOn` GitpodV1RunsOn
        - `docker` GitpodV1RunsOnDocker, required
          - `environment` string[]
          - `image` string

## Other responses

- `default` — Error

## Changes

- **2025-06-10** `ca9a49ac7fbb` — 1 warning, 1 info
  - added the new `PRINCIPAL_RUNNER_MANAGER` enum value to the `task/metadata/creator/principal` response property for the response status `200`
  - added the new `PRINCIPAL_RUNNER_MANAGER` enum value to the request property `metadata/creator/principal`
- **2025-02-21** `3655d5ad0ac3` — 3 breaking, 2 warning, 14 info
  - the `metadata` request property type/format changed from ``/`` to `object`/``
  - the `spec` request property type/format changed from ``/`` to `object`/``
  - the `task` response's property type/format changed from ``/`` to `object`/`` for status `200`
  - removed `#/components/schemas/gitpod.v1.TaskMetadata` from the `metadata` request property `allOf` list
  - …15 more
- **2025-02-18** `cd6a05ae99d2` — 1 warning
  - removed the optional property `detail` from the response with the `default` status
- **2025-02-18** `bef0e79f204c` — 1 info
  - the response property `task` became required for the status `200`
- **2025-02-18** `f6598ab5d682` — 1 info
  - the response property `task/allOf[subschema #1: Task]/id` became required for the status `200`

[Change history](https://skmtc.dev/gitpod-io/apis/gitpod-v1/changes/gitpod.v1.EnvironmentAutomationService/CreateTask/post.md)

---

[API](https://skmtc.dev/gitpod-io/apis/gitpod-v1.md) · [All operations](https://skmtc.dev/gitpod-io/apis/gitpod-v1/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/gitpod-io/gitpod-v1/revisions/ca9a49ac7fbb/schema)
