跳至主要内容
REST API 现已版本化。 有关详细信息,请参阅“关于 API 版本化”。

自定义属性的 REST API 端点

使用 REST API 为组织创建和管理自定义属性。

关于自定义属性

你可以使用 REST API 为组织创建和管理自定义属性。你可以使用自定义属性向组织中的存储库添加元数据。有关详细信息,请参阅“管理组织中存储库的自定义属性”。

获取组织的所有自定义属性

获取为组织定义的所有自定义属性。组织成员可以读取这些属性。

“获取组织的所有自定义属性”的细粒度访问令牌

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

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

  • “自定义属性”组织权限(读取)

“获取组织的所有自定义属性”的参数

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

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

路径参数
名称、类型、说明
org 字符串 必需

组织名称。该名称不区分大小写。

“获取组织的所有自定义属性”的 HTTP 响应状态代码

状态代码说明
200

确定

403

禁止

404

找不到资源

“获取组织的所有自定义属性”的代码示例

请求示例

get/orgs/{org}/properties/schema
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/orgs/ORG/properties/schema

响应

状态:200
[ { "property_name": "environment", "value_type": "single_select", "required": true, "default_value": "production", "description": "Prod or dev environment", "allowed_values": [ "production", "development" ], "values_editable_by": "org_actors" }, { "property_name": "service", "value_type": "string" }, { "property_name": "team", "value_type": "string", "description": "Team owning the repository" } ]

创建或更新组织的自定义属性

批量创建新自定义属性或更新组织中定义的现有自定义属性。

要使用此端点,经过身份验证的用户必须是以下之一

  • 组织的管理员。
  • 组织中拥有 custom_properties_org_definitions_manager 细粒度权限的用户或团队中的用户。

“创建或更新组织的自定义属性”的细粒度访问令牌

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

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

  • “自定义属性”组织权限(管理员)

“为组织创建或更新自定义属性”的参数

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

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

路径参数
名称、类型、说明
org 字符串 必需

组织名称。该名称不区分大小写。

正文参数
名称、类型、说明
properties 对象数组 必需

要创建或更新的自定义属性数组。

名称、类型、说明
property_name 字符串 必需

属性的名称

value_type 字符串 必需

属性值的类型

可以是以下之一:: string, single_select, multi_select, true_false

required 布尔值

属性是否必需。

default_value 空值或字符串或数组

属性的默认值

description 字符串或空值

属性的简短描述

allowed_values 字符串数组或空值

属性允许值的顺序列表。该属性最多可以有 200 个允许值。

values_editable_by 字符串或空值

谁可以编辑属性的值

可以是以下之一:: org_actors, org_and_repo_actors, null

“为组织创建或更新自定义属性”的 HTTP 响应状态代码

状态代码说明
200

确定

403

禁止

404

找不到资源

“为组织创建或更新自定义属性”的代码示例

请求示例

patch/orgs/{org}/properties/schema
curl -L \ -X PATCH \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/orgs/ORG/properties/schema \ -d '{"properties":[{"property_name":"environment","value_type":"single_select","required":true,"default_value":"production","description":"Prod or dev environment","allowed_values":["production","development"],"values_editable_by":"org_actors"},{"property_name":"service","value_type":"string"},{"property_name":"team","value_type":"string","description":"Team owning the repository"}]}'

响应

状态:200
[ { "property_name": "environment", "value_type": "single_select", "required": true, "default_value": "production", "description": "Prod or dev environment", "allowed_values": [ "production", "development" ], "values_editable_by": "org_actors" }, { "property_name": "service", "value_type": "string" }, { "property_name": "team", "value_type": "string", "description": "Team owning the repository" } ]

获取组织的自定义属性

获取为组织定义的自定义属性。组织成员可以读取这些属性。

“获取组织的自定义属性”的细粒度访问令牌

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

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

  • “自定义属性”组织权限(读取)

“获取组织的自定义属性”的参数

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

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

路径参数
名称、类型、说明
org 字符串 必需

组织名称。该名称不区分大小写。

custom_property_name 字符串 必需

自定义属性名称。名称区分大小写。

“获取组织的自定义属性”的 HTTP 响应状态代码

状态代码说明
200

确定

403

禁止

404

找不到资源

“获取组织的自定义属性”的代码示例

请求示例

get/orgs/{org}/properties/schema/{custom_property_name}
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/orgs/ORG/properties/schema/CUSTOM_PROPERTY_NAME

响应

状态:200
{ "property_name": "environment", "value_type": "single_select", "required": true, "default_value": "production", "description": "Prod or dev environment", "allowed_values": [ "production", "development" ] }

创建或更新组织的自定义属性

创建新的或更新为组织定义的现有自定义属性。

要使用此端点,经过身份验证的用户必须是以下之一

  • 组织的管理员。
  • 组织中拥有 custom_properties_org_definitions_manager 细粒度权限的用户或团队中的用户。

“创建或更新组织的自定义属性”的细粒度访问令牌

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

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

  • “自定义属性”组织权限(管理员)

“创建或更新组织的自定义属性”的参数

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

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

路径参数
名称、类型、说明
org 字符串 必需

组织名称。该名称不区分大小写。

custom_property_name 字符串 必需

自定义属性名称。名称区分大小写。

正文参数
名称、类型、说明
value_type 字符串 必需

