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

用于 GitHub Actions 工件的 REST API 端点

使用 REST API 与 GitHub Actions 中的工件交互。

关于 GitHub Actions 中的工件

您可以使用 REST API 下载、删除和检索有关 GitHub Actions 中工作流工件的信息。工件使您能够在工作流中的作业之间共享数据,并在工作流完成后存储数据。有关更多信息,请参阅“存储和共享工作流数据”。

列出代码仓库的工件

列出代码仓库的所有工件。

任何拥有代码仓库读取权限的用户都可以使用此端点。

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

“列出代码仓库的工件”的细粒度访问令牌

此端点可与以下细粒度令牌类型配合使用:

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

  • “Actions” 代码仓库权限(读取)

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

“列出代码仓库的工件”的参数

标头
名称、类型、描述
accept 字符串

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

路径参数
名称、类型、描述
owner 字符串 必需

代码仓库的账户所有者。名称不区分大小写。

repo 字符串 必需

代码仓库的名称,不含 .git 扩展名。名称不区分大小写。

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

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

默认值: 30

page 整数

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

默认值: 1

name 字符串

工件的名称字段。指定后,仅返回具有此名称的工件。

“列出代码仓库的工件”的 HTTP 响应状态代码

状态代码描述
200

OK

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

请求示例

get/repos/{owner}/{repo}/actions/artifacts
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/artifacts

响应

状态:200
{ "total_count": 2, "artifacts": [ { "id": 11, "node_id": "MDg6QXJ0aWZhY3QxMQ==", "name": "Rails", "size_in_bytes": 556, "url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11", "archive_download_url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11/zip", "expired": false, "created_at": "2020-01-10T14:59:22Z", "expires_at": "2020-03-21T14:59:22Z", "updated_at": "2020-02-21T14:59:22Z", "workflow_run": { "id": 2332938, "repository_id": 1296269, "head_repository_id": 1296269, "head_branch": "main", "head_sha": "328faa0536e6fef19753d9d91dc96a9931694ce3" } }, { "id": 13, "node_id": "MDg6QXJ0aWZhY3QxMw==", "name": "Test output", "size_in_bytes": 453, "url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13", "archive_download_url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13/zip", "expired": false, "created_at": "2020-01-10T14:59:22Z", "expires_at": "2020-03-21T14:59:22Z", "updated_at": "2020-02-21T14:59:22Z", "workflow_run": { "id": 2332942, "repository_id": 1296269, "head_repository_id": 1296269, "head_branch": "main", "head_sha": "178f4f6090b3fccad4a65b3e83d076a622d59652" } } ] }

获取工件

获取工作流运行的特定工件。

任何拥有代码仓库读取权限的用户都可以使用此端点。

如果代码仓库是私有的,则 OAuth 令牌和个人访问令牌(经典)需要 repo 范围才能使用此端点。

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

此端点可与以下细粒度令牌类型配合使用:

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

  • “Actions” 代码仓库权限(读取)

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

“获取工件”的参数

标头
名称、类型、描述
accept 字符串

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

路径参数
名称、类型、描述
owner 字符串 必需

代码仓库的账户所有者。名称不区分大小写。

repo 字符串 必需

代码仓库的名称,不含 .git 扩展名。名称不区分大小写。

artifact_id 整数 必需

工件的唯一标识符。

“获取工件”的 HTTP 响应状态代码

状态代码描述
200

OK

“获取工件”的代码示例

请求示例

