Create
The documentation applies to models in the new version buddy.v1.1.0
For the REST API to work correctly, you should send the header X-Buddy-Media-Type: buddy.v1.1.0
You can read more about changes here.
Creates a new pipeline in the project.
Required scopes: WORKSPACE
, EXECUTION_MANAGE
Resource URL
POST /workspaces/:domain/projects/:project_name/pipelines
URL Parameters
Name | Type | Description |
---|---|---|
domain Required | String | The workspace domain. |
project_name Required | String | The name ID of the project. |
POST Parameters
Name | Type | Description |
---|---|---|
name Required | String | The name of the pipeline. |
on Required | String | The trigger mode of the pipeline. Can be one of 'CLICK', 'EVENT', 'SCHEDULE'. |
refs | String[] | Set it if 'on' is set to 'CLICK' or 'SCHEDULE'. The list of refs for which the pipeline will be triggered. Automatically set to 'NONE' if not provided. |
events | Event[] | The list of events for which the pipeline will be triggered. Set it if 'on' is set to 'EVENT'. |
trigger_conditions | TriggerCondition[] | The list of trigger conditions to meet so that the pipeline can be triggered. |
always_from_scratch | Boolean | Defines whether or not to upload everything from scratch on every execution. |
auto_clear_cache | Boolean | Defines whether or not to automatically clear cache before running the pipeline. |
no_skip_to_most_recent | Boolean | Defines whether or not to skip execution to the most recent execution. |
do_not_create_commit_status | Boolean | Defines whether or not to omit sending commit statuses to Github or Gitlab upon execution. |
start_date | iso 8601 utc date | Required if the pipeline is set to 'on: SCHEDULE' and no 'cron' is specified. Defines when the pipeline execution should start. Format: 2016-11-18T12:38:16.000Z |
delay | Integer | Required if the pipeline is set to 'on: SCHEDULE' and no 'cron' is specified. Defines the intervals in which the pipeline should be executed (in minutes). |
cron | String | Required if the pipeline is set to 'on: SCHEDULE' and neither 'start_date' nor 'delay' is specified. The standard CRON expression defining the execution schedule. |
paused | Boolean | Defines if the recurrent pipeline executions are paused or not. Restricted to 'on: SCHEDULE'. |
ignore_fail_on_project_status | Boolean | If set to 'true' the status of a given pipeline will not impact the project status on the dashboard. |
execution_message_template | String | The title of every execution in this pipeline. By default, it is set to '$BUDDY_EXECUTION_REVISION_SUBJECT'. |
target_site_url | String | The URL of the target website. |
disabled | Boolean | Set it, if you want the pipeline to be disabled. |
disabled_reason | String | Specifies the reason for disabling the pipeline. |
concurrent_pipeline_runs | Boolean | Defines whether or not the pipeline can be run concurrently. |
fetch_all_refs | Boolean | When the pipeline is run, Buddy fetches only one Git reference to the pipeline filesystem (branch, tag, or pull request). If the option is set to 'true', Buddy will be forced to fetch all Git references. |
permissions | PipelinePermissions | Define to set permissions for the pipeline. |
change_set_base | String | Defines the way the changeset for deployments and trigger conditions between subsequent executions in the pipeline will be calculated. Available values: 'LATEST_RUN', 'LATEST_RUN_MATCHING_REF', 'PULL_REQUEST'. By default, it is set to 'LATEST_RUN'. |
Example
Request
POST https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines
JSON
{
"name": "Tests",
"on": "EVENT",
"events": [
{
"type": "PUSH",
"refs": [
"refs/heads/master"
]
}
],
"execution_message_template": "test",
"always_from_scratch": true,
"auto_clear_cache": true,
"no_skip_to_most_recent": true,
"do_not_create_commit_status": true,
"ignore_fail_on_project_status": true,
"concurrent_pipeline_runs": true,
"change_set_base": "LATEST_RUN_MATCHING_REF",
"permissions": {
"others": "DENIED",
"users": [
{
"id": 1,
"access_level": "READ_WRITE"
}
],
"groups": [
{
"id": 1,
"access_level": "READ_ONLY"
}
]
}
}
Sample Response
HTTP
Status: 201 Created
X-Rate-Limit-Limit: 1
X-Rate-Limit-Remaining: 999
JSON
{
"url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2",
"html_url": "https://app.buddy.works/buddy/company-website/pipelines/pipeline/2",
"id": 2,
"name": "Tests",
"on": "EVENT",
"events": [
{
"type": "PUSH",
"refs": [
"refs/heads/master"
]
}
],
"execution_message_template": "test",
"last_execution_status": "INITIAL",
"last_execution_revision": null,
"create_date": "2016-03-29T07:12:30.675Z",
"always_from_scratch": true,
"auto_clear_cache": true,
"no_skip_to_most_recent": true,
"do_not_create_commit_status": true,
"ignore_fail_on_project_status": true,
"concurrent_pipeline_runs": true,
"change_set_base": "LATEST_RUN_MATCHING_REF",
"project": {
"url": "https://api.buddy.works/workspaces/buddy/projects/company-website",
"html_url": "https://app.buddy.works/buddy/company-website",
"name": "company-website",
"display_name": "Company Website",
"status": "ACTIVE"
},
"creator": {
"url": "https://api.buddy.works/workspaces/buddy/member/1",
"html_url": "https://app.buddy.works/buddy/profile/1",
"id": 1,
"name": "Mike Benson",
"avatar_url": "https://app.buddy.works/image-server/user/0/0/0/0/0/0/1/d643744fbe5ebf2906a4d075a5b97110/w/32/32/AVATAR.png"
},
"actions": [
],
"permissions": {
"others": "DENIED",
"users": [
{
"id": 2,
"access_level": "READ_ONLY"
}
],
"groups": [
{
"id": 1,
"access_level": "READ_ONLY"
}
]
}
}
Event schema
Here's how to define the event triggering the pipeline:
"on": "EVENT",
"events": [
{
"type": "PUSH",
"refs": [
"refs/heads/master"
]
}
]
Properties
Name | Type | Description |
---|---|---|
type Required | String | The type of the event. Available values: 'PUSH', 'CREATE_REF', 'DELETE_REF'. |
refs Required | String | The list of refs for which the pipeline will be triggered in the given event. |
tags | String | Runs the pipeline on the worker with a tag that matches at least one of those specified in the array. |
Trigger condition schema
You can define trigger conditions in the following way:
{
"trigger_conditions": [
{
"trigger_condition": "VAR_IS",
"trigger_variable_key": "myVar",
"trigger_variable_value": "expectedValue"
},
{
"trigger_condition": "ON_CHANGE"
}
]
}
Properties
Name | Type | Description |
---|---|---|
trigger_condition | String | Defines when the build action should be run. Can be one of 'ON_CHANGE', 'ON_CHANGE_AT_PATH', 'VAR_IS', 'VAR_IS_NOT', 'VAR_CONTAINS', 'VAR_NOT_CONTAINS', 'VAR_LESS_THAN', 'VAR_LESS_THAN_OR_EQUAL', 'VAR_GREATER_THAN', 'VAR_GREATER_THAN_OR_EQUAL', 'DAY', 'HOUR' or 'SUCCESS_PIPELINE'. |
trigger_condition_paths | String[] | Required when 'trigger_condition; is set to 'ON_CHANGE_AT_PATH'. |
trigger_variable_key | String | Required when 'trigger_condition' is set to 'VAR_IS', 'VAR_IS_NOT' or 'VAR_CONTAINS' or 'VAR_NOT_CONTAINS', 'VAR_LESS_THAN', 'VAR_LESS_THAN_OR_EQUAL', 'VAR_GREATER_THAN', 'VAR_GREATER_THAN_OR_EQUAL'. Defines the name of the desired variable. |
trigger_variable_value | String | Required when 'trigger_condition' is set to 'VAR_IS', 'VAR_IS_NOT' or 'VAR_CONTAINS' or 'VAR_NOT_CONTAINS', 'VAR_LESS_THAN', 'VAR_LESS_THAN_OR_EQUAL', 'VAR_GREATER_THAN', 'VAR_GREATER_THAN_OR_EQUAL'. Defines the value of the desired variable which will be compared with its current value. |
trigger_hours | Integer[] | Available when 'trigger_condition' is set to 'HOUR'. Defines the time – by default running from 1 to 24. |
trigger_days | Integer[] | Available when 'trigger_condition' is set to 'DAY'. Defines the days running from 1 to 7 where 1 is for Monday. |
zone_id | String | Available when 'trigger_condition' is set to 'DAY' or 'HOUR'. Defines the timezone (by default it is UTC) and takes values from here. |
trigger_project_name | String | Required when 'trigger_condition' is set to 'SUCCESS_PIPELINE'. Defines the name of the project in which the 'trigger_pipeline_name' is. |
trigger_pipeline_name | String | Required when 'trigger_condition' is set to 'SUCCESS_PIPELINE'. Defines the name of the pipeline. |
PipelinePermissions schema
Name | Type | Description |
---|---|---|
others | String | AccessLevel for the group Others. Can be one of 'DENIED', 'DEFAULT', 'READ_ONLY', 'RUN_ONLY', or 'READ_WRITE'. Default setting is 'DEFAULT' (Project role). |
users | UserPermission[] | The list of users who will be granted a permission other than the Others group. |
groups | GroupPermission[] | The group who will be granted a permission other than the Others group. |
UserPermission schema
Name | Type | Description |
---|---|---|
id Required | Integer | The user ID. |
access_level Required | String | AccessLevel for a user. Can be one of 'DENIED', 'DEFAULT', 'READ_ONLY', 'RUN_ONLY', or 'READ_WRITE'. |
GroupPermission schema
Name | Type | Description |
---|---|---|
id Required | Integer | The group ID. |
access_level Required | String | AccessLevel for a group. Can be one of 'DENIED', 'DEFAULT', 'READ_ONLY', 'RUN_ONLY', or 'READ_WRITE'. |
Last modified on May 17, 2023