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

REST API endpoints for GitHub Actions policies

Use the REST API to view and manage policies for GitHub Actions.

List enterprise Actions policies

List all Actions policies for an enterprise.

Fine-grained access tokens for "List enterprise Actions policies"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Enterprise administration" enterprise permissions (write)

Parameters for "List enterprise Actions policies"

Headers
Name, Type, Description
accept string

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

Path parameters
Name, Type, Description
enterprise string Required

The slug version of the enterprise name.

Query parameters
Name, Type, Description
per_page integer

The number of results per page (max 100). For more information, see "Using pagination in the REST API."

Default: 30

page integer

The page number of the results to fetch. For more information, see "Using pagination in the REST API."

Default: 1

HTTP response status codes for "List enterprise Actions policies"

Status codeDescription
200

OK

404

Resource not found

500

Internal Error

Code samples for "List enterprise Actions policies"

If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.

Request example

get/enterprises/{enterprise}/actions/policies
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2026-03-10" \ https://api.github.com/enterprises/ENTERPRISE/actions/policies

Response

Status: 200
{ "total_count": 2, "policies": [ { "id": 1, "name": "Restrict workflow modifications", "target": "actions", "source_type": "Enterprise", "source": "enterprise", "enforcement": "active", "node_id": "RUL_lA", "_links": { "self": { "href": "https://api.github.com/enterprises/enterprise/actions/policies/1" }, "html": { "href": "https://github.com/enterprises/enterprise/settings/policies/actions/1" } }, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }, { "id": 2, "name": "Restrict workflow events", "target": "actions", "source_type": "Enterprise", "source": "enterprise", "enforcement": "evaluate", "node_id": "RUL_lB", "_links": { "self": { "href": "https://api.github.com/enterprises/enterprise/actions/policies/2" }, "html": { "href": "https://github.com/enterprises/enterprise/settings/policies/actions/2" } }, "created_at": "2024-01-15T11:00:00Z", "updated_at": "2024-01-15T11:00:00Z" } ] }

Create an enterprise Actions policy

Create an Actions policy for an enterprise. Omitting workflow_path targets all workflows without storing an explicit condition.

Fine-grained access tokens for "Create an enterprise Actions policy"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Enterprise administration" enterprise permissions (write)

Parameters for "Create an enterprise Actions policy"

Headers
Name, Type, Description
accept string

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

Path parameters
Name, Type, Description
enterprise string Required

The slug version of the enterprise name.

Body parameters
Name, Type, Description
name string Required

The name of the policy.

enforcement string Required

The enforcement level of the ruleset. evaluate allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page. evaluate is not available for the repository target.

Can be one of: disabled, active, evaluate

conditions object

Conditions for an enterprise Actions policy. The conditions object supports one organization target (organization_name, organization_id, or organization_property) combined with one repository target (repository_name or repository_property), and may also contain workflow_path.

Name, Type, Description
organization_name_and_repository_name object

Conditions to target organizations by name and repositories by name

Name, Type, Description
organization_name object Required
Name, Type, Description
include array of strings

Array of organization names or patterns to include. One of these patterns must match for the condition to pass. Also accepts ~ALL to include all organizations and ~EMUS to target all enterprise managed user accounts.

exclude array of strings

Array of organization names or patterns to exclude. The condition will not pass if any of these patterns match.

repository_name object Required
Name, Type, Description
include array of strings

Array of repository names or patterns to include. One of these patterns must match for the condition to pass. Also accepts ~ALL to include all repositories.

exclude array of strings

Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.

protected boolean

Whether renaming of target repositories is prevented.

workflow_path object
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

organization_name_and_repository_property object

Conditions to target organizations by name and repositories by property

Name, Type, Description
organization_name object Required
Name, Type, Description
include array of strings

Array of organization names or patterns to include. One of these patterns must match for the condition to pass. Also accepts ~ALL to include all organizations and ~EMUS to target all enterprise managed user accounts.

exclude array of strings

Array of organization names or patterns to exclude. The condition will not pass if any of these patterns match.

repository_property object Required
Name, Type, Description
include array of objects

The repository properties and values to include. All of these properties must match for the condition to pass.

Name, Type, Description
name string Required

The name of the repository property to target

property_values array of strings Required

The values to match for the repository property

source string

The source of the repository property. Defaults to 'custom' if not specified.

Can be one of: custom, system

exclude array of objects

The repository properties and values to exclude. The condition will not pass if any of these properties match.

Name, Type, Description
name string Required

The name of the repository property to target

property_values array of strings Required

The values to match for the repository property

source string

The source of the repository property. Defaults to 'custom' if not specified.

Can be one of: custom, system

workflow_path object
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

organization_id_and_repository_name object

Conditions to target organizations by id and repositories by name

Name, Type, Description
organization_id object Required
Name, Type, Description
organization_ids array of integers

The organization IDs that the ruleset applies to. One of these IDs must match for the condition to pass.

repository_name object Required
Name, Type, Description
include array of strings

Array of repository names or patterns to include. One of these patterns must match for the condition to pass. Also accepts ~ALL to include all repositories.

exclude array of strings

Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.

protected boolean

Whether renaming of target repositories is prevented.

workflow_path object
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

organization_id_and_repository_property object

Conditions to target organizations by id and repositories by property

Name, Type, Description
organization_id object Required
Name, Type, Description
organization_ids array of integers

The organization IDs that the ruleset applies to. One of these IDs must match for the condition to pass.

repository_property object Required
Name, Type, Description
include array of objects

The repository properties and values to include. All of these properties must match for the condition to pass.

Name, Type, Description
name string Required

The name of the repository property to target

property_values array of strings Required

The values to match for the repository property

source string

The source of the repository property. Defaults to 'custom' if not specified.

Can be one of: custom, system

exclude array of objects

