Pipeline schedules API

原文:https://docs.gitlab.com/ee/api/pipeline_schedules.html

Pipeline schedules API

您可以阅读有关管道计划的更多信息.

Get all pipeline schedules

获取项目的管道时间表的列表.

  1. GET /projects/:id/pipeline_schedules
Attribute Type required Description
id integer/string yes The ID or URL-encoded path of the project owned by the authenticated user
scope string no 管道计划的范围,其中之一: activeinactive
  1. curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/29/pipeline_schedules"
  1. [ { "id": 13, "description": "Test schedule pipeline", "ref": "master", "cron": "* * * * *", "cron_timezone": "Asia/Tokyo", "next_run_at": "2017-05-19T13:41:00.000Z", "active": true, "created_at": "2017-05-19T13:31:08.849Z", "updated_at": "2017-05-19T13:40:17.727Z", "owner": { "name": "Administrator", "username": "root", "id": 1, "state": "active", "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", "web_url": "https://gitlab.example.com/root" } } ]

Get a single pipeline schedule

获取项目的管道计划.

  1. GET /projects/:id/pipeline_schedules/:pipeline_schedule_id
Attribute Type required Description
id integer/string yes 经过身份验证的用户拥有的项目的 ID 或URL 编码路径
pipeline_schedule_id integer yes 管道时间表 ID
  1. curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/29/pipeline_schedules/13"
  1. { "id": 13, "description": "Test schedule pipeline", "ref": "master", "cron": "* * * * *", "cron_timezone": "Asia/Tokyo", "next_run_at": "2017-05-19T13:41:00.000Z", "active": true, "created_at": "2017-05-19T13:31:08.849Z", "updated_at": "2017-05-19T13:40:17.727Z", "last_pipeline": { "id": 332, "sha": "0e788619d0b5ec17388dffb973ecd505946156db", "ref": "master", "status": "pending" }, "owner": { "name": "Administrator", "username": "root", "id": 1, "state": "active", "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", "web_url": "https://gitlab.example.com/root" }, "variables": [ { "key": "TEST_VARIABLE_1", "variable_type": "env_var", "value": "TEST_1" } ] }

Create a new pipeline schedule

创建一个新的项目管道计划.

  1. POST /projects/:id/pipeline_schedules
