极狐 GitLab

冻结期 API

Tier: 基础版,专业版,旗舰版

Offering: JihuLab.com,私有化部署

使用此 API 与部署冻结期进行交互。

列出冻结期#

按 created_at 升序排列的冻结期分页列表。

先决条件:

  • 您必须具有该项目的报告者、开发者、维护者或所有者角色。
plaintext
GET /projects/:id/freeze_periods
属性类型必需描述
idinteger or string是项目的 ID 或 URL 编码路径。

示例请求:

shell
curl --request GET \ --header "PRIVATE-TOKEN: <your_access_token>" \ --url "https://gitlab.example.com/api/v4/projects/19/freeze_periods"

示例响应:

json
1[ 2 { 3 "id":1, 4 "freeze_start":"0 23 * * 5", 5 "freeze_end":"0 8 * * 1", 6 "cron_timezone":"UTC", 7 "created_at":"2020-05-15T17:03:35.702Z", 8 "updated_at":"2020-05-15T17:06:41.566Z" 9 } 10]

获取冻结期#

获取指定 freeze_period_id的冻结期。

先决条件:

  • 您必须具有该项目的报告者、开发者、维护者或所有者角色。
plaintext
GET /projects/:id/freeze_periods/:freeze_period_id
属性类型必需描述
idinteger or string是项目的 ID 或 URL 编码路径。
freeze_period_idinteger是冻结期的 ID。

示例请求:

shell
curl --request GET \ --header "PRIVATE-TOKEN: <your_access_token>" \ --url "https://gitlab.example.com/api/v4/projects/19/freeze_periods/1"

示例响应:

json
1{ 2 "id":1, 3 "freeze_start":"0 23 * * 5", 4 "freeze_end":"0 8 * * 1", 5 "cron_timezone":"UTC", 6 "created_at":"2020-05-15T17:03:35.702Z", 7 "updated_at":"2020-05-15T17:06:41.566Z" 8}

创建冻结期#

为指定项目创建冻结期。

先决条件:

  • 您必须具有该项目的维护者或所有者角色。
plaintext
POST /projects/:id/freeze_periods
属性类型必需描述
idinteger or string是项目的 ID 或 URL 编码路径。
freeze_startstring是冻结期的开始时间,采用 cron 格式。
freeze_endstring是冻结期的结束时间,采用 cron 格式。
cron_timezonestring否cron 字段的时区,如果未提供则默认为 UTC。

示例请求:

shell
curl --request POST \ --header 'Content-Type: application/json' \ --header "PRIVATE-TOKEN: <your_access_token>" \ --data '{ "freeze_start": "0 23 * * 5", "freeze_end": "0 7 * * 1", "cron_timezone": "UTC" }' \ --url "https://gitlab.example.com/api/v4/projects/19/freeze_periods"

示例响应:

json
1{ 2 "id":1, 3 "freeze_start":"0 23 * * 5", 4 "freeze_end":"0 7 * * 1", 5 "cron_timezone":"UTC", 6 "created_at":"2020-05-15T17:03:35.702Z", 7 "updated_at":"2020-05-15T17:03:35.702Z" 8}

更新冻结期#

更新指定 freeze_period_id的冻结期。

先决条件:

  • 您必须具有该项目的维护者或所有者角色。
plaintext
PUT /projects/:id/freeze_periods/:freeze_period_id
属性类型必需描述
idinteger or string是项目的 ID 或 URL 编码路径。
freeze_period_idinteger是冻结期的 ID。
freeze_startstring否冻结期的开始时间,采用 cron 格式。
freeze_endstring否冻结期的结束时间,采用 cron 格式。
cron_timezonestring否cron 字段的时区。

示例请求:

shell
curl --request PUT \ --header 'Content-Type: application/json' \ --header "PRIVATE-TOKEN: <your_access_token>" \ --data '{ "freeze_end": "0 8 * * 1" }' \ --url "https://gitlab.example.com/api/v4/projects/19/freeze_periods/1"

示例响应:

json
1{ 2 "id":1, 3 "freeze_start":"0 23 * * 5", 4 "freeze_end":"0 8 * * 1", 5 "cron_timezone":"UTC", 6 "created_at":"2020-05-15T17:03:35.702Z", 7 "updated_at":"2020-05-15T17:06:41.566Z" 8}

删除冻结期#

删除指定 freeze_period_id的冻结期。

先决条件:

  • 您必须具有该项目的维护者或所有者角色。
plaintext
DELETE /projects/:id/freeze_periods/:freeze_period_id
属性类型必需描述
idinteger or string是项目的 ID 或 URL 编码路径。
freeze_period_idinteger是冻结期的 ID。

示例请求:

shell
curl --request DELETE \ --header "PRIVATE-TOKEN: <your_access_token>" \ --url "https://gitlab.example.com/api/v4/projects/19/freeze_periods/1"