跳至主要内容
REST API 现在已版本化。 有关更多信息,请参阅“关于 API 版本控制”。

用于工作流的 REST API 端点

使用 REST API 与 GitHub Actions 中的工作流进行交互。

关于 GitHub Actions 中的工作流

您可以使用 REST API 查看 GitHub Actions 中存储库的工作流。工作流使用各种工具和服务来自动化您的软件开发生命周期。有关更多信息,请参阅 GitHub Actions 文档中的“关于工作流”。

列出存储库工作流

列出存储库中的工作流。

任何具有存储库读取权限的用户都可以使用此端点。

OAuth 应用令牌和个人访问令牌(经典)需要 repo 范围才能使用此端点与私有存储库进行交互。

用于“列出存储库工作流”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌必须具有以下权限集

  • “操作”存储库权限(读取)

如果仅请求公共资源,则无需身份验证或上述权限即可使用此端点。

用于“列出存储库工作流”的参数

标头
名称、类型、描述
accept string

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner string 必需

存储库的帐户所有者。名称不区分大小写。

repo string 必需

存储库的名称,不包含 .git 扩展名。名称不区分大小写。

查询参数
名称、类型、描述
per_page 整数

每页结果数(最大 100)。有关更多信息,请参阅“在 REST API 中使用分页”。

默认: 30

page 整数

要获取的结果页码。有关更多信息,请参阅“在 REST API 中使用分页”。

默认: 1

“列出仓库工作流”的 HTTP 响应状态码

状态码描述
200

OK

“列出仓库工作流”的代码示例

请求示例

get/repos/{owner}/{repo}/actions/workflows
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/actions/workflows

响应

状态:200
{ "total_count": 2, "workflows": [ { "id": 161335, "node_id": "MDg6V29ya2Zsb3cxNjEzMzU=", "name": "CI", "path": ".github/workflows/blank.yaml", "state": "active", "created_at": "2020-01-08T23:48:37.000-08:00", "updated_at": "2020-01-08T23:50:21.000-08:00", "url": "https://api.github.com/repos/octo-org/octo-repo/actions/workflows/161335", "html_url": "https://github.com/octo-org/octo-repo/blob/master/.github/workflows/161335", "badge_url": "https://github.com/octo-org/octo-repo/workflows/CI/badge.svg" }, { "id": 269289, "node_id": "MDE4OldvcmtmbG93IFNlY29uZGFyeTI2OTI4OQ==", "name": "Linter", "path": ".github/workflows/linter.yaml", "state": "active", "created_at": "2020-01-08T23:48:37.000-08:00", "updated_at": "2020-01-08T23:50:21.000-08:00", "url": "https://api.github.com/repos/octo-org/octo-repo/actions/workflows/269289", "html_url": "https://github.com/octo-org/octo-repo/blob/master/.github/workflows/269289", "badge_url": "https://github.com/octo-org/octo-repo/workflows/Linter/badge.svg" } ] }

获取工作流

获取特定工作流。您可以将 workflow_id 替换为工作流文件名。例如,您可以使用 main.yaml

任何具有存储库读取权限的用户都可以使用此端点。

OAuth 应用令牌和个人访问令牌(经典)需要 repo 范围才能使用此端点与私有存储库进行交互。

“获取工作流”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌必须具有以下权限集

  • “操作”存储库权限(读取)

如果仅请求公共资源,则无需身份验证或上述权限即可使用此端点。

“获取工作流”的参数

标头
名称、类型、描述
accept string

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner string 必需

存储库的帐户所有者。名称不区分大小写。

repo string 必需

存储库的名称,不包含 .git 扩展名。名称不区分大小写。

workflow_id 必填

工作流程的 ID。您也可以将工作流程文件名作为字符串传递。

“获取工作流程”的 HTTP 响应状态代码

状态码描述
200

OK

“获取工作流程”的代码示例

请求示例

get/repos/{owner}/{repo}/actions/workflows/{workflow_id}
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/actions/workflows/WORKFLOW_ID

响应

状态:200
{ "id": 161335, "node_id": "MDg6V29ya2Zsb3cxNjEzMzU=", "name": "CI", "path": ".github/workflows/blank.yaml", "state": "active", "created_at": "2020-01-08T23:48:37.000-08:00", "updated_at": "2020-01-08T23:50:21.000-08:00", "url": "https://api.github.com/repos/octo-org/octo-repo/actions/workflows/161335", "html_url": "https://github.com/octo-org/octo-repo/blob/master/.github/workflows/161335", "badge_url": "https://github.com/octo-org/octo-repo/workflows/CI/badge.svg" }

禁用工作流程

禁用工作流程并将工作流程的state设置为disabled_manually。您可以将workflow_id替换为工作流程文件名。例如,您可以使用main.yaml

OAuth 令牌和个人访问令牌(经典)需要repo范围才能使用此端点。