Attribute Type required Description
id integer/string yes 经过身份验证的用户拥有的项目的 ID 或URL 编码路径
description string yes 管道进度表的描述
ref string yes 分支/标签名称将被触发
cron string yes cron(例如0 1 * * * )( Cron 语法
cron_timezone string no ActiveSupport::TimeZone支持的时ActiveSupport::TimeZone (例如Pacific Time (US & Canada) )(默认值: 'UTC'
active boolean no 激活管道计划. 如果设置为 false,则管道调度最初将被停用(默认值: true
  1. curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --form description="Build packages" --form ref="master" --form cron="0 1 * * 5" --form cron_timezone="UTC" --form active="true" "https://gitlab.example.com/api/v4/projects/29/pipeline_schedules"
  1. { "id": 14, "description": "Build packages", "ref": "master", "cron": "0 1 * * 5", "cron_timezone": "UTC", "next_run_at": "2017-05-26T01:00:00.000Z", "active": true, "created_at": "2017-05-19T13:43:08.169Z", "updated_at": "2017-05-19T13:43:08.169Z", "last_pipeline": null, "owner": { "name": "Administrator", "username": "root", "id": 1, "state": "active", "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", "web_url": "https://gitlab.example.com/root" } }

Edit a pipeline schedule

更新项目的管道计划. 更新完成后,将自动重新安排.

  1. PUT /projects/:id/pipeline_schedules/:pipeline_schedule_id
Attribute Type required Description
id integer/string yes 经过身份验证的用户拥有的项目的 ID 或URL 编码路径
pipeline_schedule_id integer yes 管道时间表 ID
description string no 管道进度表的描述
ref string no 分支/标签名称将被触发
cron string no cron(例如0 1 * * * )( Cron 语法
cron_timezone string no ActiveSupport::TimeZone (例如Pacific Time (US & Canada) )或TZInfo::Timezone (例如America/Los_Angeles )支持的TZInfo::Timezone
active boolean no 激活管道计划. 如果设置为 false,则管道计划将首先停用.
  1. curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" --form cron="0 2 * * *" "https://gitlab.example.com/api/v4/projects/29/pipeline_schedules/13"
  1. { "id": 13, "description": "Test schedule pipeline", "ref": "master", "cron": "0 2 * * *", "cron_timezone": "Asia/Tokyo", "next_run_at": "2017-05-19T17:00:00.000Z", "active": true, "created_at": "2017-05-19T13:31:08.849Z", "updated_at": "2017-05-19T13:44:16.135Z", "last_pipeline": { "id": 332, "sha": "0e788619d0b5ec17388dffb973ecd505946156db", "ref": "master", "status": "pending" }, "owner": { "name": "Administrator", "username": "root", "id": 1, "state": "active", "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", "web_url": "https://gitlab.example.com/root" } }

Take ownership of a pipeline schedule

更新项目的管道计划的所有者.

  1. POST /projects/:id/pipeline_schedules/:pipeline_schedule_id/take_ownership
Attribute Type required Description
id integer/string yes 经过身份验证的用户拥有的项目的 ID 或URL 编码路径
pipeline_schedule_id integer yes 管道时间表 ID
  1. curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/29/pipeline_schedules/13/take_ownership"
  1. { "id": 13, "description": "Test schedule pipeline", "ref": "master", "cron": "0 2 * * *", "cron_timezone": "Asia/Tokyo", "next_run_at": "2017-05-19T17:00:00.000Z", "active": true, "created_at": "2017-05-19T13:31:08.849Z", "updated_at": "2017-05-19T13:46:37.468Z", "last_pipeline": { "id": 332, "sha": "0e788619d0b5ec17388dffb973ecd505946156db", "ref": "master", "status": "pending" }, "owner": { "name": "shinya", "username": "maeda", "id": 50, "state": "active", "avatar_url": "http://www.gravatar.com/avatar/8ca0a796a679c292e3a11da50f99e801?s=80&d=identicon", "web_url": "https://gitlab.example.com/maeda" } }

Delete a pipeline schedule

删除项目的管道计划.

  1. DELETE /projects/:id/pipeline_schedules/:pipeline_schedule_id
Attribute Type required Description
id integer/string yes 经过身份验证的用户拥有的项目的 ID 或URL 编码路径
pipeline_schedule_id integer yes 管道时间表 ID
  1. curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/29/pipeline_schedules/13"
  1. { "id": 13, "description": "Test schedule pipeline", "ref": "master", "cron": "0 2 * * *", "cron_timezone": "Asia/Tokyo", "next_run_at": "2017-05-19T17:00:00.000Z", "active": true, "created_at": "2017-05-19T13:31:08.849Z", "updated_at": "2017-05-19T13:46:37.468Z", "last_pipeline": { "id": 332, "sha": "0e788619d0b5ec17388dffb973ecd505946156db", "ref": "master", "status": "pending" }, "owner": { "name": "shinya", "username": "maeda", "id": 50, "state": "active", "avatar_url": "http://www.gravatar.com/avatar/8ca0a796a679c292e3a11da50f99e801?s=80&d=identicon", "web_url": "https://gitlab.example.com/maeda" } }

Run a scheduled pipeline immediately

在 GitLab 12.8 中引入 .

触发一个新的计划管道,该管道将立即运行. 该管道的下一个计划运行不受影响.

  1. POST /projects/:id/pipeline_schedules/:pipeline_schedule_id/play
Attribute Type required Description
id integer/string yes 经过身份验证的用户拥有的项目的 ID 或URL 编码路径
pipeline_schedule_id integer yes 管道时间表 ID

请求示例:

  1. curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/42/pipeline_schedules/1/play"

响应示例:

  1. { "message": "201 Created" }

Pipeline schedule variables

在 GitLab 10.0 中引入 .

Create a new pipeline schedule variable

创建管道计划的新变量.

  1. POST /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables
Attribute Type required Description
id integer/string yes 经过身份验证的用户拥有的项目的 ID 或URL 编码路径
pipeline_schedule_id integer yes 管道时间表 ID
key string yes 变量的key ; 不得超过 255 个字符; 仅允许AZaz0-9_
value string yes 变量的value
variable_type string no 变量的类型. 可用类型为: env_var (默认)和file
  1. curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --form "key=NEW_VARIABLE" --form "value=new value" "https://gitlab.example.com/api/v4/projects/29/pipeline_schedules/13/variables"
  1. { "key": "NEW_VARIABLE", "variable_type": "env_var", "value": "new value" }

Edit a pipeline schedule variable

更新管道计划的变量.

  1. PUT /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables/:key
Attribute Type required Description
id integer/string yes 经过身份验证的用户拥有的项目的 ID 或URL 编码路径
pipeline_schedule_id integer yes 管道时间表 ID
key string yes 变量的key
value string yes 变量的value
variable_type string no 变量的类型. 可用类型为: env_var (默认)和file
  1. curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" --form "value=updated value" "https://gitlab.example.com/api/v4/projects/29/pipeline_schedules/13/variables/NEW_VARIABLE"
  1. { "key": "NEW_VARIABLE", "value": "updated value" "variable_type": "env_var", }

Delete a pipeline schedule variable

删除管道计划的变量.

  1. DELETE /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables/:key
Attribute Type required Description
id integer/string yes 经过身份验证的用户拥有的项目的 ID 或URL 编码路径
pipeline_schedule_id integer yes 管道时间表 ID
key string yes 变量的key
  1. curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/29/pipeline_schedules/13/variables/NEW_VARIABLE"
  1. { "key": "NEW_VARIABLE", "value": "updated value" }