The repository properties and values to exclude. The condition will not pass if any of these properties match.

Name, Type, Description
name string Required

The name of the repository property to target

property_values array of strings Required

The values to match for the repository property

source string

The source of the repository property. Defaults to 'custom' if not specified.

Can be one of: custom, system

workflow_path object
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

organization_property_and_repository_name object

Conditions to target organizations by property and repositories by name

Name, Type, Description
organization_property object Required
Name, Type, Description
include array of objects

The organization properties and values to include. All of these properties must match for the condition to pass.

Name, Type, Description
name string Required

The name of the organization property to target

property_values array of strings Required

The values to match for the organization property

exclude array of objects

The organization properties and values to exclude. The condition will not pass if any of these properties match.

Name, Type, Description
name string Required

The name of the organization property to target

property_values array of strings Required

The values to match for the organization property

repository_name object Required
Name, Type, Description
include array of strings

Array of repository names or patterns to include. One of these patterns must match for the condition to pass. Also accepts ~ALL to include all repositories.

exclude array of strings

Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.

protected boolean

Whether renaming of target repositories is prevented.

workflow_path object
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

organization_property_and_repository_property object

Conditions to target organizations by property and repositories by property

Name, Type, Description
organization_property object Required
Name, Type, Description
include array of objects

The organization properties and values to include. All of these properties must match for the condition to pass.

Name, Type, Description
name string Required

The name of the organization property to target

property_values array of strings Required

The values to match for the organization property

exclude array of objects

The organization properties and values to exclude. The condition will not pass if any of these properties match.

Name, Type, Description
name string Required

The name of the organization property to target

property_values array of strings Required

The values to match for the organization property

repository_property object Required
Name, Type, Description
include array of objects

The repository properties and values to include. All of these properties must match for the condition to pass.

Name, Type, Description
name string Required

The name of the repository property to target

property_values array of strings Required

The values to match for the repository property

source string

The source of the repository property. Defaults to 'custom' if not specified.

Can be one of: custom, system

exclude array of objects

The repository properties and values to exclude. The condition will not pass if any of these properties match.

Name, Type, Description
name string Required

The name of the repository property to target

property_values array of strings Required

The values to match for the repository property

source string

The source of the repository property. Defaults to 'custom' if not specified.

Can be one of: custom, system

workflow_path object
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

rules array of objects

An array of rules within the policy.

Name, Type, Description
restrict_actions_actors object

Choose specific actors that are authorized to trigger Actions workflows.

Name, Type, Description
type string Required

Value: restrict_actions_actors

parameters object
Name, Type, Description
allowed_actors array of objects Required

Select the actors who can run Actions workflows.

Name, Type, Description
id integer Required

ID of the actor authorized to trigger Actions workflows.

type string Required

The type of the actor

Can be one of: User, Bot, Team, BusinessTeam, EnterpriseTeam, IntegrationInstallation, App, RepositoryRole

restrict_action_events object

Choose specific GitHub events that will trigger Actions workflows.

Name, Type, Description
type string Required

Value: restrict_action_events

parameters object
Name, Type, Description
allowed_events array of strings Required

Select the events that can trigger Actions workflows. Supported values are: branch_protection_rule, check_run, check_suite, create, delete, deployment, deployment_status, discussion, discussion_comment, fork, gollum, image_version, issue_comment, issues, label, merge_group, milestone, page_build, project, project_card, project_column, public, pull_request, pull_request_review, pull_request_review_comment, pull_request_target, push, registry_package, release, repository_dispatch, schedule, status, watch, workflow_call, workflow_dispatch, workflow_run

HTTP response status codes for "Create an enterprise Actions policy"

Status codeDescription
201

Created

404

Resource not found

422

Validation failed, or the endpoint has been spammed.

500

Internal Error

Code samples for "Create an enterprise Actions policy"

If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.

Request example

post/enterprises/{enterprise}/actions/policies
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2026-03-10" \ https://api.github.com/enterprises/ENTERPRISE/actions/policies \ -d '{"name":"Require approved actors","enforcement":"active","rules":[{"type":"restrict_actions_actors","parameters":{"allowed_actors":[{"id":1234,"type":"Team"}]}}]}'

Response

Status: 201
{ "id": 1, "name": "Restrict workflow modifications", "target": "actions", "source_type": "Enterprise", "source": "enterprise", "enforcement": "active", "conditions": { "organization_name": { "include": [ "octo-org" ], "exclude": [] }, "repository_name": { "include": [ "octo-repo" ], "exclude": [] } }, "rules": [ { "type": "restrict_actions_actors", "parameters": { "allowed_actors": [ { "id": 5, "type": "User" }, { "id": 1234, "type": "Team" } ] } } ], "node_id": "RUL_lA", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }

Get an enterprise Actions policy

Get a specific Actions policy for an enterprise.

Fine-grained access tokens for "Get an enterprise Actions policy"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Enterprise administration" enterprise permissions (write)

Parameters for "Get an enterprise Actions policy"

Headers
Name, Type, Description
accept string

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

Path parameters
Name, Type, Description
enterprise string Required

The slug version of the enterprise name.

policy_id integer Required

The ID of the policy.

HTTP response status codes for "Get an enterprise Actions policy"

Status codeDescription
200

OK

404

Resource not found

500

Internal Error

Code samples for "Get an enterprise Actions policy"

If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.

Request example

get/enterprises/{enterprise}/actions/policies/{policy_id}
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2026-03-10" \ https://api.github.com/enterprises/ENTERPRISE/actions/policies/POLICY_ID

Response

Status: 200
{ "id": 1, "name": "Restrict workflow modifications", "target": "actions", "source_type": "Enterprise", "source": "enterprise", "enforcement": "active", "conditions": { "organization_name": { "include": [ "octo-org" ], "exclude": [] }, "repository_name": { "include": [ "octo-repo" ], "exclude": [] } }, "rules": [ { "type": "restrict_actions_actors", "parameters": { "allowed_actors": [ { "id": 5, "type": "User" }, { "id": 1234, "type": "Team" } ] } } ], "node_id": "RUL_lA", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }

