REST API endpoints for GitHub Actions permissions
Use the REST API to interact with permissions for GitHub Actions.
About permissions for GitHub Actions
You can use the REST API to set permissions for the enterprises, organizations and repositories that are allowed to run GitHub Actions, and the actions and reusable workflows that are allowed to run. For more information, see Billing and usage.
Get GitHub Actions permissions for an enterprise
Gets the GitHub Actions permissions policy for organizations and allowed actions and reusable workflows in an enterprise.
OAuth app tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.
Fine-grained access tokens for "Get GitHub Actions permissions for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Get GitHub Actions permissions for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
HTTP response status codes for "Get GitHub Actions permissions for an enterprise"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "Get GitHub Actions permissions for an enterprise"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/enterprises/ENTERPRISE/actions/permissionsResponse
Status: 200{
  "enabled_organizations": "all",
  "allowed_actions": "selected",
  "selected_actions_url": "https://api.github.com/enterprises/2/actions/permissions/selected-actions",
  "sha_pinning_required": true
}Set GitHub Actions permissions for an enterprise
Sets the GitHub Actions permissions policy for organizations and allowed actions and reusable workflows in an enterprise.
OAuth app tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.
Fine-grained access tokens for "Set GitHub Actions permissions for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Set GitHub Actions permissions for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| Name, Type, Description | 
|---|
| enabled_organizationsstring RequiredThe policy that controls the organizations in the enterprise that are allowed to run GitHub Actions. Can be one of:  | 
| allowed_actionsstringThe permissions policy that controls the actions and reusable workflows that are allowed to run. Can be one of:  | 
| sha_pinning_requiredbooleanWhether actions must be pinned to a full-length commit SHA. | 
HTTP response status codes for "Set GitHub Actions permissions for an enterprise"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Set GitHub Actions permissions for an enterprise"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/enterprises/ENTERPRISE/actions/permissions \
  -d '{"enabled_organizations":"all","allowed_actions":"selected","sha_pinning_required":true}'Response
Status: 204Get artifact and log retention settings for an enterprise
Gets artifact and log retention settings for an enterprise.
Fine-grained access tokens for "Get artifact and log retention settings for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Get artifact and log retention settings for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
HTTP response status codes for "Get artifact and log retention settings for an enterprise"
| Status code | Description | 
|---|---|
| 200 | Successfully retrieved the artifact and log retention settings | 
| 401 | Authorization failure | 
| 404 | Resource not found | 
Code samples for "Get artifact and log retention settings for an enterprise"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/enterprises/ENTERPRISE/actions/permissions/artifact-and-log-retentionExample response
Status: 200{
  "days": 90,
  "maximum_allowed_days": 365
}Set artifact and log retention settings for an enterprise
Sets artifact and log retention settings for an enterprise.
Fine-grained access tokens for "Set artifact and log retention settings for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Set artifact and log retention settings for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| Name, Type, Description | 
|---|
| daysinteger RequiredThe number of days to retain artifacts and logs | 
HTTP response status codes for "Set artifact and log retention settings for an enterprise"
| Status code | Description | 
|---|---|
| 204 | Successfully updated the artifact and log retention settings | 
| 404 | Resource not found | 
| 422 | Validation failed, or the endpoint has been spammed. | 
Code samples for "Set artifact and log retention settings for an enterprise"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/enterprises/ENTERPRISE/actions/permissions/artifact-and-log-retention \
  -d '{"days":100}'Successfully updated the artifact and log retention settings
Status: 204Get fork PR contributor approval permissions for an enterprise
Gets the fork PR contributor approval policy for an enterprise.
Fine-grained access tokens for "Get fork PR contributor approval permissions for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Get fork PR contributor approval permissions for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
HTTP response status codes for "Get fork PR contributor approval permissions for an enterprise"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 404 | Resource not found | 
Code samples for "Get fork PR contributor approval permissions for an enterprise"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/enterprises/ENTERPRISE/actions/permissions/fork-pr-contributor-approvalResponse
Status: 200{
  "approval_policy": "first_time_contributors"
}Set fork PR contributor approval permissions for an enterprise
Sets the fork PR contributor approval policy for an enterprise.
Fine-grained access tokens for "Set fork PR contributor approval permissions for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Set fork PR contributor approval permissions for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| Name, Type, Description | 
|---|
| approval_policystring RequiredThe policy that controls when fork PR workflows require approval from a maintainer. Can be one of:  | 
HTTP response status codes for "Set fork PR contributor approval permissions for an enterprise"
| Status code | Description | 
|---|---|
| 204 | No Content | 
| 404 | Resource not found | 
| 422 | Validation failed, or the endpoint has been spammed. | 
Code samples for "Set fork PR contributor approval permissions for an enterprise"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/enterprises/ENTERPRISE/actions/permissions/fork-pr-contributor-approval \
  -d '{"approval_policy":"first_time_contributors"}'Response
Status: 204Get private repo fork PR workflow settings for an enterprise
Gets the settings for whether workflows from fork pull requests can run on private repositories in an enterprise.
Fine-grained access tokens for "Get private repo fork PR workflow settings for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Get private repo fork PR workflow settings for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
HTTP response status codes for "Get private repo fork PR workflow settings for an enterprise"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 404 | Resource not found | 
Code samples for "Get private repo fork PR workflow settings for an enterprise"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/enterprises/ENTERPRISE/actions/permissions/fork-pr-workflows-private-reposResponse
Status: 200{
  "run_workflows_from_fork_pull_requests": true,
  "send_write_tokens_to_workflows": false,
  "send_secrets_and_variables": false,
  "require_approval_for_fork_pr_workflows": true
}Set private repo fork PR workflow settings for an enterprise
Sets the settings for whether workflows from fork pull requests can run on private repositories in an enterprise.
Fine-grained access tokens for "Set private repo fork PR workflow settings for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Set private repo fork PR workflow settings for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| Name, Type, Description | 
|---|
| run_workflows_from_fork_pull_requestsboolean RequiredWhether workflows triggered by pull requests from forks are allowed to run on private repositories. | 
| send_write_tokens_to_workflowsbooleanWhether GitHub Actions can create pull requests or submit approving pull request reviews from a workflow triggered by a fork pull request. | 
| send_secrets_and_variablesbooleanWhether to make secrets and variables available to workflows triggered by pull requests from forks. | 
| require_approval_for_fork_pr_workflowsbooleanWhether workflows triggered by pull requests from forks require approval from a repository administrator to run. | 
HTTP response status codes for "Set private repo fork PR workflow settings for an enterprise"
| Status code | Description | 
|---|---|
| 204 | Empty response for successful settings update | 
| 404 | Resource not found | 
| 422 | Validation failed, or the endpoint has been spammed. | 
Code samples for "Set private repo fork PR workflow settings for an enterprise"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/enterprises/ENTERPRISE/actions/permissions/fork-pr-workflows-private-repos \
  -d '{"run_workflows_from_fork_pull_requests":true,"send_write_tokens_to_workflows":false,"send_secrets_and_variables":false,"require_approval_for_fork_pr_workflows":true}'Empty response for successful settings update
