{"meta":{"title":"用于Copilot云代理管理的 REST API 终结点","intro":"使用 REST API 管理 Copilot cloud agent 的设置。","product":"REST API","breadcrumbs":[{"href":"/zh/rest","title":"REST API"},{"href":"/zh/rest/copilot","title":"Copilot"},{"href":"/zh/rest/copilot/copilot-coding-agent-management","title":"Copilot云代理管理"}],"documentType":"article"},"body":"# 用于Copilot云代理管理的 REST API 终结点\n\n使用 REST API 管理 Copilot cloud agent 的设置。\n\n> [!NOTE]\n> Most endpoints use `Authorization: Bearer <YOUR-TOKEN>` and `Accept: application/vnd.github+json` headers, plus `X-GitHub-Api-Version: 2026-03-10`. Curl examples below omit these standard headers for brevity.\n\n## Set the coding agent policy for an enterprise\n\n```\nPUT /enterprises/{enterprise}/copilot/policies/coding_agent\n```\n\nSets the policy for Copilot cloud agent usage across an enterprise.\nEnterprise owners can configure whether Copilot cloud agent is enabled for all\norganizations, disabled for all organizations, configured by individual organization\nadmins, or enabled for selected organizations only.\nOnly enterprise owners can set the coding agent policy for their enterprise.\nOAuth app tokens and personal access tokens (classic) need either the manage_billing:copilot or admin:enterprise scopes to use this endpoint.\n\n### Parameters\n\n#### Headers\n\n- **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n- **`enterprise`** (string) (required)\n  The slug version of the enterprise name.\n\n#### Body parameters\n\n- **`policy_state`** (string) (required)\n  The policy state for Copilot cloud agent in the enterprise. Can be one of enabled_for_all_orgs, disabled_for_all_orgs, enabled_for_selected_orgs, or configured_by_org_admins.\n  Can be one of: `enabled_for_all_orgs`, `disabled_for_all_orgs`, `enabled_for_selected_orgs`, `configured_by_org_admins`\n\n### HTTP response status codes\n\n- **204** - A header with no content is returned.\n\n- **400** - Bad Request\n\n### Code examples\n\n#### Enable coding agent for all organizations\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X PUT \\\n  https://api.github.com/enterprises/ENTERPRISE/copilot/policies/coding_agent \\\n  -d '{\n  \"policy_state\": \"enabled_for_all_orgs\"\n}'\n```\n\n**Response schema (Status: 204):**\n\n## Add organizations to the enterprise coding agent policy\n\n```\nPOST /enterprises/{enterprise}/copilot/policies/coding_agent/organizations\n```\n\nEnables Copilot cloud agent for the specified organizations within the enterprise.\nThe enterprise's coding agent policy must be set to enabled_for_selected_orgs before\nusing this endpoint. Organizations can be specified by login or matched via custom properties.\nOnly organizations that have Copilot enabled and belong to the enterprise will be affected.\nOnly enterprise owners can add organizations to the coding agent policy.\nOAuth app tokens and personal access tokens (classic) need either the manage_billing:copilot or admin:enterprise scopes to use this endpoint.\n\n### Parameters\n\n#### Headers\n\n- **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n- **`enterprise`** (string) (required)\n  The slug version of the enterprise name.\n\n#### Body parameters\n\n- **`organizations`** (array of strings)\n  List of organization logins within the enterprise to enable Copilot cloud agent for.\n\n- **`custom_properties`** (array of objects)\n  List of custom property filters to match organizations. Organizations matching any of the specified property name/value pairs will be included. This is a one-time operation, setting the property on an organization in the future will not automatically update its coding agent policy.\n  - **`property_name`** (string) (required)\n    The name of the custom property to filter by.\n  - **`values`** (array of strings) (required)\n    The values of the custom property to match.\n\n### HTTP response status codes\n\n- **204** - A header with no content is returned.\n\n- **400** - Bad Request\n\n### Code examples\n\n#### Add organizations that match a login or have a custom property\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X POST \\\n  https://api.github.com/enterprises/ENTERPRISE/copilot/policies/coding_agent/organizations \\\n  -d '{\n  \"organizations\": [\n    \"my-org-1\",\n    \"my-org-2\"\n  ],\n  \"custom_properties\": [\n    {\n      \"property_name\": \"department\",\n      \"values\": [\n        \"engineering\",\n        \"security\"\n      ]\n    }\n  ]\n}'\n```\n\n**Response schema (Status: 204):**\n\n## Remove organizations from the enterprise coding agent policy\n\n```\nDELETE /enterprises/{enterprise}/copilot/policies/coding_agent/organizations\n```\n\nDisables Copilot cloud agent for the specified organizations within the enterprise.\nThe enterprise's coding agent policy must be set to enabled_for_selected_orgs before\nusing this endpoint. Organizations can be specified by login or matched via custom properties.\nOnly organizations that have Copilot enabled and belong to the enterprise will be affected.\nOnly enterprise owners can remove organizations from the coding agent policy.\nOAuth app tokens and personal access tokens (classic) need either the manage_billing:copilot or admin:enterprise scopes to use this endpoint.\n\n### Parameters\n\n#### Headers\n\n- **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n- **`enterprise`** (string) (required)\n  The slug version of the enterprise name.\n\n#### Body parameters\n\n- **`organizations`** (array of strings)\n  List of organization logins within the enterprise to disable Copilot cloud agent for.\n\n- **`custom_properties`** (array of objects)\n  List of custom property filters to match organizations. Organizations matching any of the specified property name/value pairs will be included. This is a one-time operation, setting the property on an organization in the future will not automatically update its coding agent policy.\n  - **`property_name`** (string) (required)\n    The name of the custom property to filter by.\n  - **`values`** (array of strings) (required)\n    The values of the custom property to match.\n\n### HTTP response status codes\n\n- **204** - A header with no content is returned.\n\n- **400** - Bad Request\n\n### Code examples\n\n#### Remove organizations that match a login or have a custom property\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X DELETE \\\n  https://api.github.com/enterprises/ENTERPRISE/copilot/policies/coding_agent/organizations \\\n  -d '{\n  \"organizations\": [\n    \"my-org-1\",\n    \"my-org-2\"\n  ],\n  \"custom_properties\": [\n    {\n      \"property_name\": \"department\",\n      \"values\": [\n        \"engineering\",\n        \"security\"\n      ]\n    }\n  ]\n}'\n```\n\n**Response schema (Status: 204):**\n\n## Get Copilot cloud agent permissions for an organization\n\n```\nGET /orgs/{org}/copilot/coding-agent/permissions\n```\n\nNote\n\nThis endpoint is in public preview and is subject to change.\n\nGets information about which repositories in an organization have been enabled\nor disabled for the Copilot cloud agent.\nOrganization owners can configure whether Copilot cloud agent is enabled for\nall repositories, selected repositories, or no repositories owned by organization.\nOAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.\n\n### Parameters\n\n#### Headers\n\n- **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n- **`org`** (string) (required)\n  The organization name. The name is not case sensitive.\n\n### HTTP response status codes\n\n- **200** - OK\n\n- **401** - Requires authentication\n\n- **403** - Forbidden\n\n- **404** - Resource not found\n\n- **500** - Internal Error\n\n### Code examples\n\n#### Example 1: Status Code 200\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  https://api.github.com/orgs/ORG/copilot/coding-agent/permissions\n```\n\n**Response schema (Status: 200):**\n\n* `enabled_repositories`: required, string, enum: `all`, `selected`, `none`\n* `selected_repositories_url`: string\n\n#### Example 2: Status Code 200\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  https://api.github.com/orgs/ORG/copilot/coding-agent/permissions\n```\n\n**Response schema (Status: 200):**\n\n* `enabled_repositories`: required, string, enum: `all`, `selected`, `none`\n* `selected_repositories_url`: string\n\n#### Example 3: Status Code 200\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  https://api.github.com/orgs/ORG/copilot/coding-agent/permissions\n```\n\n**Response schema (Status: 200):**\n\n* `enabled_repositories`: required, string, enum: `all`, `selected`, `none`\n* `selected_repositories_url`: string\n\n## Set Copilot cloud agent permissions for an organization\n\n```\nPUT /orgs/{org}/copilot/coding-agent/permissions\n```\n\nNote\n\nThis endpoint is in public preview and is subject to change.\n\nSets the policy for which repositories in an organization can use Copilot cloud agent.\nOrganization owners can configure whether Copilot cloud agent is enabled for\nall repositories, selected repositories, or no repositories owned by the organization.\nOAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.\n\n### Parameters\n\n#### Headers\n\n- **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n- **`org`** (string) (required)\n  The organization name. The name is not case sensitive.\n\n#### Body parameters\n\n- **`enabled_repositories`** (string) (required)\n  The policy for which repositories can use Copilot cloud agent. Can be one of all, selected, or none.\n  Can be one of: `all`, `selected`, `none`\n\n### HTTP response status codes\n\n- **204** - No Content\n\n- **401** - Requires authentication\n\n- **403** - Forbidden\n\n- **404** - Resource not found\n\n- **422** - Validation failed, or the endpoint has been spammed.\n\n- **500** - Internal Error\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X PUT \\\n  https://api.github.com/orgs/ORG/copilot/coding-agent/permissions \\\n  -d '{\n  \"enabled_repositories\": \"selected\"\n}'\n```\n\n**Response schema (Status: 204):**\n\n## List repositories enabled for Copilot cloud agent in an organization\n\n```\nGET /orgs/{org}/copilot/coding-agent/permissions/repositories\n```\n\nNote\n\nThis endpoint is in public preview and is subject to change.\n\nLists the selected repositories that are enabled for Copilot cloud agent in an organization.\nOrganization owners can use this endpoint when the coding agent repository policy\nis set to selected to see which repositories have been enabled.\nOAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.\n\n### Parameters\n\n#### Headers\n\n- **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n- **`org`** (string) (required)\n  The organization name. The name is not case sensitive.\n\n- **`per_page`** (integer)\n  The number of results per page (max 100). For more information, see \"Using pagination in the REST API.\"\n  Default: `30`\n\n- **`page`** (integer)\n  The page number of the results to fetch. For more information, see \"Using pagination in the REST API.\"\n  Default: `1`\n\n### HTTP response status codes\n\n- **200** - OK\n\n- **401** - Requires authentication\n\n- **403** - Forbidden\n\n- **404** - Resource not found\n\n- **409** - Conflict\n\n- **500** - Internal Error\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  https://api.github.com/orgs/ORG/copilot/coding-agent/permissions/repositories\n```\n\n**Response schema (Status: 200):**\n\n* `total_count`: required, integer\n* `repositories`: required, array of `Minimal Repository`:\n  * `id`: required, integer, format: int64\n  * `node_id`: required, string\n  * `name`: required, string\n  * `full_name`: required, string\n  * `owner`: required, `Simple User`:\n    * `name`: string or null\n    * `email`: string or null\n    * `login`: required, string\n    * `id`: required, integer, format: int64\n    * `node_id`: required, string\n    * `avatar_url`: required, string, format: uri\n    * `gravatar_id`: required, string or null\n    * `url`: required, string, format: uri\n    * `html_url`: required, string, format: uri\n    * `followers_url`: required, string, format: uri\n    * `following_url`: required, string\n    * `gists_url`: required, string\n    * `starred_url`: required, string\n    * `subscriptions_url`: required, string, format: uri\n    * `organizations_url`: required, string, format: uri\n    * `repos_url`: required, string, format: uri\n    * `events_url`: required, string\n    * `received_events_url`: required, string, format: uri\n    * `type`: required, string\n    * `site_admin`: required, boolean\n    * `starred_at`: string\n    * `user_view_type`: string\n  * `private`: required, boolean\n  * `html_url`: required, string, format: uri\n  * `description`: required, string or null\n  * `fork`: required, boolean\n  * `url`: required, string, format: uri\n  * `archive_url`: required, string\n  * `assignees_url`: required, string\n  * `blobs_url`: required, string\n  * `branches_url`: required, string\n  * `collaborators_url`: required, string\n  * `comments_url`: required, string\n  * `commits_url`: required, string\n  * `compare_url`: required, string\n  * `contents_url`: required, string\n  * `contributors_url`: required, string, format: uri\n  * `deployments_url`: required, string, format: uri\n  * `downloads_url`: required, string, format: uri\n  * `events_url`: required, string, format: uri\n  * `forks_url`: required, string, format: uri\n  * `git_commits_url`: required, string\n  * `git_refs_url`: required, string\n  * `git_tags_url`: required, string\n  * `git_url`: string\n  * `issue_comment_url`: required, string\n  * `issue_events_url`: required, string\n  * `issues_url`: required, string\n  * `keys_url`: required, string\n  * `labels_url`: required, string\n  * `languages_url`: required, string, format: uri\n  * `merges_url`: required, string, format: uri\n  * `milestones_url`: required, string\n  * `notifications_url`: required, string\n  * `pulls_url`: required, string\n  * `releases_url`: required, string\n  * `ssh_url`: string\n  * `stargazers_url`: required, string, format: uri\n  * `statuses_url`: required, string\n  * `subscribers_url`: required, string, format: uri\n  * `subscription_url`: required, string, format: uri\n  * `tags_url`: required, string, format: uri\n  * `teams_url`: required, string, format: uri\n  * `trees_url`: required, string\n  * `clone_url`: string\n  * `mirror_url`: string or null\n  * `hooks_url`: required, string, format: uri\n  * `svn_url`: string\n  * `homepage`: string or null\n  * `language`: string or null\n  * `forks_count`: integer\n  * `stargazers_count`: integer\n  * `watchers_count`: integer\n  * `size`: integer\n  * `default_branch`: string\n  * `open_issues_count`: integer\n  * `is_template`: boolean\n  * `topics`: array of string\n  * `has_issues`: boolean\n  * `has_projects`: boolean\n  * `has_wiki`: boolean\n  * `has_pages`: boolean\n  * `has_discussions`: boolean\n  * `has_pull_requests`: boolean\n  * `pull_request_creation_policy`: string, enum: `all`, `collaborators_only`\n  * `archived`: boolean\n  * `disabled`: boolean\n  * `visibility`: string\n  * `pushed_at`: string or null, format: date-time\n  * `created_at`: string or null, format: date-time\n  * `updated_at`: string or null, format: date-time\n  * `permissions`: object:\n    * `admin`: boolean\n    * `maintain`: boolean\n    * `push`: boolean\n    * `triage`: boolean\n    * `pull`: boolean\n  * `role_name`: string\n  * `temp_clone_token`: string\n  * `delete_branch_on_merge`: boolean\n  * `subscribers_count`: integer\n  * `network_count`: integer\n  * `code_of_conduct`: `Code Of Conduct`:\n    * `key`: required, string\n    * `name`: required, string\n    * `url`: required, string, format: uri\n    * `body`: string\n    * `html_url`: required, string or null, format: uri\n  * `license`: object or null:\n    * `key`: string\n    * `name`: string\n    * `spdx_id`: string\n    * `url`: string or null\n    * `node_id`: string\n  * `forks`: integer\n  * `open_issues`: integer\n  * `watchers`: integer\n  * `allow_forking`: boolean\n  * `web_commit_signoff_required`: boolean\n  * `security_and_analysis`: object or null:\n    * `advanced_security`: object:\n      * `status`: string, enum: `enabled`, `disabled`\n    * `code_security`: object:\n      * `status`: string, enum: `enabled`, `disabled`\n    * `dependabot_security_updates`: object:\n      * `status`: string, enum: `enabled`, `disabled`\n    * `secret_scanning`: object:\n      * `status`: string, enum: `enabled`, `disabled`\n    * `secret_scanning_push_protection`: object:\n      * `status`: string, enum: `enabled`, `disabled`\n    * `secret_scanning_non_provider_patterns`: object:\n      * `status`: string, enum: `enabled`, `disabled`\n    * `secret_scanning_ai_detection`: object:\n      * `status`: string, enum: `enabled`, `disabled`\n    * `secret_scanning_delegated_alert_dismissal`: object:\n      * `status`: string, enum: `enabled`, `disabled`\n    * `secret_scanning_delegated_bypass`: object:\n      * `status`: string, enum: `enabled`, `disabled`\n    * `secret_scanning_delegated_bypass_options`: object:\n      * `reviewers`: array of objects:\n        * `reviewer_id`: required, integer\n        * `reviewer_type`: required, string, enum: `TEAM`, `ROLE`\n        * `mode`: string, enum: `ALWAYS`, `EXEMPT`, default: `\"ALWAYS\"`\n  * `custom_properties`: object, additional properties allowed\n\n## Set selected repositories for Copilot cloud agent in an organization\n\n```\nPUT /orgs/{org}/copilot/coding-agent/permissions/repositories\n```\n\nNote\n\nThis endpoint is in public preview and is subject to change.\n\nReplaces the list of selected repositories that are enabled for Copilot cloud\nagent in an organization. This method can only be called when the cloud agent\nrepository policy is set to selected.\nOAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.\n\n### Parameters\n\n#### Headers\n\n- **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n- **`org`** (string) (required)\n  The organization name. The name is not case sensitive.\n\n#### Body parameters\n\n- **`selected_repository_ids`** (array of integers) (required)\n  List of repository IDs to enable for Copilot cloud agent.\n\n### HTTP response status codes\n\n- **204** - No Content\n\n- **401** - Requires authentication\n\n- **403** - Forbidden\n\n- **404** - Resource not found\n\n- **409** - Conflict\n\n- **422** - Validation failed, or the endpoint has been spammed.\n\n- **500** - Internal Error\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X PUT \\\n  https://api.github.com/orgs/ORG/copilot/coding-agent/permissions/repositories \\\n  -d '{\n  \"selected_repository_ids\": [\n    32,\n    42\n  ]\n}'\n```\n\n**Response schema (Status: 204):**\n\n## Enable a repository for Copilot cloud agent in an organization\n\n```\nPUT /orgs/{org}/copilot/coding-agent/permissions/repositories/{repository_id}\n```\n\nNote\n\nThis endpoint is in public preview and is subject to change.\n\nAdds a repository to the list of selected repositories enabled for Copilot\ncloud agent in an organization. This method can only be called when the\ncloud agent repository policy is set to selected.\nOAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.\n\n### Parameters\n\n#### Headers\n\n- **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n- **`org`** (string) (required)\n  The organization name. The name is not case sensitive.\n\n- **`repository_id`** (integer) (required)\n  The unique identifier of the repository.\n\n### HTTP response status codes\n\n- **204** - No Content\n\n- **401** - Requires authentication\n\n- **403** - Forbidden\n\n- **404** - Resource not found\n\n- **409** - Conflict\n\n- **422** - Validation failed, or the endpoint has been spammed.\n\n- **500** - Internal Error\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X PUT \\\n  https://api.github.com/orgs/ORG/copilot/coding-agent/permissions/repositories/REPOSITORY_ID\n```\n\n**Response schema (Status: 204):**\n\n## Disable a repository for Copilot cloud agent in an organization\n\n```\nDELETE /orgs/{org}/copilot/coding-agent/permissions/repositories/{repository_id}\n```\n\nNote\n\nThis endpoint is in public preview and is subject to change.\n\nRemoves a repository from the list of selected repositories enabled for Copilot\ncloud agent in an organization. This method can only be called when the\ncloud agent repository policy is set to selected.\nOAuth app tokens and personal access tokens (classic) need the admin:org scopes to use this endpoint.\n\n### Parameters\n\n#### Headers\n\n- **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n- **`org`** (string) (required)\n  The organization name. The name is not case sensitive.\n\n- **`repository_id`** (integer) (required)\n  The unique identifier of the repository.\n\n### HTTP response status codes\n\n- **204** - No Content\n\n- **401** - Requires authentication\n\n- **403** - Forbidden\n\n- **404** - Resource not found\n\n- **409** - Conflict\n\n- **500** - Internal Error\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X DELETE \\\n  https://api.github.com/orgs/ORG/copilot/coding-agent/permissions/repositories/REPOSITORY_ID\n```\n\n**Response schema (Status: 204):**"}