属性值的类型

可以是以下之一:: string, single_select, multi_select, true_false

required 布尔值

属性是否必需。

default_value 空值或字符串或数组

属性的默认值

description 字符串或空值

属性的简短描述

allowed_values 字符串数组或空值

属性允许值的顺序列表。该属性最多可以有 200 个允许值。

“创建或更新组织的自定义属性”的 HTTP 响应状态代码

状态代码说明
200

确定

403

禁止

404

找不到资源

“创建或更新组织的自定义属性”的代码示例

请求示例

put/orgs/{org}/properties/schema/{custom_property_name}
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/orgs/ORG/properties/schema/CUSTOM_PROPERTY_NAME \ -d '{"value_type":"single_select","required":true,"default_value":"production","description":"Prod or dev environment","allowed_values":["production","development"]}'

响应

状态:200
{ "property_name": "environment", "value_type": "single_select", "required": true, "default_value": "production", "description": "Prod or dev environment", "allowed_values": [ "production", "development" ] }

移除组织的自定义属性

移除为组织定义的自定义属性。

要使用此端点,经过身份验证的用户必须是以下之一

  • 组织的管理员。
  • 组织中拥有 custom_properties_org_definitions_manager 细粒度权限的用户或团队中的用户。

“移除组织的自定义属性”的细粒度访问令牌

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

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

  • “自定义属性”组织权限(管理员)

“移除组织的自定义属性”的参数

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

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

路径参数
名称、类型、说明
org 字符串 必需

组织名称。该名称不区分大小写。

custom_property_name 字符串 必需

自定义属性名称。名称区分大小写。

“移除组织的自定义属性”的 HTTP 响应状态代码

状态代码说明
204

返回不含内容的标头。

403

禁止

404

找不到资源

“移除组织的自定义属性”的代码示例

请求示例

delete/orgs/{org}/properties/schema/{custom_property_name}
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/orgs/ORG/properties/schema/CUSTOM_PROPERTY_NAME

返回不含内容的标头。

状态:204

列出组织仓库的自定义属性值

列出所有自定义属性值的组织仓库。组织成员可以读取这些属性。

“列出组织仓库的自定义属性值”的细粒度访问令牌

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

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

  • “自定义属性”组织权限(读取)

“列出组织仓库的自定义属性值”的参数

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

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

路径参数
名称、类型、说明
org 字符串 必需

组织名称。该名称不区分大小写。

查询参数
名称、类型、说明
per_page 整数

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

默认: 30

page 整数

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

默认: 1

repository_query 字符串

查找组织中包含一个或多个搜索关键字和限定符的查询的仓库。限定符允许您将搜索限制在 GitHub 的特定区域。REST API 支持与 GitHub Web 界面相同的限定符。要了解有关查询格式的更多信息,请参阅 构建搜索查询。有关限定符的详细列表,请参阅“搜索仓库”。

“列出组织仓库的自定义属性值”的 HTTP 响应状态代码

状态代码说明
200

确定

403

禁止

404

找不到资源

“列出组织仓库的自定义属性值”的代码示例

请求示例

get/orgs/{org}/properties/values
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/orgs/ORG/properties/values

响应

状态:200
[ { "repository_id": 1296269, "repository_name": "Hello-World", "repository_full_name": "octocat/Hello-World", "properties": [ { "property_name": "environment", "value": "production" }, { "property_name": "service", "value": "web" }, { "property_name": "team", "value": "octocat" } ] } ]

创建或更新组织仓库的自定义属性值

批量创建新自定义属性值或更新属于组织的仓库的现有自定义属性值。每个目标仓库的自定义属性值都将更新为与请求中提供的值相匹配。

单个请求中最多可以更新 30 个仓库。

为自定义属性使用 null 值将从存储库中移除或“取消设置”属性值。

要使用此端点,经过身份验证的用户必须是以下之一

  • 组织的管理员。
  • 组织中具有 custom_properties_org_values_editor 细粒度权限的用户或团队中的用户。

“为组织存储库创建或更新自定义属性值”的细粒度访问令牌

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

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

  • “自定义属性”组织权限(写入)

“为组织存储库创建或更新自定义属性值”的参数

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

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

路径参数
名称、类型、说明
org 字符串 必需

组织名称。该名称不区分大小写。

正文参数
名称、类型、说明
repository_names 字符串数组 必需

将应用自定义属性值的存储库名称。

properties 对象数组 必需

要应用于存储库的自定义属性名称和关联值的列表。

名称、类型、说明
property_name 字符串 必需

属性的名称

value null 或字符串或数组 必需

分配给该属性的值

“为组织存储库创建或更新自定义属性值”的 HTTP 响应状态代码

状态代码说明
204

当成功创建或更新自定义属性值时无内容

403

禁止

404

找不到资源

422

验证失败,或端点已受到垃圾邮件攻击。

“为组织存储库创建或更新自定义属性值”的代码示例

请求示例

patch/orgs/{org}/properties/values
curl -L \ -X PATCH \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/orgs/ORG/properties/values \ -d '{"repository_names":["Hello-World","octo-repo"],"properties":[{"property_name":"environment","value":"production"},{"property_name":"service","value":"web"},{"property_name":"team","value":"octocat"}]}'

当成功创建或更新自定义属性值时无内容

状态:204