This version of GitHub Enterprise Server was discontinued on 2024-03-26. No patch releases will be made, even for critical security issues. For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise Server. For help with the upgrade, contact GitHub Enterprise support.
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 that are allowed to run. For more information, see "Usage limits, billing, and administration."
Get GitHub Actions permissions for an enterprise
Gets the GitHub Actions permissions policy for organizations and allowed actions in an enterprise.
OAuth app tokens and personal access tokens (classic) need the admin:enterprise
scope to use this endpoint.
Parameters for "Get GitHub Actions permissions for an enterprise"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
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"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/permissions
Response
Status: 200
{
"enabled_organizations": "all",
"allowed_actions": "selected",
"selected_actions_url": "https://HOSTNAME/enterprises/2/actions/permissions/selected-actions"
}
Set GitHub Actions permissions for an enterprise
Sets the GitHub Actions permissions policy for organizations and allowed actions in an enterprise.
OAuth app tokens and personal access tokens (classic) need the admin:enterprise
scope to use this endpoint.
Parameters for "Set GitHub Actions permissions for an enterprise"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
Name, Type, Description |
---|
enabled_organizations string RequiredThe policy that controls the organizations in the enterprise that are allowed to run GitHub Actions. Can be one of: |
allowed_actions string The permissions policy that controls the actions that are allowed to run. Can be one of: |
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"
Request example
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/permissions \
-d '{"enabled_organizations":"all","allowed_actions":"selected"}'
Response
Status: 204
List 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.
Parameters for "List selected organizations enabled for GitHub Actions in an enterprise"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
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: |
page integer The 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"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/permissions/organizations
Response
Status: 200
{
"total_count": 1,
"organizations": [
{
"login": "octocat",
"id": 161335,
"node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5",
"url": "https://HOSTNAME/orgs/octo-org",
"repos_url": "https://HOSTNAME/orgs/octo-org/repos",
"events_url": "https://HOSTNAME/orgs/octo-org/events",
"hooks_url": "https://HOSTNAME/orgs/octo-org/hooks",
"issues_url": "https://HOSTNAME/orgs/octo-org/issues",
"members_url": "https://HOSTNAME/orgs/octo-org/members{/member}",
"public_members_url": "https://HOSTNAME/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.
Parameters for "Set selected organizations enabled for GitHub Actions in an enterprise"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
Name, Type, Description |
---|
selected_organization_ids array 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"
Request example
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/permissions/organizations \
-d '{"selected_organization_ids":[32,91]}'
Response
Status: 204
Enable 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.
Parameters for "Enable a selected organization for GitHub Actions in an enterprise"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
org_id integer 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"
Request example
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/permissions/organizations/ORG_ID
Response
Status: 204
Disable 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.
Parameters for "Disable a selected organization for GitHub Actions in an enterprise"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
org_id integer 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"
Request example
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/permissions/organizations/ORG_ID
Response
Status: 204
Get allowed actions for an enterprise
Gets the selected actions 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.
Parameters for "Get allowed actions for an enterprise"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
HTTP response status codes for "Get allowed actions for an enterprise"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get allowed actions for an enterprise"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/permissions/selected-actions
Response
Status: 200
{
"github_owned_allowed": true,
"verified_allowed": false,
"patterns_allowed": [
"monalisa/octocat@*",
"docker/*"
]
}
Set allowed actions for an enterprise
Sets the actions 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.
Parameters for "Set allowed actions for an enterprise"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
Name, Type, Description |
---|
github_owned_allowed boolean RequiredWhether GitHub-owned actions are allowed. For example, this includes the actions in the |
patterns_allowed array of strings RequiredSpecifies a list of string-matching patterns to allow specific action(s). Wildcards, tags, and SHAs are allowed. For example, |
HTTP response status codes for "Set allowed actions for an enterprise"
Status code | Description |
---|---|
204 | No Content |
Code samples for "Set allowed actions for an enterprise"
Request example
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/permissions/selected-actions \
-d '{"github_owned_allowed":true,"verified_allowed":false,"patterns_allowed":["monalisa/octocat@*","docker/*"]}'
Response
Status: 204
Get 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.
Parameters for "Get default workflow permissions for an enterprise"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
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"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/permissions/workflow
Give 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.
Parameters for "Set default workflow permissions for an enterprise"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
Name, Type, Description |
---|
default_workflow_permissions string The default workflow permissions granted to the GITHUB_TOKEN when running workflows. Can be one of: |
can_approve_pull_request_reviews boolean Whether 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"
Request example
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/permissions/workflow \
-d '{"default_workflow_permissions":"read","can_approve_pull_request_reviews":true}'
Success response
Status: 204
Get GitHub Actions permissions for an organization
Gets the GitHub Actions permissions policy for repositories and allowed actions in an organization.
You must authenticate using an access token with the admin:org
scope to use this endpoint. GitHub Apps must have the administration
organization permission to use this API.
Parameters for "Get GitHub Actions permissions for an organization"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string 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"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/permissions
Response
Status: 200
{
"enabled_repositories": "all",
"allowed_actions": "selected",
"selected_actions_url": "https://HOSTNAME/organizations/42/actions/permissions/selected-actions"
}
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.
Parameters for "Set GitHub Actions permissions for an organization"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
Name, Type, Description |
---|
enabled_repositories string RequiredThe policy that controls the repositories in the organization that are allowed to run GitHub Actions. Can be one of: |
allowed_actions string The permissions policy that controls the actions that are allowed to run. Can be one of: |
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"
Request example
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/permissions \
-d '{"enabled_repositories":"all","allowed_actions":"selected"}'
Response
Status: 204
List 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.
Parameters for "List selected repositories enabled for GitHub Actions in an organization"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
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: |
page integer The 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"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/permissions/repositories
Response
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://HOSTNAME/users/octocat",
"html_url": "https://github.com/octocat",
"followers_url": "https://HOSTNAME/users/octocat/followers",
"following_url": "https://HOSTNAME/users/octocat/following{/other_user}",
"gists_url": "https://HOSTNAME/users/octocat/gists{/gist_id}",
"starred_url": "https://HOSTNAME/users/octocat/starred{/owner}{/repo}",
"subscriptions_url": "https://HOSTNAME/users/octocat/subscriptions",
"organizations_url": "https://HOSTNAME/users/octocat/orgs",
"repos_url": "https://HOSTNAME/users/octocat/repos",
"events_url": "https://HOSTNAME/users/octocat/events{/privacy}",
"received_events_url": "https://HOSTNAME/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://HOSTNAME/repos/octocat/Hello-World",
"archive_url": "https://HOSTNAME/repos/octocat/Hello-World/{archive_format}{/ref}",
"assignees_url": "https://HOSTNAME/repos/octocat/Hello-World/assignees{/user}",
"blobs_url": "https://HOSTNAME/repos/octocat/Hello-World/git/blobs{/sha}",
"branches_url": "https://HOSTNAME/repos/octocat/Hello-World/branches{/branch}",
"collaborators_url": "https://HOSTNAME/repos/octocat/Hello-World/collaborators{/collaborator}",
"comments_url": "https://HOSTNAME/repos/octocat/Hello-World/comments{/number}",
"commits_url": "https://HOSTNAME/repos/octocat/Hello-World/commits{/sha}",
"compare_url": "https://HOSTNAME/repos/octocat/Hello-World/compare/{base}...{head}",
"contents_url": "https://HOSTNAME/repos/octocat/Hello-World/contents/{+path}",
"contributors_url": "https://HOSTNAME/repos/octocat/Hello-World/contributors",
"deployments_url": "https://HOSTNAME/repos/octocat/Hello-World/deployments",
"downloads_url": "https://HOSTNAME/repos/octocat/Hello-World/downloads",
"events_url": "https://HOSTNAME/repos/octocat/Hello-World/events",
"forks_url": "https://HOSTNAME/repos/octocat/Hello-World/forks",
"git_commits_url": "https://HOSTNAME/repos/octocat/Hello-World/git/commits{/sha}",
"git_refs_url": "https://HOSTNAME/repos/octocat/Hello-World/git/refs{/sha}",
"git_tags_url": "https://HOSTNAME/repos/octocat/Hello-World/git/tags{/sha}",
"git_url": "git:github.com/octocat/Hello-World.git",
"issue_comment_url": "https://HOSTNAME/repos/octocat/Hello-World/issues/comments{/number}",
"issue_events_url": "https://HOSTNAME/repos/octocat/Hello-World/issues/events{/number}",
"issues_url": "https://HOSTNAME/repos/octocat/Hello-World/issues{/number}",
"keys_url": "https://HOSTNAME/repos/octocat/Hello-World/keys{/key_id}",
"labels_url": "https://HOSTNAME/repos/octocat/Hello-World/labels{/name}",
"languages_url": "https://HOSTNAME/repos/octocat/Hello-World/languages",
"merges_url": "https://HOSTNAME/repos/octocat/Hello-World/merges",
"milestones_url": "https://HOSTNAME/repos/octocat/Hello-World/milestones{/number}",
"notifications_url": "https://HOSTNAME/repos/octocat/Hello-World/notifications{?since,all,participating}",
"pulls_url": "https://HOSTNAME/repos/octocat/Hello-World/pulls{/number}",
"releases_url": "https://HOSTNAME/repos/octocat/Hello-World/releases{/id}",
"ssh_url": "git@github.com:octocat/Hello-World.git",
"stargazers_url": "https://HOSTNAME/repos/octocat/Hello-World/stargazers",
"statuses_url": "https://HOSTNAME/repos/octocat/Hello-World/statuses/{sha}",
"subscribers_url": "https://HOSTNAME/repos/octocat/Hello-World/subscribers",
"subscription_url": "https://HOSTNAME/repos/octocat/Hello-World/subscription",
"tags_url": "https://HOSTNAME/repos/octocat/Hello-World/tags",
"teams_url": "https://HOSTNAME/repos/octocat/Hello-World/teams",
"trees_url": "https://HOSTNAME/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://HOSTNAME/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://HOSTNAME/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.
Parameters for "Set selected repositories enabled for GitHub Actions in an organization"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
Name, Type, Description |
---|
selected_repository_ids array 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"
Request example
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/permissions/repositories \
-d '{"selected_repository_ids":[32,42]}'
Response
Status: 204
Enable 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.
Parameters for "Enable a selected repository for GitHub Actions in an organization"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
repository_id integer 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"
Request example
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/permissions/repositories/REPOSITORY_ID
Response
Status: 204
Disable 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.
Parameters for "Disable a selected repository for GitHub Actions in an organization"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
repository_id integer 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"
Request example
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/permissions/repositories/REPOSITORY_ID
Response
Status: 204
Get allowed actions for an organization
Gets the selected 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.""
You must authenticate using an access token with the admin:org
scope to use this endpoint. GitHub Apps must have the administration
organization permission to use this API.
Parameters for "Get allowed actions for an organization"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
HTTP response status codes for "Get allowed actions for an organization"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get allowed actions for an organization"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/permissions/selected-actions
Response
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.
Parameters for "Set allowed actions for an organization"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
Name, Type, Description |
---|
github_owned_allowed boolean RequiredWhether GitHub-owned actions are allowed. For example, this includes the actions in the |
patterns_allowed array of strings RequiredSpecifies a list of string-matching patterns to allow specific action(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"
Request example
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/permissions/selected-actions \
-d '{"github_owned_allowed":true,"verified_allowed":false,"patterns_allowed":["monalisa/octocat@*","docker/*"]}'
Response
Status: 204
Get 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.
Parameters for "Get default workflow permissions for an organization"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string 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"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/permissions/workflow
Give 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.
Parameters for "Set default workflow permissions for an organization"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
Name, Type, Description |
---|
default_workflow_permissions string The default workflow permissions granted to the GITHUB_TOKEN when running workflows. Can be one of: |
can_approve_pull_request_reviews boolean Whether 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"
Request example
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/permissions/workflow \
-d '{"default_workflow_permissions":"read","can_approve_pull_request_reviews":true}'
Success response
Status: 204
Get GitHub Actions permissions for a repository
Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions allowed to run in the repository.
You must authenticate using an access token with the repo
scope to use this endpoint. GitHub Apps must have the administration
repository permission to use this API.
Parameters for "Get GitHub Actions permissions for a repository"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
owner string RequiredThe account owner of the repository. The name is not case sensitive. |
repo string 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"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/actions/permissions
Response
Status: 200
{
"enabled": true,
"allowed_actions": "selected",
"selected_actions_url": "https://HOSTNAME/repositories/42/actions/permissions/selected-actions"
}
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.
Parameters for "Set GitHub Actions permissions for a repository"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
owner string RequiredThe account owner of the repository. The name is not case sensitive. |
repo string RequiredThe name of the repository without the |
Name, Type, Description |
---|
enabled boolean RequiredWhether GitHub Actions is enabled on the repository. |
allowed_actions string The permissions policy that controls the actions that are allowed to run. Can be one of: |
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"
Request example
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/actions/permissions \
-d '{"enabled":true,"allowed_actions":"selected"}'
Response
Status: 204
Get 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.
Parameters for "Get the level of access for workflows outside of the repository"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
owner string RequiredThe account owner of the repository. The name is not case sensitive. |
repo string 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"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/actions/permissions/access
Response
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.
Parameters for "Set the level of access for workflows outside of the repository"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
owner string RequiredThe account owner of the repository. The name is not case sensitive. |
repo string RequiredThe name of the repository without the |
Name, Type, Description |
---|
access_level string 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"
Request example
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/actions/permissions/access \
-d '{"access_level":"organization"}'
Response
Status: 204
Get allowed actions for a repository
Gets the settings for selected actions 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."
You must authenticate using an access token with the repo
scope to use this endpoint. GitHub Apps must have the administration
repository permission to use this API.
Parameters for "Get allowed actions for a repository"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
owner string RequiredThe account owner of the repository. The name is not case sensitive. |
repo string RequiredThe name of the repository without the |
HTTP response status codes for "Get allowed actions for a repository"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get allowed actions for a repository"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/actions/permissions/selected-actions
Response
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.
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.
Parameters for "Set allowed actions for a repository"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
owner string RequiredThe account owner of the repository. The name is not case sensitive. |
repo string RequiredThe name of the repository without the |
Name, Type, Description |
---|
github_owned_allowed boolean RequiredWhether GitHub-owned actions are allowed. For example, this includes the actions in the |
patterns_allowed array of strings RequiredSpecifies a list of string-matching patterns to allow specific action(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"
Request example
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/actions/permissions/selected-actions \
-d '{"github_owned_allowed":true,"verified_allowed":false,"patterns_allowed":["monalisa/octocat@*","docker/*"]}'
Response
Status: 204
Get 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.
Parameters for "Get default workflow permissions for a repository"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
owner string RequiredThe account owner of the repository. The name is not case sensitive. |
repo string 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"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/actions/permissions/workflow
Give 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.
Parameters for "Set default workflow permissions for a repository"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
owner string RequiredThe account owner of the repository. The name is not case sensitive. |
repo string RequiredThe name of the repository without the |
Name, Type, Description |
---|
default_workflow_permissions string The default workflow permissions granted to the GITHUB_TOKEN when running workflows. Can be one of: |
can_approve_pull_request_reviews boolean Whether 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"
Request example
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/actions/permissions/workflow \
-d '{"default_workflow_permissions":"read","can_approve_pull_request_reviews":true}'
Success response
Status: 204