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

用于存储库交互的 REST API 端点

使用 REST API 暂时限制哪些类型的用户可以在公共存储库中发表评论、打开问题或创建拉取请求。

谁可以使用此功能?

拥有公共存储库的所有者或管理员权限的人员可以暂时限制哪些类型的用户可以在公共存储库中发表评论、打开问题或创建拉取请求。

关于存储库交互

拥有所有者或管理员权限的人员可以使用 REST API 暂时限制哪些类型的用户可以在公共存储库中发表评论、打开问题或创建拉取请求。启用限制后,只有指定类型的 GitHub 用户才能参与交互。限制会在定义的持续时间后自动过期。以下是对 GitHub 用户类型的更多说明

  • 现有用户:当您将交互限制为 existing_users 时,帐户创建不到 24 小时且之前未贡献过且不是合作者的新用户将被暂时限制在存储库中。
  • 仅限贡献者:当您将交互限制为 contributors_only 时,之前未贡献过且不是合作者的用户将被暂时限制在存储库中。
  • 仅限合作者:当您将交互限制为 collaborators_only 时,不是合作者的用户将被暂时限制在存储库中。

如果为拥有存储库的用户或组织启用了交互限制,则无法更改单个存储库的限制。相反,请使用 用户组织 交互端点更改交互限制。

获取存储库的交互限制

显示哪些类型的 GitHub 用户可以与该仓库交互以及限制何时到期。如果没有限制,您将看到一个空响应。

用于“获取仓库交互限制”的细粒度访问令牌

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

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

  • “管理”仓库权限(读取)

用于“获取仓库交互限制”的参数

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

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

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

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

repo string 必需

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

用于“获取仓库交互限制”的 HTTP 响应状态码

状态码描述
200

OK

用于“获取仓库交互限制”的代码示例

请求示例

get/repos/{owner}/{repo}/interaction-limits
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/interaction-limits

响应

状态:200
{ "limit": "collaborators_only", "origin": "repository", "expires_at": "2018-08-17T04:18:39Z" }

设置仓库交互限制

在给定仓库中暂时将交互限制为特定类型的 GitHub 用户。您必须具有所有者或管理员访问权限才能设置这些限制。如果为拥有此仓库的用户或组织设置了交互限制,您将收到409 Conflict响应,并且将无法使用此端点更改单个仓库的交互限制。

针对“设置仓库交互限制”的细粒度访问令牌

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

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

  • “管理”仓库权限(写入)

“设置仓库交互限制”的参数

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

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

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

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

repo string 必需

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

主体参数
名称、类型、描述
limit string 必需

在交互限制生效期间,可以评论、打开问题或创建拉取请求的 GitHub 用户类型。

可以是以下之一:: existing_users, contributors_only, collaborators_only

expiry string

交互限制的持续时间。默认值:one_day

可以是以下之一:: one_day, three_days, one_week, one_month, six_months

“设置仓库交互限制”的 HTTP 响应状态代码

状态码描述
200

OK

409

冲突

“设置仓库交互限制”的代码示例

请求示例

put/repos/{owner}/{repo}/interaction-limits
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/interaction-limits \ -d '{"limit":"collaborators_only","expiry":"one_day"}'

响应

状态:200
{ "limit": "collaborators_only", "origin": "repository", "expires_at": "2018-08-17T04:18:39Z" }

删除仓库的交互限制

从给定仓库中删除所有交互限制。您必须拥有所有者或管理员访问权限才能删除限制。如果交互限制是针对拥有此仓库的用户或组织设置的,您将收到 409 Conflict 响应,并且无法使用此端点更改单个仓库的交互限制。

针对“删除仓库交互限制”的细粒度访问令牌

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

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

  • “管理”仓库权限(写入)

“删除仓库交互限制”的参数

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

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

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

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

repo string 必需

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

“删除仓库交互限制”的 HTTP 响应状态代码

状态码描述
204

无内容

409

冲突

“删除仓库交互限制”的代码示例

请求示例

delete/repos/{owner}/{repo}/interaction-limits
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/interaction-limits

响应

状态:204