Update an enterprise Actions policy

Update an Actions policy for an enterprise. Omitting workflow_path preserves the policy's existing workflow targeting.

Fine-grained access tokens for "Update an enterprise Actions policy"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Enterprise administration" enterprise permissions (write)

Parameters for "Update an enterprise Actions policy"

Headers
Name, Type, Description
accept string

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

Path parameters
Name, Type, Description
enterprise string Required

The slug version of the enterprise name.

policy_id integer Required

The ID of the policy.

Body parameters
Name, Type, Description
name string

The name of the policy.

enforcement string

The enforcement level of the ruleset. evaluate allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page. evaluate is not available for the repository target.

Can be one of: disabled, active, evaluate

conditions object

Conditions for an enterprise Actions policy. The conditions object supports one organization target (organization_name, organization_id, or organization_property) combined with one repository target (repository_name or repository_property), and may also contain workflow_path.

Name, Type, Description
organization_name_and_repository_name object

Conditions to target organizations by name and repositories by name

Name, Type, Description
organization_name object Required
Name, Type, Description
include array of strings

Array of organization names or patterns to include. One of these patterns must match for the condition to pass. Also accepts ~ALL to include all organizations and ~EMUS to target all enterprise managed user accounts.

exclude array of strings

Array of organization names or patterns to exclude. The condition will not pass if any of these patterns match.

repository_name object Required
Name, Type, Description
include array of strings

Array of repository names or patterns to include. One of these patterns must match for the condition to pass. Also accepts ~ALL to include all repositories.

exclude array of strings

Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.

protected boolean

Whether renaming of target repositories is prevented.

workflow_path object
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

organization_name_and_repository_property object

Conditions to target organizations by name and repositories by property

Name, Type, Description
organization_name object Required
Name, Type, Description
include array of strings

Array of organization names or patterns to include. One of these patterns must match for the condition to pass. Also accepts ~ALL to include all organizations and ~EMUS to target all enterprise managed user accounts.

exclude array of strings

Array of organization names or patterns to exclude. The condition will not pass if any of these patterns match.

repository_property object Required
Name, Type, Description
include array of objects

The repository properties and values to include. All of these properties must match for the condition to pass.

Name, Type, Description
name string Required

The name of the repository property to target

property_values array of strings Required

The values to match for the repository property

source string

The source of the repository property. Defaults to 'custom' if not specified.

Can be one of: custom, system

exclude array of objects

The repository properties and values to exclude. The condition will not pass if any of these properties match.

Name, Type, Description
name string Required

The name of the repository property to target

property_values array of strings Required

The values to match for the repository property

source string

The source of the repository property. Defaults to 'custom' if not specified.

Can be one of: custom, system

workflow_path object
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

organization_id_and_repository_name object

Conditions to target organizations by id and repositories by name

Name, Type, Description
organization_id object Required
Name, Type, Description
organization_ids array of integers

The organization IDs that the ruleset applies to. One of these IDs must match for the condition to pass.

repository_name object Required
Name, Type, Description
include array of strings

Array of repository names or patterns to include. One of these patterns must match for the condition to pass. Also accepts ~ALL to include all repositories.

exclude array of strings

Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.

protected boolean

Whether renaming of target repositories is prevented.

workflow_path object
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

organization_id_and_repository_property object

Conditions to target organizations by id and repositories by property

Name, Type, Description
organization_id object Required
Name, Type, Description
organization_ids array of integers

The organization IDs that the ruleset applies to. One of these IDs must match for the condition to pass.

repository_property object Required
Name, Type, Description
include array of objects

The repository properties and values to include. All of these properties must match for the condition to pass.

Name, Type, Description
name string Required

The name of the repository property to target

property_values array of strings Required

The values to match for the repository property

source string

The source of the repository property. Defaults to 'custom' if not specified.

Can be one of: custom, system

exclude array of objects

The repository properties and values to exclude. The condition will not pass if any of these properties match.

Name, Type, Description
name string Required

The name of the repository property to target

property_values array of strings Required

The values to match for the repository property

source string

The source of the repository property. Defaults to 'custom' if not specified.

Can be one of: custom, system

workflow_path object
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

organization_property_and_repository_name object

Conditions to target organizations by property and repositories by name

Name, Type, Description
organization_property object Required
Name, Type, Description
include array of objects

The organization properties and values to include. All of these properties must match for the condition to pass.

Name, Type, Description
name string Required

The name of the organization property to target

property_values array of strings Required

The values to match for the organization property

exclude array of objects

The organization properties and values to exclude. The condition will not pass if any of these properties match.

Name, Type, Description
name string Required

The name of the organization property to target

property_values array of strings Required

The values to match for the organization property

repository_name object Required
Name, Type, Description
include array of strings

Array of repository names or patterns to include. One of these patterns must match for the condition to pass. Also accepts ~ALL to include all repositories.

exclude array of strings

Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.

protected boolean

Whether renaming of target repositories is prevented.

workflow_path object
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

organization_property_and_repository_property object

Conditions to target organizations by property and repositories by property

Name, Type, Description
organization_property object Required
Name, Type, Description
include array of objects

The organization properties and values to include. All of these properties must match for the condition to pass.

Name, Type, Description
name string Required

The name of the organization property to target

property_values array of strings Required

The values to match for the organization property

exclude array of objects

The organization properties and values to exclude. The condition will not pass if any of these properties match.

Name, Type, Description
name string Required

The name of the organization property to target

property_values array of strings Required

The values to match for the organization property

repository_property object Required
Name, Type, Description
include array of objects