Status: 204List selected organizations enabled for GitHub Actions in an enterprise
Lists the organizations that are selected to have GitHub Actions enabled in an enterprise. To use this endpoint, the enterprise permission policy for enabled_organizations must be configured to selected. For more information, see "Set GitHub Actions permissions for an enterprise."
OAuth app tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.
Fine-grained access tokens for "List selected organizations enabled for GitHub Actions in an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "List selected organizations enabled for GitHub Actions in an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| Name, Type, Description | 
|---|
| per_pageintegerThe number of results per page (max 100). For more information, see "Using pagination in the REST API." Default:  | 
| pageintegerThe page number of the results to fetch. For more information, see "Using pagination in the REST API." Default:  | 
HTTP response status codes for "List selected organizations enabled for GitHub Actions in an enterprise"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "List selected organizations enabled for GitHub Actions in an enterprise"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/enterprises/ENTERPRISE/actions/permissions/organizationsResponse
Status: 200{
  "total_count": 1,
  "organizations": [
    {
      "login": "octocat",
      "id": 161335,
      "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5",
      "url": "https://api.github.com/orgs/octo-org",
      "repos_url": "https://api.github.com/orgs/octo-org/repos",
      "events_url": "https://api.github.com/orgs/octo-org/events",
      "hooks_url": "https://api.github.com/orgs/octo-org/hooks",
      "issues_url": "https://api.github.com/orgs/octo-org/issues",
      "members_url": "https://api.github.com/orgs/octo-org/members{/member}",
      "public_members_url": "https://api.github.com/orgs/octo-org/public_members{/member}",
      "avatar_url": "https://github.com/images/error/octocat_happy.gif",
      "description": "A great organization"
    }
  ]
}Set selected organizations enabled for GitHub Actions in an enterprise
Replaces the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for enabled_organizations must be configured to selected. For more information, see "Set GitHub Actions permissions for an enterprise."
OAuth app tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.
Fine-grained access tokens for "Set selected organizations enabled for GitHub Actions in an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Set selected organizations enabled for GitHub Actions in an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| Name, Type, Description | 
|---|
| selected_organization_idsarray of integers RequiredList of organization IDs to enable for GitHub Actions. | 
HTTP response status codes for "Set selected organizations enabled for GitHub Actions in an enterprise"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Set selected organizations enabled for GitHub Actions in an enterprise"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/enterprises/ENTERPRISE/actions/permissions/organizations \
  -d '{"selected_organization_ids":[32,91]}'Response
