Skip to main content
The REST API is now versioned. For more information, see "About API versioning."

Custom properties

Use the REST API to manage custom properties for your enterprise.

Get custom properties for an enterprise

Gets all custom properties defined for an enterprise. Enterprise members can read these properties.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Custom properties" enterprise permissions (read)

Parameters for "Get custom properties for an enterprise"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
enterprise string Required

The slug version of the enterprise name.

http_status_code

status_codeDescription
200

OK

403

Forbidden

404

Resource not found

code_samples

request_example

get/enterprises/{enterprise}/properties/schema
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/properties/schema

Response

Status: 200
[ { "property_name": "environment", "url": "https://HOSTNAME/orgs/github/properties/schema/environment", "source_type": "organization", "value_type": "single_select", "required": true, "default_value": "production", "description": "Prod or dev environment", "allowed_values": [ "production", "development" ], "values_editable_by": "org_actors", "require_explicit_values": true }, { "property_name": "service", "url": "https://HOSTNAME/orgs/github/properties/schema/service", "source_type": "organization", "value_type": "string" }, { "property_name": "team", "url": "https://HOSTNAME/orgs/github/properties/schema/team", "source_type": "organization", "value_type": "string", "description": "Team owning the repository" } ]

Create or update custom properties for an enterprise

Creates new or updates existing custom properties defined for an enterprise in a batch.

If the property already exists, the existing property will be replaced with the new values. Missing optional values will fall back to default values, previous values will be overwritten. E.g. if a property exists with values_editable_by: org_and_repo_actors and it's updated without specifying values_editable_by, it will be updated to default value org_actors.

To use this endpoint, the authenticated user must be an administrator for the enterprise.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Custom properties" enterprise permissions (write)

Parameters for "Create or update custom properties for an enterprise"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
enterprise string Required

The slug version of the enterprise name.

Body parameters
Name, Type, Description
properties array of objects Required

The array of custom properties to create or update.

Name, Type, Description
property_name string Required

The name of the property

url string

The URL that can be used to fetch, update, or delete info about this property via the API.

source_type string

The source type of the property

Can be one of: organization, enterprise

value_type string Required

The type of the value for the property

Can be one of: string, single_select, multi_select, true_false

required boolean

Whether the property is required.

default_value null or string or array

Default value of the property

description string or null

Short description of the property

allowed_values array of strings or null

An ordered list of the allowed values of the property. The property can have up to 200 allowed values.

values_editable_by string or null

Who can edit the values of the property

Can be one of: org_actors, org_and_repo_actors, null

http_status_code

status_codeDescription
200

OK

403

Forbidden

404

Resource not found

code_samples

request_example

patch/enterprises/{enterprise}/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" \ http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/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"}]}'

Response

Status: 200
[ { "property_name": "environment", "url": "https://HOSTNAME/orgs/github/properties/schema/environment", "source_type": "organization", "value_type": "single_select", "required": true, "default_value": "production", "description": "Prod or dev environment", "allowed_values": [ "production", "development" ], "values_editable_by": "org_actors", "require_explicit_values": true }, { "property_name": "service", "url": "https://HOSTNAME/orgs/github/properties/schema/service", "source_type": "organization", "value_type": "string" }, { "property_name": "team", "url": "https://HOSTNAME/orgs/github/properties/schema/team", "source_type": "organization", "value_type": "string", "description": "Team owning the repository" } ]

Promote a custom property to an enterprise

Promotes an existing organization custom property to an enterprise.

To use this endpoint, the authenticated user must be an administrator for the enterprise.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Custom properties" enterprise permissions (write)

Parameters for "Promote a custom property to an enterprise"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
enterprise string Required

The slug version of the enterprise name.

org string Required

The organization name. The name is not case sensitive.

custom_property_name string Required

The custom property name

http_status_code

status_codeDescription
200

OK

403

Forbidden

404

Resource not found

code_samples

request_example

put/enterprises/{enterprise}/properties/schema/organizations/{org}/{custom_property_name}/promote
curl -L \ -X PUT \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/properties/schema/organizations/ORG/CUSTOM_PROPERTY_NAME/promote

Response

Status: 200
{ "property_name": "environment", "url": "https://HOSTNAME/orgs/github/properties/schema/environment", "source_type": "organization", "value_type": "single_select", "required": true, "default_value": "production", "description": "Prod or dev environment", "allowed_values": [ "production", "development" ] }

Get a custom property for an enterprise

Gets a custom property that is defined for an enterprise. Enterprise members can read these properties.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Custom properties" enterprise permissions (read)

Parameters for "Get a custom property for an enterprise"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
enterprise string Required

The slug version of the enterprise name.

custom_property_name string Required

The custom property name

http_status_code

status_codeDescription
200

OK

403

Forbidden

404

Resource not found

code_samples

request_example

get/enterprises/{enterprise}/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" \ http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/properties/schema/CUSTOM_PROPERTY_NAME

Response

Status: 200
{ "property_name": "environment", "url": "https://HOSTNAME/orgs/github/properties/schema/environment", "source_type": "organization", "value_type": "single_select", "required": true, "default_value": "production", "description": "Prod or dev environment", "allowed_values": [ "production", "development" ] }

Create or update a custom property for an enterprise

Creates a new or updates an existing custom property that is defined for an enterprise.

To use this endpoint, the authenticated user must be an administrator for the enterprise.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Custom properties" enterprise permissions (write)

Parameters for "Create or update a custom property for an enterprise"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
enterprise string Required

The slug version of the enterprise name.

custom_property_name string Required

The custom property name

Body parameters
Name, Type, Description
value_type string Required

The type of the value for the property

Can be one of: string, single_select, multi_select, true_false

required boolean

Whether the property is required.

default_value null or string or array

Default value of the property

description string or null

Short description of the property

allowed_values array of strings or null

An ordered list of the allowed values of the property. The property can have up to 200 allowed values.

values_editable_by string or null

Who can edit the values of the property

Can be one of: org_actors, org_and_repo_actors, null

http_status_code

status_codeDescription
200

OK

403

Forbidden

404

Resource not found

code_samples

request_example

put/enterprises/{enterprise}/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" \ http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/properties/schema/CUSTOM_PROPERTY_NAME \ -d '{"value_type":"single_select","required":true,"default_value":"production","description":"Prod or dev environment","allowed_values":["production","development"]}'

Response

Status: 200
{ "property_name": "environment", "url": "https://HOSTNAME/orgs/github/properties/schema/environment", "source_type": "organization", "value_type": "single_select", "required": true, "default_value": "production", "description": "Prod or dev environment", "allowed_values": [ "production", "development" ] }

Remove a custom property for an enterprise

Remove a custom property that is defined for an enterprise.

To use this endpoint, the authenticated user must be an administrator for the enterprise.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Custom properties" enterprise permissions (write)

Parameters for "Remove a custom property for an enterprise"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
enterprise string Required

The slug version of the enterprise name.

custom_property_name string Required

The custom property name

http_status_code

status_codeDescription
204

A header with no content is returned.

403

Forbidden

404

Resource not found

code_samples

request_example

delete/enterprises/{enterprise}/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" \ http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/properties/schema/CUSTOM_PROPERTY_NAME

A header with no content is returned.

Status: 204