The repository properties and values to include. All of these properties must match for the condition to pass.

Name, Type, Description
name string Required

The name of the repository property to target

property_values array of strings Required

The values to match for the repository property

source string

The source of the repository property. Defaults to 'custom' if not specified.

Can be one of: custom, system

exclude array of objects

The repository properties and values to exclude. The condition will not pass if any of these properties match.

Name, Type, Description
name string Required

The name of the repository property to target

property_values array of strings Required

The values to match for the repository property

source string

The source of the repository property. Defaults to 'custom' if not specified.

Can be one of: custom, system

workflow_path object
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

rules array of objects

An array of rules within the policy.

Name, Type, Description
restrict_actions_actors object

Choose specific actors that are authorized to trigger Actions workflows.

Name, Type, Description
type string Required

Value: restrict_actions_actors

parameters object
Name, Type, Description
allowed_actors array of objects Required

Select the actors who can run Actions workflows.

Name, Type, Description
id integer Required

ID of the actor authorized to trigger Actions workflows.

type string Required

The type of the actor

Can be one of: User, Bot, Team, BusinessTeam, EnterpriseTeam, IntegrationInstallation, App, RepositoryRole

restrict_action_events object

Choose specific GitHub events that will trigger Actions workflows.

Name, Type, Description
type string Required

Value: restrict_action_events

parameters object
Name, Type, Description
allowed_events array of strings Required

Select the events that can trigger Actions workflows. Supported values are: branch_protection_rule, check_run, check_suite, create, delete, deployment, deployment_status, discussion, discussion_comment, fork, gollum, image_version, issue_comment, issues, label, merge_group, milestone, page_build, project, project_card, project_column, public, pull_request, pull_request_review, pull_request_review_comment, pull_request_target, push, registry_package, release, repository_dispatch, schedule, status, watch, workflow_call, workflow_dispatch, workflow_run

HTTP response status codes for "Update an enterprise Actions policy"

Status codeDescription
200

OK

404

Resource not found

422

Validation failed, or the endpoint has been spammed.

500

Internal Error

Code samples for "Update an enterprise Actions policy"

If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.

Request example

put/enterprises/{enterprise}/actions/policies/{policy_id}
curl -L \ -X PUT \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2026-03-10" \ https://api.github.com/enterprises/ENTERPRISE/actions/policies/POLICY_ID \ -d '{"name":"Updated policy name","enforcement":"active"}'

Response

Status: 200
{ "id": 1, "name": "Restrict workflow modifications", "target": "actions", "source_type": "Enterprise", "source": "enterprise", "enforcement": "active", "conditions": { "organization_name": { "include": [ "octo-org" ], "exclude": [] }, "repository_name": { "include": [ "octo-repo" ], "exclude": [] } }, "rules": [ { "type": "restrict_actions_actors", "parameters": { "allowed_actors": [ { "id": 5, "type": "User" }, { "id": 1234, "type": "Team" } ] } } ], "node_id": "RUL_lA", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }

Delete an enterprise Actions policy

Delete an Actions policy for an enterprise.

Fine-grained access tokens for "Delete an enterprise Actions policy"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Enterprise administration" enterprise permissions (write)

Parameters for "Delete an enterprise Actions policy"

Headers
Name, Type, Description
accept string

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

Path parameters
Name, Type, Description
enterprise string Required

The slug version of the enterprise name.

policy_id integer Required

The ID of the policy.

HTTP response status codes for "Delete an enterprise Actions policy"

Status codeDescription
204

No Content

404

Resource not found

500

Internal Error

Code samples for "Delete an enterprise Actions policy"

If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.

Request example

delete/enterprises/{enterprise}/actions/policies/{policy_id}
curl -L \ -X DELETE \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2026-03-10" \ https://api.github.com/enterprises/ENTERPRISE/actions/policies/POLICY_ID

Response

Status: 204

List organization Actions policies

List all Actions policies for an organization.

Fine-grained access tokens for "List organization Actions policies"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Administration" organization permissions (write)

Parameters for "List organization Actions policies"

Headers
Name, Type, Description
accept string

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

Path parameters
Name, Type, Description
org string Required

The organization name. The name is not case sensitive.

Query parameters
Name, Type, Description
per_page integer

The number of results per page (max 100). For more information, see "Using pagination in the REST API."

Default: 30

page integer

The page number of the results to fetch. For more information, see "Using pagination in the REST API."

Default: 1

has_parents boolean

Include policies configured at higher levels that apply to this organization

Default: true

HTTP response status codes for "List organization Actions policies"

Status codeDescription
200

OK

404

Resource not found

500

Internal Error

Code samples for "List organization Actions policies"

If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.

Request example

get/orgs/{org}/actions/policies
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2026-03-10" \ https://api.github.com/orgs/ORG/actions/policies

Response

Status: 200
{ "total_count": 2, "policies": [ { "id": 1, "name": "Restrict workflow modifications", "target": "actions", "source_type": "Enterprise", "source": "enterprise", "enforcement": "active", "node_id": "RUL_lA", "_links": { "self": { "href": "https://api.github.com/enterprises/enterprise/actions/policies/1" }, "html": { "href": "https://github.com/enterprises/enterprise/settings/policies/actions/1" } }, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }, { "id": 2, "name": "Restrict workflow events", "target": "actions", "source_type": "Enterprise", "source": "enterprise", "enforcement": "evaluate", "node_id": "RUL_lB", "_links": { "self": { "href": "https://api.github.com/enterprises/enterprise/actions/policies/2" }, "html": { "href": "https://github.com/enterprises/enterprise/settings/policies/actions/2" } }, "created_at": "2024-01-15T11:00:00Z", "updated_at": "2024-01-15T11:00:00Z" } ] }

Create an organization Actions policy

Create an Actions policy for an organization. Omitting workflow_path targets all workflows without storing an explicit condition.