get/repos/{owner}/{repo}/actions/artifacts/{artifact_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/artifacts/ARTIFACT_ID

响应

状态:200
{ "id": 11, "node_id": "MDg6QXJ0aWZhY3QxMQ==", "name": "Rails", "size_in_bytes": 556, "url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11", "archive_download_url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11/zip", "expired": false, "created_at": "2020-01-10T14:59:22Z", "expires_at": "2020-01-21T14:59:22Z", "updated_at": "2020-01-21T14:59:22Z", "workflow_run": { "id": 2332938, "repository_id": 1296269, "head_repository_id": 1296269, "head_branch": "main", "head_sha": "328faa0536e6fef19753d9d91dc96a9931694ce3" } }

删除工件

删除工作流运行的工件。OAuth 令牌和个人访问令牌(经典)需要 repo 范围才能使用此端点。

“删除工件”的细粒度访问令牌

此端点可与以下细粒度令牌类型配合使用:

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

  • “Actions” 代码仓库权限(写入)

“删除工件”的参数

标头
名称、类型、描述
accept 字符串

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

路径参数
名称、类型、描述
owner 字符串 必需

代码仓库的账户所有者。名称不区分大小写。

repo 字符串 必需

代码仓库的名称,不含 .git 扩展名。名称不区分大小写。

artifact_id 整数 必需

工件的唯一标识符。

“删除工件”的 HTTP 响应状态代码

状态代码描述
204

无内容

“删除工件”的代码示例

请求示例

delete/repos/{owner}/{repo}/actions/artifacts/{artifact_id}
curl -L \ -X DELETE \ -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/artifacts/ARTIFACT_ID

响应

状态:204

下载工件

获取用于下载代码仓库归档文件的重定向 URL。此 URL 在 1 分钟后过期。在响应标头中查找 Location: 以找到下载的 URL。:archive_format 必须为 zip

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

“下载工件”的细粒度访问令牌

此端点可与以下细粒度令牌类型配合使用:

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

  • “Actions” 代码仓库权限(读取)

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

“下载工件”的参数

标头
名称、类型、描述
accept 字符串

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

路径参数
名称、类型、描述
owner 字符串 必需

代码仓库的账户所有者。名称不区分大小写。

repo 字符串 必需

代码仓库的名称,不含 .git 扩展名。名称不区分大小写。

artifact_id 整数 必需

工件的唯一标识符。

archive_format 字符串 必需

“下载工件”的 HTTP 响应状态代码

状态代码描述
302

已找到

410

已消失

“下载工件”的代码示例

请求示例

get/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}
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/artifacts/ARTIFACT_ID/ARCHIVE_FORMAT

响应

状态:302

列出工作流运行工件

列出工作流运行的工件。

任何拥有代码仓库读取权限的用户都可以使用此端点。

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

“列出工作流运行工件”的细粒度访问令牌

此端点可与以下细粒度令牌类型配合使用:

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

  • “Actions” 代码仓库权限(读取)

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

“列出工作流运行工件”的参数

标头
名称、类型、描述
accept 字符串

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

路径参数
名称、类型、描述
owner 字符串 必需

代码仓库的账户所有者。名称不区分大小写。

repo 字符串 必需

代码仓库的名称,不含 .git 扩展名。名称不区分大小写。

run_id 整数 必需

工作流运行的唯一标识符。

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

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

默认值: 30

page 整数

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

默认值: 1

name 字符串

工件的名称字段。指定后,仅返回具有此名称的工件。

“列出工作流运行工件”的 HTTP 响应状态代码

状态代码描述
200

OK

“列出工作流运行工件”的代码示例

请求示例

get/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts
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/runs/RUN_ID/artifacts

响应

状态:200
{ "total_count": 2, "artifacts": [ { "id": 11, "node_id": "MDg6QXJ0aWZhY3QxMQ==", "name": "Rails", "size_in_bytes": 556, "url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11", "archive_download_url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11/zip", "expired": false, "created_at": "2020-01-10T14:59:22Z", "expires_at": "2020-03-21T14:59:22Z", "updated_at": "2020-02-21T14:59:22Z", "workflow_run": { "id": 2332938, "repository_id": 1296269, "head_repository_id": 1296269, "head_branch": "main", "head_sha": "328faa0536e6fef19753d9d91dc96a9931694ce3" } }, { "id": 13, "node_id": "MDg6QXJ0aWZhY3QxMw==", "name": "Test output", "size_in_bytes": 453, "url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13", "archive_download_url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13/zip", "expired": false, "created_at": "2020-01-10T14:59:22Z", "expires_at": "2020-03-21T14:59:22Z", "updated_at": "2020-02-21T14:59:22Z", "workflow_run": { "id": 2332942, "repository_id": 1296269, "head_repository_id": 1296269, "head_branch": "main", "head_sha": "178f4f6090b3fccad4a65b3e83d076a622d59652" } } ] }