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

用于代码库交互的 REST API 端点

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

谁可以使用此功能?

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

关于代码库交互

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

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

如果为拥有代码库的用户或组织启用了交互限制,则无法更改单个代码库的限制。而是使用用户组织交互端点来更改交互限制。

获取代码库的交互限制

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

“获取代码库的交互限制”的细粒度访问令牌

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

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

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

“获取代码库的交互限制”的参数

标头
名称、类型、说明
accept 字符串

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

路径参数
名称、类型、说明
owner 字符串 必填

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

repo 字符串 必填

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

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

状态代码说明
200

确定

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

请求示例

获取/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 冲突响应,并且将无法使用此端点更改单个代码库的交互限制。

“设置代码库的交互限制”的细粒度访问令牌

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

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

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

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

标头
名称、类型、说明
accept 字符串

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

路径参数
名称、类型、说明
owner 字符串 必填

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

repo 字符串 必填

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

主体参数
名称、类型、说明
limit 字符串 必填

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

可以是以下之一: existing_userscontributors_onlycollaborators_only

expiry 字符串

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

可以是以下之一: one_daythree_daysone_weekone_monthsix_months

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

状态代码说明
200

确定

409

冲突

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

请求示例

放置/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 冲突响应,并且将无法使用此端点更改单个代码库的交互限制。

“删除代码库的交互限制”的细粒度访问令牌

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

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

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

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

标头
名称、类型、说明
accept 字符串

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

路径参数
名称、类型、说明
owner 字符串 必填

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

repo 字符串 必填

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

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

状态代码说明
204

无内容

409

冲突

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

请求示例

删除/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