Fine-grained access tokens for "Create an organization Actions policy"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Administration" organization permissions (write)

Parameters for "Create an organization Actions policy"

Headers
Name, Type, Description
accept string

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

Path parameters
Name, Type, Description
org string Required

The organization name. The name is not case sensitive.

Body parameters
Name, Type, Description
name string Required

The name of the policy.

enforcement string Required

The enforcement level of the ruleset. evaluate allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page. evaluate is not available for the repository target.

Can be one of: disabled, active, evaluate

conditions object

Conditions for an organization Actions policy. The conditions object should contain one of repository_name, repository_id, or repository_property, and may also contain workflow_path.

Name, Type, Description
Repository ruleset conditions for repository names object

Parameters for a repository name condition

Name, Type, Description
repository_name object Required
Name, Type, Description
include array of strings

Array of repository names or patterns to include. One of these patterns must match for the condition to pass. Also accepts ~ALL to include all repositories.

exclude array of strings

Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.

protected boolean

Whether renaming of target repositories is prevented.

workflow_path object
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

Repository ruleset conditions for repository IDs object

Parameters for a repository ID condition

Name, Type, Description
repository_id object Required
Name, Type, Description
repository_ids array of integers

The repository IDs that the ruleset applies to. One of these IDs must match for the condition to pass.

workflow_path object
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

Repository ruleset conditions for repository properties object

Parameters for a repository property condition

Name, Type, Description
repository_property object Required
Name, Type, Description
include array of objects

The repository properties and values to include. All of these properties must match for the condition to pass.

Name, Type, Description
name string Required

The name of the repository property to target

property_values array of strings Required

The values to match for the repository property

source string

The source of the repository property. Defaults to 'custom' if not specified.

Can be one of: custom, system

exclude array of objects

The repository properties and values to exclude. The condition will not pass if any of these properties match.

Name, Type, Description
name string Required

The name of the repository property to target

property_values array of strings Required

The values to match for the repository property

source string

The source of the repository property. Defaults to 'custom' if not specified.

Can be one of: custom, system

workflow_path object
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

rules array of objects

An array of rules within the policy.

Name, Type, Description
restrict_actions_actors object

Choose specific actors that are authorized to trigger Actions workflows.

Name, Type, Description
type string Required

Value: restrict_actions_actors

parameters object
Name, Type, Description
allowed_actors array of objects Required

Select the actors who can run Actions workflows.

Name, Type, Description
id integer Required

ID of the actor authorized to trigger Actions workflows.

type string Required

The type of the actor

Can be one of: User, Bot, Team, BusinessTeam, EnterpriseTeam, IntegrationInstallation, App, RepositoryRole

restrict_action_events object

Choose specific GitHub events that will trigger Actions workflows.

Name, Type, Description
type string Required

Value: restrict_action_events

parameters object
Name, Type, Description
allowed_events array of strings Required

Select the events that can trigger Actions workflows. Supported values are: branch_protection_rule, check_run, check_suite, create, delete, deployment, deployment_status, discussion, discussion_comment, fork, gollum, image_version, issue_comment, issues, label, merge_group, milestone, page_build, project, project_card, project_column, public, pull_request, pull_request_review, pull_request_review_comment, pull_request_target, push, registry_package, release, repository_dispatch, schedule, status, watch, workflow_call, workflow_dispatch, workflow_run

HTTP response status codes for "Create an organization Actions policy"

Status codeDescription
201

Created

404

Resource not found

422

Validation failed, or the endpoint has been spammed.

500

Internal Error

Code samples for "Create an organization Actions policy"

If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.

Request example

post/orgs/{org}/actions/policies
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2026-03-10" \ https://api.github.com/orgs/ORG/actions/policies \ -d '{"name":"Require approved actors","enforcement":"active","rules":[{"type":"restrict_actions_actors","parameters":{"allowed_actors":[{"id":1234,"type":"Team"}]}}]}'

Response

Status: 201
{ "id": 1, "name": "Restrict workflow modifications", "target": "actions", "source_type": "Enterprise", "source": "enterprise", "enforcement": "active", "conditions": { "organization_name": { "include": [ "octo-org" ], "exclude": [] }, "repository_name": { "include": [ "octo-repo" ], "exclude": [] } }, "rules": [ { "type": "restrict_actions_actors", "parameters": { "allowed_actors": [ { "id": 5, "type": "User" }, { "id": 1234, "type": "Team" } ] } } ], "node_id": "RUL_lA", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }

Get an organization Actions policy

Get a specific Actions policy for an organization.

Fine-grained access tokens for "Get an organization Actions policy"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Administration" organization permissions (write)

Parameters for "Get an organization Actions policy"

Headers
Name, Type, Description
accept string

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

Path parameters
Name, Type, Description
org string Required

The organization name. The name is not case sensitive.

policy_id integer Required

The ID of the policy.

HTTP response status codes for "Get an organization Actions policy"

Status codeDescription
200

OK

404

Resource not found

500

Internal Error

Code samples for "Get an organization Actions policy"

If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.

Request example

get/orgs/{org}/actions/policies/{policy_id}
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2026-03-10" \ https://api.github.com/orgs/ORG/actions/policies/POLICY_ID

Response

Status: 200
{ "id": 1, "name": "Restrict workflow modifications", "target": "actions", "source_type": "Enterprise", "source": "enterprise", "enforcement": "active", "conditions": { "organization_name": { "include": [ "octo-org" ], "exclude": [] }, "repository_name": { "include": [ "octo-repo" ], "exclude": [] } }, "rules": [ { "type": "restrict_actions_actors", "parameters": { "allowed_actors": [ { "id": 5, "type": "User" }, { "id": 1234, "type": "Team" } ] } } ], "node_id": "RUL_lA", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }

Update an organization Actions policy

Update an Actions policy for an organization. Omitting workflow_path preserves the policy's existing workflow targeting.

Fine-grained access tokens for "Update an organization Actions policy"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Administration" organization permissions (write)

Parameters for "Update an organization Actions policy"

Headers
Name, Type, Description
accept string

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

Path parameters
Name, Type, Description
org string Required

The organization name. The name is not case sensitive.

policy_id integer Required

The ID of the policy.

Body parameters
Name, Type, Description
name string

The name of the policy.

enforcement string

The enforcement level of the ruleset. evaluate allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page. evaluate is not available for the repository target.

Can be one of: disabled, active, evaluate

conditions object

Conditions for an organization Actions policy. The conditions object should contain one of repository_name, repository_id, or repository_property, and may also contain workflow_path.

Name, Type, Description
Repository ruleset conditions for repository names object

Parameters for a repository name condition

Name, Type, Description
repository_name object Required
Name, Type, Description
include array of strings

Array of repository names or patterns to include. One of these patterns must match for the condition to pass. Also accepts ~ALL to include all repositories.

exclude array of strings

Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.

protected boolean

Whether renaming of target repositories is prevented.

workflow_path object
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

Repository ruleset conditions for repository IDs object

Parameters for a repository ID condition

Name, Type, Description
repository_id object Required
Name, Type, Description
repository_ids array of integers

The repository IDs that the ruleset applies to. One of these IDs must match for the condition to pass.

workflow_path object
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

Repository ruleset conditions for repository properties object

Parameters for a repository property condition

Name, Type, Description
repository_property object Required
Name, Type, Description
include array of objects

The repository properties and values to include. All of these properties must match for the condition to pass.

Name, Type, Description
name string Required

The name of the repository property to target

property_values array of strings Required

The values to match for the repository property

source string

The source of the repository property. Defaults to 'custom' if not specified.

Can be one of: custom, system

exclude array of objects

The repository properties and values to exclude. The condition will not pass if any of these properties match.

Name, Type, Description
name string Required

The name of the repository property to target

property_values array of strings Required

The values to match for the repository property

source string

The source of the repository property. Defaults to 'custom' if not specified.

Can be one of: custom, system

workflow_path object
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

rules array of objects

An array of rules within the policy.

Name, Type, Description
restrict_actions_actors object

Choose specific actors that are authorized to trigger Actions workflows.

Name, Type, Description
type string Required

Value: restrict_actions_actors

parameters object
Name, Type, Description
allowed_actors array of objects Required

Select the actors who can run Actions workflows.

Name, Type, Description
id integer Required

ID of the actor authorized to trigger Actions workflows.

type string Required

The type of the actor

Can be one of: User, Bot, Team, BusinessTeam, EnterpriseTeam, IntegrationInstallation, App, RepositoryRole

restrict_action_events object

Choose specific GitHub events that will trigger Actions workflows.

Name, Type, Description
type string Required

Value: restrict_action_events

parameters object
Name, Type, Description
allowed_events array of strings Required

Select the events that can trigger Actions workflows. Supported values are: branch_protection_rule, check_run, check_suite, create, delete, deployment, deployment_status, discussion, discussion_comment, fork, gollum, image_version, issue_comment, issues, label, merge_group, milestone, page_build, project, project_card, project_column, public, pull_request, pull_request_review, pull_request_review_comment, pull_request_target, push, registry_package, release, repository_dispatch, schedule, status, watch, workflow_call, workflow_dispatch, workflow_run

HTTP response status codes for "Update an organization Actions policy"

Status codeDescription
200

OK

404

Resource not found

422

Validation failed, or the endpoint has been spammed.

500

Internal Error

Code samples for "Update an organization Actions policy"

If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.

Request example

put/orgs/{org}/actions/policies/{policy_id}
curl -L \ -X PUT \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2026-03-10" \ https://api.github.com/orgs/ORG/actions/policies/POLICY_ID \ -d '{"name":"Updated policy name","enforcement":"active"}'

Response

Status: 200
{ "id": 1, "name": "Restrict workflow modifications", "target": "actions", "source_type": "Enterprise", "source": "enterprise", "enforcement": "active", "conditions": { "organization_name": { "include": [ "octo-org" ], "exclude": [] }, "repository_name": { "include": [ "octo-repo" ], "exclude": [] } }, "rules": [ { "type": "restrict_actions_actors", "parameters": { "allowed_actors": [ { "id": 5, "type": "User" }, { "id": 1234, "type": "Team" } ] } } ], "node_id": "RUL_lA", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }

Delete an organization Actions policy

Delete an Actions policy for an organization.

Fine-grained access tokens for "Delete an organization Actions policy"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Administration" organization permissions (write)

Parameters for "Delete an organization Actions policy"

Headers
Name, Type, Description
accept string

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

Path parameters
Name, Type, Description
org string Required

The organization name. The name is not case sensitive.

policy_id integer Required

The ID of the policy.

HTTP response status codes for "Delete an organization Actions policy"

Status codeDescription
204

No Content

404

Resource not found

500

Internal Error

Code samples for "Delete an organization Actions policy"

If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.

Request example

delete/orgs/{org}/actions/policies/{policy_id}
curl -L \ -X DELETE \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2026-03-10" \ https://api.github.com/orgs/ORG/actions/policies/POLICY_ID

Response

Status: 204

List repository Actions policies

List all Actions policies for a repository.

Fine-grained access tokens for "List repository Actions policies"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Administration" repository permissions (write)

Parameters for "List repository Actions policies"

Headers
Name, Type, Description
accept string

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

Path parameters
Name, Type, Description
owner string Required

The account owner of the repository. The name is not case sensitive.

repo string Required

The name of the repository without the .git extension. The name is not case sensitive.

Query parameters
Name, Type, Description
per_page integer