“禁用工作流程”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌必须具有以下权限集

  • “操作”存储库权限(写入)

“禁用工作流程”的参数

标头
名称、类型、描述
accept string

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner string 必需

存储库的帐户所有者。名称不区分大小写。

repo string 必需

存储库的名称,不包含 .git 扩展名。名称不区分大小写。

workflow_id 必填

工作流程的 ID。您也可以将工作流程文件名作为字符串传递。

“禁用工作流程”的 HTTP 响应状态代码

状态码描述
204

无内容

“禁用工作流程”的代码示例

请求示例

put/repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable
curl -L \ -X PUT \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/actions/workflows/WORKFLOW_ID/disable

响应

状态:204

创建工作流程调度事件

您可以使用此端点手动触发 GitHub Actions 工作流程运行。您可以将workflow_id替换为工作流程文件名。例如,您可以使用main.yaml

您必须将 GitHub Actions 工作流程配置为在workflow_dispatch webhook事件发生时运行。inputs在工作流程文件中配置。有关如何在工作流程文件中配置workflow_dispatch事件的更多信息,请参阅“触发工作流程的事件”。

OAuth 令牌和个人访问令牌(经典)需要repo范围才能使用此端点。

用于“创建工作流调度事件”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌必须具有以下权限集

  • “操作”存储库权限(写入)

“创建工作流调度事件”的参数

标头
名称、类型、描述
accept string

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner string 必需

存储库的帐户所有者。名称不区分大小写。

repo string 必需

存储库的名称,不包含 .git 扩展名。名称不区分大小写。

workflow_id 必填

工作流程的 ID。您也可以将工作流程文件名作为字符串传递。

主体参数
名称、类型、描述
ref 字符串 必需

工作流的 Git 引用。引用可以是分支或标签名称。

inputs 对象

在工作流文件中配置的输入键和值。属性的最大数量为 10。当省略 inputs 时,将使用在工作流文件中配置的任何默认属性。

“创建工作流调度事件”的 HTTP 响应状态代码

状态码描述
204

无内容

“创建工作流调度事件”的代码示例

请求示例

post/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/actions/workflows/WORKFLOW_ID/dispatches \ -d '{"ref":"topic-branch","inputs":{"name":"Mona the Octocat","home":"San Francisco, CA"}}'

响应

状态:204

启用工作流

启用工作流并将工作流的 state 设置为 active。您可以将 workflow_id 替换为工作流文件名。例如,您可以使用 main.yaml

OAuth 令牌和个人访问令牌(经典)需要repo范围才能使用此端点。

用于“启用工作流”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌必须具有以下权限集

  • “操作”存储库权限(写入)

“启用工作流”的参数

标头
名称、类型、描述
accept string

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner string 必需

存储库的帐户所有者。名称不区分大小写。

repo string 必需

存储库的名称,不包含 .git 扩展名。名称不区分大小写。

workflow_id 必填

工作流程的 ID。您也可以将工作流程文件名作为字符串传递。

“启用工作流”的 HTTP 响应状态代码

状态码描述
204

无内容

“启用工作流”的代码示例

请求示例

put/repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable
curl -L \ -X PUT \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/actions/workflows/WORKFLOW_ID/enable

响应

状态:204

获取工作流使用情况

获取特定工作流在当前计费周期内使用的可计费分钟数。可计费分钟数仅适用于使用 GitHub 托管运行器私有存储库中的工作流。使用情况以毫秒为单位列出每个 GitHub 托管运行器操作系统。任何作业重新运行也包含在使用情况中。使用情况不包括 macOS 和 Windows 运行器的乘数,并且不会四舍五入到最接近的整分钟。有关更多信息,请参阅“管理 GitHub Actions 的计费”。

您可以将 workflow_id 替换为工作流文件名。例如,您可以使用 main.yaml

任何具有存储库读取权限的用户都可以使用此端点。

OAuth 应用令牌和个人访问令牌(经典)需要 repo 范围才能使用此端点与私有存储库进行交互。

用于“获取工作流使用情况”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌必须具有以下权限集

  • “操作”存储库权限(读取)

如果仅请求公共资源,则无需身份验证或上述权限即可使用此端点。

“获取工作流使用情况”的参数

标头
名称、类型、描述
accept string

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner string 必需

存储库的帐户所有者。名称不区分大小写。

repo string 必需

存储库的名称,不包含 .git 扩展名。名称不区分大小写。

workflow_id 必填

工作流程的 ID。您也可以将工作流程文件名作为字符串传递。

获取工作流使用情况的 HTTP 响应状态码

状态码描述
200

OK

获取工作流使用情况的代码示例

请求示例

get/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/actions/workflows/WORKFLOW_ID/timing

响应

状态:200
{ "billable": { "UBUNTU": { "total_ms": 180000 }, "MACOS": { "total_ms": 240000 }, "WINDOWS": { "total_ms": 300000 } } }