Status: 204Enable a selected organization for GitHub Actions in an enterprise
Adds an organization to the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for enabled_organizations must be configured to selected. For more information, see "Set GitHub Actions permissions for an enterprise."
OAuth app tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.
Fine-grained access tokens for "Enable a selected organization for GitHub Actions in an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Enable a selected organization for GitHub Actions in an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| org_idinteger RequiredThe unique identifier of the organization. | 
HTTP response status codes for "Enable a selected organization for GitHub Actions in an enterprise"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Enable a selected organization for GitHub Actions in an enterprise"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/enterprises/ENTERPRISE/actions/permissions/organizations/ORG_IDResponse
Status: 204Disable a selected organization for GitHub Actions in an enterprise
Removes an organization from the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for enabled_organizations must be configured to selected. For more information, see "Set GitHub Actions permissions for an enterprise."
OAuth app tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.
Fine-grained access tokens for "Disable a selected organization for GitHub Actions in an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Disable a selected organization for GitHub Actions in an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| org_idinteger RequiredThe unique identifier of the organization. | 
HTTP response status codes for "Disable a selected organization for GitHub Actions in an enterprise"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Disable a selected organization for GitHub Actions in an enterprise"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/enterprises/ENTERPRISE/actions/permissions/organizations/ORG_IDResponse
Status: 204Get allowed actions and reusable workflows for an enterprise
Gets the selected actions and reusable workflows that are allowed in an enterprise. To use this endpoint, the enterprise permission policy for allowed_actions must be configured to selected. For more information, see "Set GitHub Actions permissions for an enterprise."
OAuth app tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.
Fine-grained access tokens for "Get allowed actions and reusable workflows for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Get allowed actions and reusable workflows for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
HTTP response status codes for "Get allowed actions and reusable workflows for an enterprise"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "Get allowed actions and reusable workflows for an enterprise"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/enterprises/ENTERPRISE/actions/permissions/selected-actionsResponse
Status: 200{
  "github_owned_allowed": true,
  "verified_allowed": false,
  "patterns_allowed": [
    "monalisa/octocat@*",
    "docker/*"
  ]
}Set allowed actions and reusable workflows for an enterprise
Sets the actions and reusable workflows that are allowed in an enterprise. To use this endpoint, the enterprise permission policy for allowed_actions must be configured to selected. For more information, see "Set GitHub Actions permissions for an enterprise."
OAuth app tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.
Fine-grained access tokens for "Set allowed actions and reusable workflows for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Set allowed actions and reusable workflows for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| Name, Type, Description | 
|---|
| github_owned_allowedbooleanWhether GitHub-owned actions are allowed. For example, this includes the actions in the  | 
| verified_allowedbooleanWhether actions from GitHub Marketplace verified creators are allowed. Set to  | 
| patterns_allowedarray of stringsSpecifies a list of string-matching patterns to allow specific action(s) and reusable workflow(s). Wildcards, tags, and SHAs are allowed. For example,  | 
HTTP response status codes for "Set allowed actions and reusable workflows for an enterprise"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Set allowed actions and reusable workflows for an enterprise"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/enterprises/ENTERPRISE/actions/permissions/selected-actions \
  -d '{"github_owned_allowed":true,"verified_allowed":false,"patterns_allowed":["monalisa/octocat@*","docker/*"]}'Response
Status: 204Get self-hosted runners permissions for an enterprise
Gets the settings for whether organizations in the enterprise are allowed to manage self-hosted runners at the repository level.
Fine-grained access tokens for "Get self-hosted runners permissions for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Get self-hosted runners permissions for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
HTTP response status codes for "Get self-hosted runners permissions for an enterprise"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 404 | Resource not found | 
Code samples for "Get self-hosted runners permissions for an enterprise"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/enterprises/ENTERPRISE/actions/permissions/self-hosted-runnersResponse
Status: 200{
  "disable_self_hosted_runners_for_all_orgs": false
}Set self-hosted runners permissions for an enterprise
Sets the settings for whether organizations in the enterprise are allowed to manage self-hosted runners at the repository level.
Fine-grained access tokens for "Set self-hosted runners permissions for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Set self-hosted runners permissions for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| Name, Type, Description | 
|---|
| disable_self_hosted_runners_for_all_orgsboolean RequiredWhen true, repository-level runners will be disabled across all organizations in the enterprise | 
HTTP response status codes for "Set self-hosted runners permissions for an enterprise"
| Status code | Description | 
|---|---|
| 204 | No Content | 
| 404 | Resource not found | 
| 422 | Validation failed, or the endpoint has been spammed. | 
Code samples for "Set self-hosted runners permissions for an enterprise"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/enterprises/ENTERPRISE/actions/permissions/self-hosted-runners \
  -d '{"disable_self_hosted_runners_for_all_orgs":true}'Response
Status: 204Get default workflow permissions for an enterprise
Gets the default workflow permissions granted to the GITHUB_TOKEN when running workflows in an enterprise,
as well as whether GitHub Actions can submit approving pull request reviews. For more information, see
"Enforcing a policy for workflow permissions in your enterprise."
OAuth tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.
Fine-grained access tokens for "Get default workflow permissions for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Get default workflow permissions for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
HTTP response status codes for "Get default workflow permissions for an enterprise"
| Status code | Description | 
|---|---|
| 200 | Success response | 
Code samples for "Get default workflow permissions for an enterprise"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/enterprises/ENTERPRISE/actions/permissions/workflowGive read-only permission, and allow approving PRs.
Status: 200{
  "default_workflow_permissions": "read",
  "can_approve_pull_request_reviews": true
}Set default workflow permissions for an enterprise
Sets the default workflow permissions granted to the GITHUB_TOKEN when running workflows in an enterprise, and sets
whether GitHub Actions can submit approving pull request reviews. For more information, see
"Enforcing a policy for workflow permissions in your enterprise."
OAuth app tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.
Fine-grained access tokens for "Set default workflow permissions for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Set default workflow permissions for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| Name, Type, Description | 
|---|
| default_workflow_permissionsstringThe default workflow permissions granted to the GITHUB_TOKEN when running workflows. Can be one of:  | 
| can_approve_pull_request_reviewsbooleanWhether GitHub Actions can approve pull requests. Enabling this can be a security risk. | 
HTTP response status codes for "Set default workflow permissions for an enterprise"
| Status code | Description | 
|---|---|
| 204 | Success response | 
Code samples for "Set default workflow permissions for an enterprise"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/enterprises/ENTERPRISE/actions/permissions/workflow \
  -d '{"default_workflow_permissions":"read","can_approve_pull_request_reviews":true}'Success response
Status: 204Get GitHub Actions permissions for an organization
Gets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization.
OAuth tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Get GitHub Actions permissions for an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (read)
Parameters for "Get GitHub Actions permissions for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
HTTP response status codes for "Get GitHub Actions permissions for an organization"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "Get GitHub Actions permissions for an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissionsResponse
Status: 200{
  "enabled_repositories": "all",
  "allowed_actions": "selected",
  "selected_actions_url": "https://api.github.com/organizations/42/actions/permissions/selected-actions",
  "sha_pinning_required": true
}Set GitHub Actions permissions for an organization
Sets the GitHub Actions permissions policy for repositories and allowed actions in an organization.
If the organization belongs to an enterprise that has set restrictive permissions at the enterprise level, such as allowed_actions to selected actions, then you cannot override them for the organization.
OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Set GitHub Actions permissions for an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (write)
Parameters for "Set GitHub Actions permissions for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| Name, Type, Description | 
|---|
| enabled_repositoriesstring RequiredThe policy that controls the repositories in the organization that are allowed to run GitHub Actions. Can be one of:  | 
| allowed_actionsstringThe permissions policy that controls the actions and reusable workflows that are allowed to run. Can be one of:  | 
| sha_pinning_requiredbooleanWhether actions must be pinned to a full-length commit SHA. | 
HTTP response status codes for "Set GitHub Actions permissions for an organization"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Set GitHub Actions permissions for an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions \
  -d '{"enabled_repositories":"all","allowed_actions":"selected","sha_pinning_required":true}'Response
Status: 204Get artifact and log retention settings for an organization
Gets artifact and log retention settings for an organization.
OAuth app tokens and personal access tokens (classic) need the admin:org scope or the "Actions policies" fine-grained permission to use this endpoint.
Fine-grained access tokens for "Get artifact and log retention settings for an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (read)
Parameters for "Get artifact and log retention settings for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
HTTP response status codes for "Get artifact and log retention settings for an organization"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 403 | Forbidden | 
| 404 | Resource not found | 
Code samples for "Get artifact and log retention settings for an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/artifact-and-log-retentionExample response
Status: 200{
  "days": 90,
  "maximum_allowed_days": 365
}Set artifact and log retention settings for an organization
Sets artifact and log retention settings for an organization.
OAuth app tokens and personal access tokens (classic) need the admin:org scope or the "Actions policies" fine-grained permission to use this endpoint.
Fine-grained access tokens for "Set artifact and log retention settings for an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (write)
Parameters for "Set artifact and log retention settings for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| Name, Type, Description | 
|---|
| daysinteger RequiredThe number of days to retain artifacts and logs | 
HTTP response status codes for "Set artifact and log retention settings for an organization"
| Status code | Description | 
|---|---|
| 204 | No content | 
| 403 | Forbidden | 
| 404 | Resource not found | 
| 409 | Conflict | 
| 422 | Validation failed, or the endpoint has been spammed. | 
Code samples for "Set artifact and log retention settings for an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/artifact-and-log-retention \
  -d '{"days":100}'No content
Status: 204Get fork PR contributor approval permissions for an organization
Gets the fork PR contributor approval policy for an organization.
OAuth app tokens and personal access tokens (classic) need the admin:org scope or the "Actions policies" fine-grained permission to use this endpoint.
Fine-grained access tokens for "Get fork PR contributor approval permissions for an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (read)
Parameters for "Get fork PR contributor approval permissions for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
HTTP response status codes for "Get fork PR contributor approval permissions for an organization"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 404 | Resource not found | 
Code samples for "Get fork PR contributor approval permissions for an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/fork-pr-contributor-approvalResponse
Status: 200{
  "approval_policy": "first_time_contributors"
}Set fork PR contributor approval permissions for an organization
Sets the fork PR contributor approval policy for an organization.
OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Set fork PR contributor approval permissions for an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (write)
Parameters for "Set fork PR contributor approval permissions for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| Name, Type, Description | 
|---|
| approval_policystring RequiredThe policy that controls when fork PR workflows require approval from a maintainer. Can be one of:  | 
HTTP response status codes for "Set fork PR contributor approval permissions for an organization"
| Status code | Description | 
|---|---|
| 204 | No Content | 
| 404 | Resource not found | 
| 422 | Validation failed, or the endpoint has been spammed. | 
Code samples for "Set fork PR contributor approval permissions for an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/fork-pr-contributor-approval \
  -d '{"approval_policy":"first_time_contributors"}'Response
Status: 204Get private repo fork PR workflow settings for an organization
Gets the settings for whether workflows from fork pull requests can run on private repositories in an organization.
Fine-grained access tokens for "Get private repo fork PR workflow settings for an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (read)
Parameters for "Get private repo fork PR workflow settings for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
HTTP response status codes for "Get private repo fork PR workflow settings for an organization"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 403 | Forbidden | 
| 404 | Resource not found | 
Code samples for "Get private repo fork PR workflow settings for an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/fork-pr-workflows-private-reposResponse
Status: 200{
  "run_workflows_from_fork_pull_requests": true,
  "send_write_tokens_to_workflows": false,
  "send_secrets_and_variables": false,
  "require_approval_for_fork_pr_workflows": true
}Set private repo fork PR workflow settings for an organization
Sets the settings for whether workflows from fork pull requests can run on private repositories in an organization.
Fine-grained access tokens for "Set private repo fork PR workflow settings for an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (write)
Parameters for "Set private repo fork PR workflow settings for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| Name, Type, Description | 
|---|
| run_workflows_from_fork_pull_requestsboolean RequiredWhether workflows triggered by pull requests from forks are allowed to run on private repositories. | 
| send_write_tokens_to_workflowsbooleanWhether GitHub Actions can create pull requests or submit approving pull request reviews from a workflow triggered by a fork pull request. | 
| send_secrets_and_variablesbooleanWhether to make secrets and variables available to workflows triggered by pull requests from forks. | 
| require_approval_for_fork_pr_workflowsbooleanWhether workflows triggered by pull requests from forks require approval from a repository administrator to run. | 
HTTP response status codes for "Set private repo fork PR workflow settings for an organization"
| Status code | Description | 
|---|---|
| 204 | Empty response for successful settings update | 
| 403 | Forbidden - Fork PR workflow settings for private repositories are managed by the enterprise owner | 
| 404 | Resource not found | 
| 422 | Validation failed, or the endpoint has been spammed. | 
Code samples for "Set private repo fork PR workflow settings for an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/fork-pr-workflows-private-repos \
  -d '{"run_workflows_from_fork_pull_requests":true,"send_write_tokens_to_workflows":false,"send_secrets_and_variables":false,"require_approval_for_fork_pr_workflows":true}'Empty response for successful settings update
Status: 204List selected repositories enabled for GitHub Actions in an organization
Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for enabled_repositories must be configured to selected. For more information, see "Set GitHub Actions permissions for an organization."
OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "List selected repositories enabled for GitHub Actions in an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (read)
Parameters for "List selected repositories enabled for GitHub Actions in an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| Name, Type, Description | 
|---|
| per_pageintegerThe number of results per page (max 100). For more information, see "Using pagination in the REST API." Default:  | 
| pageintegerThe page number of the results to fetch. For more information, see "Using pagination in the REST API." Default:  | 
HTTP response status codes for "List selected repositories enabled for GitHub Actions in an organization"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "List selected repositories enabled for GitHub Actions in an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/repositoriesResponse
Status: 200{
  "total_count": 1,
  "repositories": [
    {
      "id": 1296269,
      "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5",
      "name": "Hello-World",
      "full_name": "octocat/Hello-World",
      "owner": {
        "login": "octocat",
        "id": 1,
        "node_id": "MDQ6VXNlcjE=",
        "avatar_url": "https://github.com/images/error/octocat_happy.gif",
        "gravatar_id": "",
        "url": "https://api.github.com/users/octocat",
        "html_url": "https://github.com/octocat",
        "followers_url": "https://api.github.com/users/octocat/followers",
        "following_url": "https://api.github.com/users/octocat/following{/other_user}",
        "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
        "organizations_url": "https://api.github.com/users/octocat/orgs",
        "repos_url": "https://api.github.com/users/octocat/repos",
        "events_url": "https://api.github.com/users/octocat/events{/privacy}",
        "received_events_url": "https://api.github.com/users/octocat/received_events",
        "type": "User",
        "site_admin": false
      },
      "private": false,
      "html_url": "https://github.com/octocat/Hello-World",
      "description": "This your first repo!",
      "fork": false,
      "url": "https://api.github.com/repos/octocat/Hello-World",
      "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}",
      "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}",
      "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}",
      "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}",
      "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}",
      "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}",
      "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}",
      "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}",
      "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}",
      "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors",
      "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments",
      "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads",
      "events_url": "https://api.github.com/repos/octocat/Hello-World/events",
      "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks",
      "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}",
      "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}",
      "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}",
      "git_url": "git:github.com/octocat/Hello-World.git",
      "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}",
      "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}",
      "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}",
      "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}",
      "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}",
      "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages",
      "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges",
      "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}",
      "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}",
      "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}",
      "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}",
      "ssh_url": "git@github.com:octocat/Hello-World.git",
      "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers",
      "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}",
      "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers",
      "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription",
      "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags",
      "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams",
      "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}",
      "clone_url": "https://github.com/octocat/Hello-World.git",
      "mirror_url": "git:git.example.com/octocat/Hello-World",
      "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks",
      "svn_url": "https://svn.github.com/octocat/Hello-World",
      "homepage": "https://github.com",
      "language": null,
      "forks_count": 9,
      "stargazers_count": 80,
      "watchers_count": 80,
      "size": 108,
      "default_branch": "master",
      "open_issues_count": 0,
      "is_template": true,
      "topics": [
        "octocat",
        "atom",
        "electron",
        "api"
      ],
      "has_issues": true,
      "has_projects": true,
      "has_wiki": true,
      "has_pages": false,
      "has_downloads": true,
      "archived": false,
      "disabled": false,
      "visibility": "public",
      "pushed_at": "2011-01-26T19:06:43Z",
      "created_at": "2011-01-26T19:01:12Z",
      "updated_at": "2011-01-26T19:14:43Z",
      "permissions": {
        "admin": false,
        "push": false,
        "pull": true
      },
      "allow_rebase_merge": true,
      "template_repository": null,
      "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",
      "allow_squash_merge": true,
      "allow_auto_merge": false,
      "delete_branch_on_merge": true,
      "allow_merge_commit": true,
      "subscribers_count": 42,
      "network_count": 0,
      "license": {
        "key": "mit",
        "name": "MIT License",
        "url": "https://api.github.com/licenses/mit",
        "spdx_id": "MIT",
        "node_id": "MDc6TGljZW5zZW1pdA==",
        "html_url": "https://github.com/licenses/mit"
      },
      "forks": 1,
      "open_issues": 1,
      "watchers": 1
    }
  ]
}Set selected repositories enabled for GitHub Actions in an organization
Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for enabled_repositories must be configured to selected. For more information, see "Set GitHub Actions permissions for an organization."
OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Set selected repositories enabled for GitHub Actions in an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (write)
Parameters for "Set selected repositories enabled for GitHub Actions in an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| Name, Type, Description | 
|---|
| selected_repository_idsarray of integers RequiredList of repository IDs to enable for GitHub Actions. | 
HTTP response status codes for "Set selected repositories enabled for GitHub Actions in an organization"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Set selected repositories enabled for GitHub Actions in an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/repositories \
  -d '{"selected_repository_ids":[32,42]}'Response
Status: 204Enable a selected repository for GitHub Actions in an organization
Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for enabled_repositories must be must be configured to selected. For more information, see "Set GitHub Actions permissions for an organization."
OAuth tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Enable a selected repository for GitHub Actions in an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (write) and "Metadata" repository permissions (read)
Parameters for "Enable a selected repository for GitHub Actions in an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| repository_idinteger RequiredThe unique identifier of the repository. | 
HTTP response status codes for "Enable a selected repository for GitHub Actions in an organization"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Enable a selected repository for GitHub Actions in an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/repositories/REPOSITORY_IDResponse
Status: 204Disable a selected repository for GitHub Actions in an organization
Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for enabled_repositories must be configured to selected. For more information, see "Set GitHub Actions permissions for an organization."
OAuth tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Disable a selected repository for GitHub Actions in an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (write) and "Metadata" repository permissions (read)
Parameters for "Disable a selected repository for GitHub Actions in an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| repository_idinteger RequiredThe unique identifier of the repository. | 
HTTP response status codes for "Disable a selected repository for GitHub Actions in an organization"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Disable a selected repository for GitHub Actions in an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/repositories/REPOSITORY_IDResponse
Status: 204Get allowed actions and reusable workflows for an organization
Gets the selected actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for allowed_actions must be configured to selected. For more information, see "Set GitHub Actions permissions for an organization."
OAuth tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Get allowed actions and reusable workflows for an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (read)
Parameters for "Get allowed actions and reusable workflows for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
HTTP response status codes for "Get allowed actions and reusable workflows for an organization"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "Get allowed actions and reusable workflows for an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/selected-actionsResponse
Status: 200{
  "github_owned_allowed": true,
  "verified_allowed": false,
  "patterns_allowed": [
    "monalisa/octocat@*",
    "docker/*"
  ]
}Set allowed actions for an organization
Sets the actions that are allowed in an organization. To use this endpoint, the organization permission policy for allowed_actions must be configured to selected. For more information, see "Set GitHub Actions permissions for an organization."
If the organization belongs to an enterprise that has selected actions set at the enterprise level, then you cannot override any of the enterprise's allowed actions settings.
To use the patterns_allowed setting for private repositories, the organization must belong to an enterprise. If the organization does not belong to an enterprise, then the patterns_allowed setting only applies to public repositories in the organization.
OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Set allowed actions for an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (write)
Parameters for "Set allowed actions for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| Name, Type, Description | 
|---|
| github_owned_allowedbooleanWhether GitHub-owned actions are allowed. For example, this includes the actions in the  | 
| verified_allowedbooleanWhether actions from GitHub Marketplace verified creators are allowed. Set to  | 
| patterns_allowedarray of stringsSpecifies a list of string-matching patterns to allow specific action(s) and reusable workflow(s). Wildcards, tags, and SHAs are allowed. For example,  | 
HTTP response status codes for "Set allowed actions for an organization"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Set allowed actions for an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/selected-actions \
  -d '{"github_owned_allowed":true,"verified_allowed":false,"patterns_allowed":["monalisa/octocat@*","docker/*"]}'Response
Status: 204Get self-hosted runners settings for an organization
Gets the settings for self-hosted runners for an organization.
OAuth app tokens and personal access tokens (classic) need the admin:org scope or the "Actions policies" fine-grained permission to use this endpoint.
Fine-grained access tokens for "Get self-hosted runners settings for an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (read)
Parameters for "Get self-hosted runners settings for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
HTTP response status codes for "Get self-hosted runners settings for an organization"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 403 | Forbidden | 
| 404 | Resource not found | 
Code samples for "Get self-hosted runners settings for an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/self-hosted-runnersExample response
Status: 200{
  "enabled_repositories": "selected",
  "selected_repositories_url": "http://api.github.localhost/organizations/1/actions/permissions/self-hosted-runners/repositories"
}Set self-hosted runners settings for an organization
Sets the settings for self-hosted runners for an organization.
OAuth app tokens and personal access tokens (classic) need the admin:org scope or the "Actions policies" fine-grained permission to use this endpoint.
Fine-grained access tokens for "Set self-hosted runners settings for an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (write)
Parameters for "Set self-hosted runners settings for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| Name, Type, Description | 
|---|
| enabled_repositoriesstring RequiredThe policy that controls whether self-hosted runners can be used in the organization Can be one of:  | 
HTTP response status codes for "Set self-hosted runners settings for an organization"
| Status code | Description | 
|---|---|
| 204 | No content | 
| 403 | Forbidden | 
| 404 | Resource not found | 
| 409 | Conflict | 
| 422 | Validation failed, or the endpoint has been spammed. | 
Code samples for "Set self-hosted runners settings for an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/self-hosted-runners \
  -d '{"enabled_repositories":"all"}'No content
Status: 204List repositories allowed to use self-hosted runners in an organization
Lists repositories that are allowed to use self-hosted runners in an organization.
OAuth app tokens and personal access tokens (classic) need the admin:org scope or the "Actions policies" fine-grained permission to use this endpoint.
Fine-grained access tokens for "List repositories allowed to use self-hosted runners in an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (read)
Parameters for "List repositories allowed to use self-hosted runners in an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| Name, Type, Description | 
|---|
| per_pageintegerThe number of results per page (max 100). For more information, see "Using pagination in the REST API." Default:  | 
| pageintegerThe page number of the results to fetch. For more information, see "Using pagination in the REST API." Default:  | 
HTTP response status codes for "List repositories allowed to use self-hosted runners in an organization"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 403 | Forbidden | 
| 404 | Resource not found | 
Code samples for "List repositories allowed to use self-hosted runners in an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/self-hosted-runners/repositoriesResponse
Status: 200{
  "total_count": 1,
  "repositories": [
    {
      "id": 1296269,
      "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5",
      "name": "Hello-World",
      "full_name": "octocat/Hello-World",
      "owner": {
        "login": "octocat",
        "id": 1,
        "node_id": "MDQ6VXNlcjE=",
        "avatar_url": "https://github.com/images/error/octocat_happy.gif",
        "gravatar_id": "",
        "url": "https://api.github.com/users/octocat",
        "html_url": "https://github.com/octocat",
        "followers_url": "https://api.github.com/users/octocat/followers",
        "following_url": "https://api.github.com/users/octocat/following{/other_user}",
        "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
        "organizations_url": "https://api.github.com/users/octocat/orgs",
        "repos_url": "https://api.github.com/users/octocat/repos",
        "events_url": "https://api.github.com/users/octocat/events{/privacy}",
        "received_events_url": "https://api.github.com/users/octocat/received_events",
        "type": "User",
        "site_admin": false
      },
      "private": false,
      "html_url": "https://github.com/octocat/Hello-World",
      "description": "This your first repo!",
      "fork": false,
      "url": "https://api.github.com/repos/octocat/Hello-World",
      "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}",
      "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}",
      "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}",
      "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}",
      "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}",
      "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}",
      "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}",
      "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}",
      "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}",
      "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors",
      "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments",
      "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads",
      "events_url": "https://api.github.com/repos/octocat/Hello-World/events",
      "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks",
      "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}",
      "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}",
      "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}",
      "git_url": "git:github.com/octocat/Hello-World.git",
      "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}",
      "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}",
      "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}",
      "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}",
      "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}",
      "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages",
      "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges",
      "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}",
      "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}",
      "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}",
      "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}",
      "ssh_url": "git@github.com:octocat/Hello-World.git",
      "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers",
      "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}",
      "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers",
      "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription",
      "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags",
      "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams",
      "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}",
      "clone_url": "https://github.com/octocat/Hello-World.git",
      "mirror_url": "git:git.example.com/octocat/Hello-World",
      "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks",
      "svn_url": "https://svn.github.com/octocat/Hello-World",
      "homepage": "https://github.com",
      "language": null,
      "forks_count": 9,
      "stargazers_count": 80,
      "watchers_count": 80,
      "size": 108,
      "default_branch": "master",
      "open_issues_count": 0,
      "is_template": true,
      "topics": [
        "octocat",
        "atom",
        "electron",
        "api"
      ],
      "has_issues": true,
      "has_projects": true,
      "has_wiki": true,
      "has_pages": false,
      "has_downloads": true,
      "archived": false,
      "disabled": false,
      "visibility": "public",
      "pushed_at": "2011-01-26T19:06:43Z",
      "created_at": "2011-01-26T19:01:12Z",
      "updated_at": "2011-01-26T19:14:43Z",
      "permissions": {
        "admin": false,
        "push": false,
        "pull": true
      },
      "allow_rebase_merge": true,
      "template_repository": null,
      "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",
      "allow_squash_merge": true,
      "allow_auto_merge": false,
      "delete_branch_on_merge": true,
      "allow_merge_commit": true,
      "subscribers_count": 42,
      "network_count": 0,
      "license": {
        "key": "mit",
        "name": "MIT License",
        "url": "https://api.github.com/licenses/mit",
        "spdx_id": "MIT",
        "node_id": "MDc6TGljZW5zZW1pdA==",
        "html_url": "https://github.com/licenses/mit"
      },
      "forks": 1,
      "open_issues": 1,
      "watchers": 1
    }
  ]
}Set repositories allowed to use self-hosted runners in an organization
Sets repositories that are allowed to use self-hosted runners in an organization.
OAuth app tokens and personal access tokens (classic) need the admin:org scope or the "Actions policies" fine-grained permission to use this endpoint.
Fine-grained access tokens for "Set repositories allowed to use self-hosted runners in an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (write)
Parameters for "Set repositories allowed to use self-hosted runners in an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| Name, Type, Description | 
|---|
| selected_repository_idsarray of integers RequiredIDs of repositories that can use repository-level self-hosted runners | 
HTTP response status codes for "Set repositories allowed to use self-hosted runners in an organization"
| Status code | Description | 
|---|---|
| 204 | No content | 
| 403 | Forbidden | 
| 404 | Resource not found | 
| 422 | Validation failed, or the endpoint has been spammed. | 
Code samples for "Set repositories allowed to use self-hosted runners in an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/self-hosted-runners/repositories \
  -d '{"selected_repository_ids":[1,2,3]}'No content
Status: 204Add a repository to the list of repositories allowed to use self-hosted runners in an organization
Adds a repository to the list of repositories that are allowed to use self-hosted runners in an organization.
OAuth app tokens and personal access tokens (classic) need the admin:org scope or the "Actions policies" fine-grained permission to use this endpoint.
Fine-grained access tokens for "Add a repository to the list of repositories allowed to use self-hosted runners in an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (write) and "Metadata" repository permissions (read)
Parameters for "Add a repository to the list of repositories allowed to use self-hosted runners in an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| repository_idinteger RequiredThe unique identifier of the repository. | 
HTTP response status codes for "Add a repository to the list of repositories allowed to use self-hosted runners in an organization"
| Status code | Description | 
|---|---|
| 204 | No content | 
| 403 | Forbidden | 
| 404 | Resource not found | 
| 409 | Conflict | 
| 422 | Validation failed, or the endpoint has been spammed. | 
Code samples for "Add a repository to the list of repositories allowed to use self-hosted runners in an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/self-hosted-runners/repositories/REPOSITORY_IDNo content
Status: 204Remove a repository from the list of repositories allowed to use self-hosted runners in an organization
Removes a repository from the list of repositories that are allowed to use self-hosted runners in an organization.
OAuth app tokens and personal access tokens (classic) need the admin:org scope or the "Actions policies" fine-grained permission to use this endpoint.
Fine-grained access tokens for "Remove a repository from the list of repositories allowed to use self-hosted runners in an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (write) and "Metadata" repository permissions (read)
Parameters for "Remove a repository from the list of repositories allowed to use self-hosted runners in an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| repository_idinteger RequiredThe unique identifier of the repository. | 
HTTP response status codes for "Remove a repository from the list of repositories allowed to use self-hosted runners in an organization"
| Status code | Description | 
|---|---|
| 204 | No content | 
| 403 | Forbidden | 
| 404 | Resource not found | 
| 409 | Conflict | 
| 422 | Validation failed, or the endpoint has been spammed. | 
Code samples for "Remove a repository from the list of repositories allowed to use self-hosted runners in an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/self-hosted-runners/repositories/REPOSITORY_IDNo content
Status: 204Get default workflow permissions for an organization
Gets the default workflow permissions granted to the GITHUB_TOKEN when running workflows in an organization,
as well as whether GitHub Actions can submit approving pull request reviews. For more information, see
"Setting the permissions of the GITHUB_TOKEN for your organization."
OAuth tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Get default workflow permissions for an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (read)
Parameters for "Get default workflow permissions for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
HTTP response status codes for "Get default workflow permissions for an organization"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "Get default workflow permissions for an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/workflowGive read-only permission, and allow approving PRs.
Status: 200{
  "default_workflow_permissions": "read",
  "can_approve_pull_request_reviews": true
}Set default workflow permissions for an organization
Sets the default workflow permissions granted to the GITHUB_TOKEN when running workflows in an organization, and sets if GitHub Actions
can submit approving pull request reviews. For more information, see
"Setting the permissions of the GITHUB_TOKEN for your organization."
OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Set default workflow permissions for an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (write)
Parameters for "Set default workflow permissions for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| Name, Type, Description | 
|---|
| default_workflow_permissionsstringThe default workflow permissions granted to the GITHUB_TOKEN when running workflows. Can be one of:  | 
| can_approve_pull_request_reviewsbooleanWhether GitHub Actions can approve pull requests. Enabling this can be a security risk. | 
HTTP response status codes for "Set default workflow permissions for an organization"
| Status code | Description | 
|---|---|
| 204 | Success response | 
| 409 | Conflict response when changing a setting is prevented by the owning enterprise | 
Code samples for "Set default workflow permissions for an organization"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/workflow \
  -d '{"default_workflow_permissions":"read","can_approve_pull_request_reviews":true}'Success response
Status: 204Get GitHub Actions permissions for a repository
Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions and reusable workflows allowed to run in the repository.
OAuth tokens and personal access tokens (classic) need the repo scope to use this endpoint.
Fine-grained access tokens for "Get GitHub Actions permissions for a repository"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" repository permissions (read)
Parameters for "Get GitHub Actions permissions for a repository"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| ownerstring RequiredThe account owner of the repository. The name is not case sensitive. | 
| repostring RequiredThe name of the repository without the  | 
HTTP response status codes for "Get GitHub Actions permissions for a repository"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "Get GitHub Actions permissions for a repository"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissionsResponse
Status: 200{
  "enabled": true,
  "allowed_actions": "selected",
  "selected_actions_url": "https://api.github.com/repositories/42/actions/permissions/selected-actions",
  "sha_pinning_required": true
}Set GitHub Actions permissions for a repository
Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions in the repository.
If the repository belongs to an organization or enterprise that has set restrictive permissions at the organization or enterprise levels, such as allowed_actions to selected actions, then you cannot override them for the repository.
OAuth app tokens and personal access tokens (classic) need the repo scope to use this endpoint.
Fine-grained access tokens for "Set GitHub Actions permissions for a repository"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" repository permissions (write)
Parameters for "Set GitHub Actions permissions for a repository"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| ownerstring RequiredThe account owner of the repository. The name is not case sensitive. | 
| repostring RequiredThe name of the repository without the  | 
| Name, Type, Description | 
|---|
| enabledboolean RequiredWhether GitHub Actions is enabled on the repository. | 
| allowed_actionsstringThe permissions policy that controls the actions and reusable workflows that are allowed to run. Can be one of:  | 
| sha_pinning_requiredbooleanWhether actions must be pinned to a full-length commit SHA. | 
HTTP response status codes for "Set GitHub Actions permissions for a repository"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Set GitHub Actions permissions for a repository"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions \
  -d '{"enabled":true,"allowed_actions":"selected","sha_pinning_required":true}'Response
Status: 204Get the level of access for workflows outside of the repository
Gets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. This endpoint only applies to internal and private repositories. For more information, see "Allowing access to components in a private repository" and "Allowing access to components in an internal repository."
OAuth app tokens and personal access tokens (classic) need the repo scope to use this endpoint.
Fine-grained access tokens for "Get the level of access for workflows outside of the repository"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" repository permissions (read)
Parameters for "Get the level of access for workflows outside of the repository"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| ownerstring RequiredThe account owner of the repository. The name is not case sensitive. | 
| repostring RequiredThe name of the repository without the  | 
HTTP response status codes for "Get the level of access for workflows outside of the repository"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "Get the level of access for workflows outside of the repository"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/accessResponse
Status: 200{
  "access_level": "organization"
}Set the level of access for workflows outside of the repository
Sets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. This endpoint only applies to internal and private repositories. For more information, see "Allowing access to components in a private repository" and "Allowing access to components in an internal repository."
OAuth app tokens and personal access tokens (classic) need the repo scope to use this endpoint.
Fine-grained access tokens for "Set the level of access for workflows outside of the repository"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" repository permissions (write)
Parameters for "Set the level of access for workflows outside of the repository"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| ownerstring RequiredThe account owner of the repository. The name is not case sensitive. | 
| repostring RequiredThe name of the repository without the  | 
| Name, Type, Description | 
|---|
| access_levelstring RequiredDefines the level of access that workflows outside of the repository have to actions and reusable workflows within the repository. 
 Can be one of:  | 
HTTP response status codes for "Set the level of access for workflows outside of the repository"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Set the level of access for workflows outside of the repository"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/access \
  -d '{"access_level":"organization"}'Response
Status: 204Get artifact and log retention settings for a repository
Gets artifact and log retention settings for a repository.
OAuth app tokens and personal access tokens (classic) need the repo scope to use this endpoint.
Fine-grained access tokens for "Get artifact and log retention settings for a repository"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" repository permissions (read)
Parameters for "Get artifact and log retention settings for a repository"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| ownerstring RequiredThe account owner of the repository. The name is not case sensitive. | 
| repostring RequiredThe name of the repository without the  | 
HTTP response status codes for "Get artifact and log retention settings for a repository"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 404 | Resource not found | 
Code samples for "Get artifact and log retention settings for a repository"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/artifact-and-log-retentionResponse
Status: 200{
  "days": 90,
  "maximum_allowed_days": 365
}Set artifact and log retention settings for a repository
Sets artifact and log retention settings for a repository.
OAuth app tokens and personal access tokens (classic) need the repo scope to use this endpoint.
Fine-grained access tokens for "Set artifact and log retention settings for a repository"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" repository permissions (write)
Parameters for "Set artifact and log retention settings for a repository"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| ownerstring RequiredThe account owner of the repository. The name is not case sensitive. | 
| repostring RequiredThe name of the repository without the  | 
| Name, Type, Description | 
|---|
| daysinteger RequiredThe number of days to retain artifacts and logs | 
HTTP response status codes for "Set artifact and log retention settings for a repository"
| Status code | Description | 
|---|---|
| 204 | Empty response for successful settings update | 
| 404 | Resource not found | 
| 422 | Validation failed, or the endpoint has been spammed. | 
Code samples for "Set artifact and log retention settings for a repository"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/artifact-and-log-retention \
  -d '{"days":90}'Empty response for successful settings update
Status: 204Get fork PR contributor approval permissions for a repository
Gets the fork PR contributor approval policy for a repository.
OAuth app tokens and personal access tokens (classic) need the repo scope to use this endpoint.
Fine-grained access tokens for "Get fork PR contributor approval permissions for a repository"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" repository permissions (read)
Parameters for "Get fork PR contributor approval permissions for a repository"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| ownerstring RequiredThe account owner of the repository. The name is not case sensitive. | 
| repostring RequiredThe name of the repository without the  | 
HTTP response status codes for "Get fork PR contributor approval permissions for a repository"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 404 | Resource not found | 
Code samples for "Get fork PR contributor approval permissions for a repository"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/fork-pr-contributor-approvalResponse
Status: 200{
  "approval_policy": "first_time_contributors"
}Set fork PR contributor approval permissions for a repository
Sets the fork PR contributor approval policy for a repository.
OAuth app tokens and personal access tokens (classic) need the repo scope to use this endpoint.
Fine-grained access tokens for "Set fork PR contributor approval permissions for a repository"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" repository permissions (write)
Parameters for "Set fork PR contributor approval permissions for a repository"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| ownerstring RequiredThe account owner of the repository. The name is not case sensitive. | 
| repostring RequiredThe name of the repository without the  | 
| Name, Type, Description | 
|---|
| approval_policystring RequiredThe policy that controls when fork PR workflows require approval from a maintainer. Can be one of:  | 
HTTP response status codes for "Set fork PR contributor approval permissions for a repository"
| Status code | Description | 
|---|---|
| 204 | No Content | 
| 404 | Resource not found | 
| 422 | Validation failed, or the endpoint has been spammed. | 
Code samples for "Set fork PR contributor approval permissions for a repository"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/fork-pr-contributor-approval \
  -d '{"approval_policy":"first_time_contributors"}'Response
Status: 204Get private repo fork PR workflow settings for a repository
Gets the settings for whether workflows from fork pull requests can run on a private repository.
OAuth app tokens and personal access tokens (classic) need the repo scope to use this endpoint.
Fine-grained access tokens for "Get private repo fork PR workflow settings for a repository"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" repository permissions (read)
Parameters for "Get private repo fork PR workflow settings for a repository"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| ownerstring RequiredThe account owner of the repository. The name is not case sensitive. | 
| repostring RequiredThe name of the repository without the  | 
HTTP response status codes for "Get private repo fork PR workflow settings for a repository"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 403 | Forbidden | 
| 404 | Resource not found | 
Code samples for "Get private repo fork PR workflow settings for a repository"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/fork-pr-workflows-private-reposResponse
Status: 200{
  "run_workflows_from_fork_pull_requests": true,
  "send_write_tokens_to_workflows": false,
  "send_secrets_and_variables": false,
  "require_approval_for_fork_pr_workflows": true
}Set private repo fork PR workflow settings for a repository
Sets the settings for whether workflows from fork pull requests can run on a private repository.
OAuth app tokens and personal access tokens (classic) need the repo scope to use this endpoint.
Fine-grained access tokens for "Set private repo fork PR workflow settings for a repository"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" repository permissions (write)
Parameters for "Set private repo fork PR workflow settings for a repository"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| ownerstring RequiredThe account owner of the repository. The name is not case sensitive. | 
| repostring RequiredThe name of the repository without the  | 
| Name, Type, Description | 
|---|
| run_workflows_from_fork_pull_requestsboolean RequiredWhether workflows triggered by pull requests from forks are allowed to run on private repositories. | 
| send_write_tokens_to_workflowsbooleanWhether GitHub Actions can create pull requests or submit approving pull request reviews from a workflow triggered by a fork pull request. | 
| send_secrets_and_variablesbooleanWhether to make secrets and variables available to workflows triggered by pull requests from forks. | 
| require_approval_for_fork_pr_workflowsbooleanWhether workflows triggered by pull requests from forks require approval from a repository administrator to run. | 
HTTP response status codes for "Set private repo fork PR workflow settings for a repository"
| Status code | Description | 
|---|---|
| 204 | Empty response for successful settings update | 
| 404 | Resource not found | 
| 422 | Validation failed, or the endpoint has been spammed. | 
Code samples for "Set private repo fork PR workflow settings for a repository"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/fork-pr-workflows-private-repos \
  -d '{"run_workflows_from_fork_pull_requests":true,"send_write_tokens_to_workflows":false,"send_secrets_and_variables":false,"require_approval_for_fork_pr_workflows":true}'Empty response for successful settings update
Status: 204Get allowed actions and reusable workflows for a repository
Gets the settings for selected actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository policy for allowed_actions must be configured to selected. For more information, see "Set GitHub Actions permissions for a repository."
OAuth tokens and personal access tokens (classic) need the repo scope to use this endpoint.
Fine-grained access tokens for "Get allowed actions and reusable workflows for a repository"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" repository permissions (read)
Parameters for "Get allowed actions and reusable workflows for a repository"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| ownerstring RequiredThe account owner of the repository. The name is not case sensitive. | 
| repostring RequiredThe name of the repository without the  | 
HTTP response status codes for "Get allowed actions and reusable workflows for a repository"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "Get allowed actions and reusable workflows for a repository"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/selected-actionsResponse
Status: 200{
  "github_owned_allowed": true,
  "verified_allowed": false,
  "patterns_allowed": [
    "monalisa/octocat@*",
    "docker/*"
  ]
}Set allowed actions for a repository
Sets the actions that are allowed in a repository. To use this endpoint, the repository permission policy for allowed_actions must be configured to selected. For more information, see "Set GitHub Actions permissions for a repository."
If the repository belongs to an organization or enterprise that has selected actions set at the organization or enterprise levels, then you cannot override any of the allowed actions settings and reusable workflows settings.
To use the patterns_allowed setting for private repositories, the repository must belong to an enterprise. If the repository does not belong to an enterprise, then the patterns_allowed setting only applies to public repositories.
OAuth app tokens and personal access tokens (classic) need the repo scope to use this endpoint.
Fine-grained access tokens for "Set allowed actions for a repository"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" repository permissions (write)
Parameters for "Set allowed actions for a repository"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| ownerstring RequiredThe account owner of the repository. The name is not case sensitive. | 
| repostring RequiredThe name of the repository without the  | 
| Name, Type, Description | 
|---|
| github_owned_allowedbooleanWhether GitHub-owned actions are allowed. For example, this includes the actions in the  | 
| verified_allowedbooleanWhether actions from GitHub Marketplace verified creators are allowed. Set to  | 
| patterns_allowedarray of stringsSpecifies a list of string-matching patterns to allow specific action(s) and reusable workflow(s). Wildcards, tags, and SHAs are allowed. For example,  | 
HTTP response status codes for "Set allowed actions for a repository"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Set allowed actions for a repository"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/selected-actions \
  -d '{"github_owned_allowed":true,"verified_allowed":false,"patterns_allowed":["monalisa/octocat@*","docker/*"]}'Response
Status: 204Get default workflow permissions for a repository
Gets the default workflow permissions granted to the GITHUB_TOKEN when running workflows in a repository,
as well as if GitHub Actions can submit approving pull request reviews.
For more information, see "Setting the permissions of the GITHUB_TOKEN for your repository."
OAuth tokens and personal access tokens (classic) need the repo scope to use this endpoint.
Fine-grained access tokens for "Get default workflow permissions for a repository"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" repository permissions (read)
Parameters for "Get default workflow permissions for a repository"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| ownerstring RequiredThe account owner of the repository. The name is not case sensitive. | 
| repostring RequiredThe name of the repository without the  | 
HTTP response status codes for "Get default workflow permissions for a repository"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "Get default workflow permissions for a repository"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/workflowGive read-only permission, and allow approving PRs.
Status: 200{
  "default_workflow_permissions": "read",
  "can_approve_pull_request_reviews": true
}Set default workflow permissions for a repository
Sets the default workflow permissions granted to the GITHUB_TOKEN when running workflows in a repository, and sets if GitHub Actions
can submit approving pull request reviews.
For more information, see "Setting the permissions of the GITHUB_TOKEN for your repository."
OAuth app tokens and personal access tokens (classic) need the repo scope to use this endpoint.
Fine-grained access tokens for "Set default workflow permissions for a repository"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" repository permissions (write)
Parameters for "Set default workflow permissions for a repository"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| ownerstring RequiredThe account owner of the repository. The name is not case sensitive. | 
| repostring RequiredThe name of the repository without the  | 
| Name, Type, Description | 
|---|
| default_workflow_permissionsstringThe default workflow permissions granted to the GITHUB_TOKEN when running workflows. Can be one of:  | 
| can_approve_pull_request_reviewsbooleanWhether GitHub Actions can approve pull requests. Enabling this can be a security risk. | 
HTTP response status codes for "Set default workflow permissions for a repository"
| Status code | Description | 
|---|---|
| 204 | Success response | 
| 409 | Conflict response when changing a setting is prevented by the owning organization or enterprise | 
Code samples for "Set default workflow permissions for a repository"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
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/actions/permissions/workflow \
  -d '{"default_workflow_permissions":"read","can_approve_pull_request_reviews":true}'Success response
Status: 204