The number of results per page (max 100). For more information, see "Using pagination in the REST API."

Default: 30

page integer

The page number of the results to fetch. For more information, see "Using pagination in the REST API."

Default: 1

has_parents boolean

Include policies configured at higher levels that apply to this repository

Default: true

HTTP response status codes for "List repository Actions policies"

Status codeDescription
200

OK

404

Resource not found

500

Internal Error

Code samples for "List repository Actions policies"

If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.

Request example

get/repos/{owner}/{repo}/actions/policies
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2026-03-10" \ https://api.github.com/repos/OWNER/REPO/actions/policies

Response

Status: 200
{ "total_count": 2, "policies": [ { "id": 1, "name": "Restrict workflow modifications", "target": "actions", "source_type": "Enterprise", "source": "enterprise", "enforcement": "active", "node_id": "RUL_lA", "_links": { "self": { "href": "https://api.github.com/enterprises/enterprise/actions/policies/1" }, "html": { "href": "https://github.com/enterprises/enterprise/settings/policies/actions/1" } }, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }, { "id": 2, "name": "Restrict workflow events", "target": "actions", "source_type": "Enterprise", "source": "enterprise", "enforcement": "evaluate", "node_id": "RUL_lB", "_links": { "self": { "href": "https://api.github.com/enterprises/enterprise/actions/policies/2" }, "html": { "href": "https://github.com/enterprises/enterprise/settings/policies/actions/2" } }, "created_at": "2024-01-15T11:00:00Z", "updated_at": "2024-01-15T11:00:00Z" } ] }

Create a repository Actions policy

Create an Actions policy for a repository. Omitting workflow_path targets all workflows without storing an explicit condition.

Fine-grained access tokens for "Create a repository Actions policy"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Administration" repository permissions (write)

Parameters for "Create a repository Actions policy"

Headers
Name, Type, Description
accept string

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

Path parameters
Name, Type, Description
owner string Required

The account owner of the repository. The name is not case sensitive.

repo string Required

The name of the repository without the .git extension. The name is not case sensitive.

Body parameters
Name, Type, Description
name string Required

The name of the policy.

enforcement string Required

The enforcement level of the ruleset. evaluate allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page. evaluate is not available for the repository target.

Can be one of: disabled, active, evaluate

conditions object

Conditions for a repository Actions policy. The object may be empty to preserve or use the default workflow targeting, or contain only workflow_path.

Name, Type, Description
object
Actions policy workflow path condition object

Parameters for an Actions policy workflow path condition. Omitting workflow_path when creating a policy targets all workflows without storing an explicit condition. Omitting it when updating a policy preserves the existing workflow targeting. For new or changed workflow conditions, the API requires at least one included or excluded pattern. This is validated server-side rather than by this schema, which can also describe existing stored conditions.

Name, Type, Description
workflow_path object Required
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

rules array of objects

An array of rules within the policy.

Name, Type, Description
restrict_actions_actors object

Choose specific actors that are authorized to trigger Actions workflows.

Name, Type, Description
type string Required

Value: restrict_actions_actors

parameters object
Name, Type, Description
allowed_actors array of objects Required

Select the actors who can run Actions workflows.

Name, Type, Description
id integer Required

ID of the actor authorized to trigger Actions workflows.

type string Required

The type of the actor

Can be one of: User, Bot, Team, BusinessTeam, EnterpriseTeam, IntegrationInstallation, App, RepositoryRole

restrict_action_events object

Choose specific GitHub events that will trigger Actions workflows.

Name, Type, Description
type string Required

Value: restrict_action_events

parameters object
Name, Type, Description
allowed_events array of strings Required

Select the events that can trigger Actions workflows. Supported values are: branch_protection_rule, check_run, check_suite, create, delete, deployment, deployment_status, discussion, discussion_comment, fork, gollum, image_version, issue_comment, issues, label, merge_group, milestone, page_build, project, project_card, project_column, public, pull_request, pull_request_review, pull_request_review_comment, pull_request_target, push, registry_package, release, repository_dispatch, schedule, status, watch, workflow_call, workflow_dispatch, workflow_run

HTTP response status codes for "Create a repository Actions policy"

Status codeDescription
201

Created

404

Resource not found

422

Validation failed, or the endpoint has been spammed.

500

Internal Error

Code samples for "Create a repository Actions policy"

If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.

Request example

post/repos/{owner}/{repo}/actions/policies
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2026-03-10" \ https://api.github.com/repos/OWNER/REPO/actions/policies \ -d '{"name":"Require approved actors","enforcement":"active","rules":[{"type":"restrict_actions_actors","parameters":{"allowed_actors":[{"id":1234,"type":"Team"}]}}]}'

Response

Status: 201
{ "id": 1, "name": "Restrict workflow modifications", "target": "actions", "source_type": "Enterprise", "source": "enterprise", "enforcement": "active", "conditions": { "organization_name": { "include": [ "octo-org" ], "exclude": [] }, "repository_name": { "include": [ "octo-repo" ], "exclude": [] } }, "rules": [ { "type": "restrict_actions_actors", "parameters": { "allowed_actors": [ { "id": 5, "type": "User" }, { "id": 1234, "type": "Team" } ] } } ], "node_id": "RUL_lA", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }

Get a repository Actions policy

Get a specific Actions policy for a repository.

Fine-grained access tokens for "Get a repository Actions policy"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Administration" repository permissions (write)

Parameters for "Get a repository Actions policy"

Headers
Name, Type, Description
accept string

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

Path parameters
Name, Type, Description
owner string Required

The account owner of the repository. The name is not case sensitive.

repo string Required

The name of the repository without the .git extension. The name is not case sensitive.

policy_id integer Required

The ID of the policy.

HTTP response status codes for "Get a repository Actions policy"

Status codeDescription
200

OK

404

Resource not found

500

Internal Error

Code samples for "Get a repository Actions policy"

If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.

Request example

get/repos/{owner}/{repo}/actions/policies/{policy_id}
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2026-03-10" \ https://api.github.com/repos/OWNER/REPO/actions/policies/POLICY_ID

Response

Status: 200
{ "id": 1, "name": "Restrict workflow modifications", "target": "actions", "source_type": "Enterprise", "source": "enterprise", "enforcement": "active", "conditions": { "organization_name": { "include": [ "octo-org" ], "exclude": [] }, "repository_name": { "include": [ "octo-repo" ], "exclude": [] } }, "rules": [ { "type": "restrict_actions_actors", "parameters": { "allowed_actors": [ { "id": 5, "type": "User" }, { "id": 1234, "type": "Team" } ] } } ], "node_id": "RUL_lA", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }

Update a repository Actions policy

Update an Actions policy for a repository. Omitting workflow_path preserves the policy's existing workflow targeting.

Fine-grained access tokens for "Update a repository Actions policy"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Administration" repository permissions (write)

Parameters for "Update a repository Actions policy"

Headers
Name, Type, Description
accept string

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

Path parameters
Name, Type, Description
owner string Required

The account owner of the repository. The name is not case sensitive.

repo string Required

The name of the repository without the .git extension. The name is not case sensitive.

policy_id integer Required

The ID of the policy.

Body parameters
Name, Type, Description
name string

The name of the policy.

enforcement string

The enforcement level of the ruleset. evaluate allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page. evaluate is not available for the repository target.

Can be one of: disabled, active, evaluate

conditions object

Conditions for a repository Actions policy. The object may be empty to preserve or use the default workflow targeting, or contain only workflow_path.

Name, Type, Description
object
Actions policy workflow path condition object

Parameters for an Actions policy workflow path condition. Omitting workflow_path when creating a policy targets all workflows without storing an explicit condition. Omitting it when updating a policy preserves the existing workflow targeting. For new or changed workflow conditions, the API requires at least one included or excluded pattern. This is validated server-side rather than by this schema, which can also describe existing stored conditions.

Name, Type, Description
workflow_path object Required
Name, Type, Description
include array of strings Required

Array of workflow file paths or glob patterns to include. An empty array includes all workflows not matched by an excluded pattern. Use ~ALL by itself to include all workflows. ~ALL cannot be combined with other included patterns.

exclude array of strings Required

Array of workflow file paths or glob patterns to exclude. The condition will not pass if any of these patterns match. ~ALL is not allowed in this array.

rules array of objects

An array of rules within the policy.

Name, Type, Description
restrict_actions_actors object

Choose specific actors that are authorized to trigger Actions workflows.

Name, Type, Description
type string Required

Value: restrict_actions_actors

parameters object
Name, Type, Description
allowed_actors array of objects Required

Select the actors who can run Actions workflows.

Name, Type, Description
id integer Required

ID of the actor authorized to trigger Actions workflows.

type string Required

The type of the actor

Can be one of: User, Bot, Team, BusinessTeam, EnterpriseTeam, IntegrationInstallation, App, RepositoryRole

restrict_action_events object

Choose specific GitHub events that will trigger Actions workflows.

Name, Type, Description
type string Required

Value: restrict_action_events

parameters object
Name, Type, Description
allowed_events array of strings Required

Select the events that can trigger Actions workflows. Supported values are: branch_protection_rule, check_run, check_suite, create, delete, deployment, deployment_status, discussion, discussion_comment, fork, gollum, image_version, issue_comment, issues, label, merge_group, milestone, page_build, project, project_card, project_column, public, pull_request, pull_request_review, pull_request_review_comment, pull_request_target, push, registry_package, release, repository_dispatch, schedule, status, watch, workflow_call, workflow_dispatch, workflow_run

HTTP response status codes for "Update a repository Actions policy"

Status codeDescription
200

OK

404

Resource not found

422

Validation failed, or the endpoint has been spammed.

500

Internal Error

Code samples for "Update a repository Actions policy"

If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.

Request example

put/repos/{owner}/{repo}/actions/policies/{policy_id}
curl -L \ -X PUT \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2026-03-10" \ https://api.github.com/repos/OWNER/REPO/actions/policies/POLICY_ID \ -d '{"name":"Updated policy name","enforcement":"active"}'

Response

Status: 200
{ "id": 1, "name": "Restrict workflow modifications", "target": "actions", "source_type": "Enterprise", "source": "enterprise", "enforcement": "active", "conditions": { "organization_name": { "include": [ "octo-org" ], "exclude": [] }, "repository_name": { "include": [ "octo-repo" ], "exclude": [] } }, "rules": [ { "type": "restrict_actions_actors", "parameters": { "allowed_actors": [ { "id": 5, "type": "User" }, { "id": 1234, "type": "Team" } ] } } ], "node_id": "RUL_lA", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }

Delete a repository Actions policy

Delete an Actions policy for a repository.

Fine-grained access tokens for "Delete a repository Actions policy"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Administration" repository permissions (write)

Parameters for "Delete a repository Actions policy"

Headers
Name, Type, Description
accept string

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

Path parameters
Name, Type, Description
owner string Required

The account owner of the repository. The name is not case sensitive.

repo string Required

The name of the repository without the .git extension. The name is not case sensitive.

policy_id integer Required

The ID of the policy.

HTTP response status codes for "Delete a repository Actions policy"

Status codeDescription
204

No Content

404

Resource not found

500

Internal Error

Code samples for "Delete a repository Actions policy"

If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.

Request example

delete/repos/{owner}/{repo}/actions/policies/{policy_id}
curl -L \ -X DELETE \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2026-03-10" \ https://api.github.com/repos/OWNER/REPO/actions/policies/POLICY_ID

Response

Status: 204