This version of GitHub Enterprise was discontinued on 2023-03-15. 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. For help with the upgrade, contact GitHub Enterprise support.
Self-hosted runner groups
Use the REST API to interact with self-hosted runner groups for GitHub Actions.
About self-hosted runner groups in GitHub Actions
You can use the REST API to manage groups of self-hosted runners in GitHub Actions. For more information, see "Managing access to self-hosted runners using groups."
These endpoints are available for authenticated users, OAuth apps, and GitHub Apps. Access tokens require repo
scope for private repositories and public_repo
scope for public repositories. GitHub Apps must have the administration
permission for repositories or the organization_self_hosted_runners
permission for organizations. Authenticated users must have admin access to repositories or organizations, or the manage_runners:enterprise
scope for enterprises to use these endpoints.
List self-hosted runner groups for an enterprise
Lists all self-hosted runner groups for an enterprise.
You must authenticate using an access token with the manage_runners:enterprise
scope to use this endpoint.
Parameters for "List self-hosted runner groups for an enterprise"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
Query parameters |
Name, Type, Description |
per_page integer The number of results per page (max 100). Default: |
page integer Page number of the results to fetch. Default: |
HTTP response status codes for "List self-hosted runner groups for an enterprise"
Status code | Description |
---|---|
200 | OK |
Code samples for "List self-hosted runner groups for an enterprise"
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups
Response
Status: 200
{
"total_count": 3,
"runner_groups": [
{
"id": 1,
"name": "Default",
"visibility": "all",
"default": true,
"runners_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner_groups/1/runners",
"allows_public_repositories": false
},
{
"id": 2,
"name": "octo-runner-group",
"visibility": "selected",
"default": false,
"selected_organizations_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner_groups/2/organizations",
"runners_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner_groups/2/runners",
"allows_public_repositories": true
},
{
"id": 3,
"name": "expensive-hardware",
"visibility": "private",
"default": false,
"runners_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner_groups/3/runners",
"allows_public_repositories": true
}
]
}
Create a self-hosted runner group for an enterprise
Creates a new self-hosted runner group for an enterprise.
You must authenticate using an access token with the manage_runners:enterprise
scope to use this endpoint.
Parameters for "Create a self-hosted runner group for an enterprise"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
Body parameters |
Name, Type, Description |
name string RequiredName of the runner group. |
visibility string Visibility of a runner group. You can select all organizations or select individual organization. Can be one of: |
selected_organization_ids array of integers List of organization IDs that can access the runner group. |
runners array of integers List of runner IDs to add to the runner group. |
allows_public_repositories boolean Whether the runner group can be used by Default: |
HTTP response status codes for "Create a self-hosted runner group for an enterprise"
Status code | Description |
---|---|
201 | Created |
Code samples for "Create a self-hosted runner group for an enterprise"
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups \
-d '{"name":"Expensive hardware runners","visibility":"selected","selected_organization_ids":[32,91],"runners":[9,2]}'
Response
Status: 201
{
"id": 2,
"name": "octo-runner-group",
"visibility": "selected",
"default": false,
"selected_organizations_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner-groups/2/organizations",
"runners_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner-groups/2/runners",
"allows_public_repositories": false
}
Get a self-hosted runner group for an enterprise
Gets a specific self-hosted runner group for an enterprise.
You must authenticate using an access token with the manage_runners:enterprise
scope to use this endpoint.
Parameters for "Get a self-hosted runner group for an enterprise"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
HTTP response status codes for "Get a self-hosted runner group for an enterprise"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get a self-hosted runner group for an enterprise"
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID
Response
Status: 200
{
"id": 2,
"name": "octo-runner-group",
"visibility": "selected",
"default": false,
"selected_organizations_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner-groups/2/organizations",
"runners_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner-groups/2/runners",
"allows_public_repositories": false
}
Update a self-hosted runner group for an enterprise
Updates the name
and visibility
of a self-hosted runner group in an enterprise.
You must authenticate using an access token with the manage_runners:enterprise
scope to use this endpoint.
Parameters for "Update a self-hosted runner group for an enterprise"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
Body parameters |
Name, Type, Description |
name string Name of the runner group. |
visibility string Visibility of a runner group. You can select all organizations or select individual organizations. Default: Can be one of: |
allows_public_repositories boolean Whether the runner group can be used by Default: |
HTTP response status codes for "Update a self-hosted runner group for an enterprise"
Status code | Description |
---|---|
200 | OK |
Code samples for "Update a self-hosted runner group for an enterprise"
curl -L \
-X PATCH \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID \
-d '{"name":"Expensive hardware runners","visibility":"selected"}'
Response
Status: 200
{
"id": 2,
"name": "Expensive hardware runners",
"visibility": "selected",
"default": false,
"selected_organizations_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner-groups/2/organizations",
"runners_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner-groups/2/runners",
"allows_public_repositories": true
}
Delete a self-hosted runner group from an enterprise
Deletes a self-hosted runner group for an enterprise.
You must authenticate using an access token with the manage_runners:enterprise
scope to use this endpoint.
Parameters for "Delete a self-hosted runner group from an enterprise"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
HTTP response status codes for "Delete a self-hosted runner group from an enterprise"
Status code | Description |
---|---|
204 | No Content |
Code samples for "Delete a self-hosted runner group from an enterprise"
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID
Response
Status: 204
List organization access to a self-hosted runner group in an enterprise
Lists the organizations with access to a self-hosted runner group.
You must authenticate using an access token with the manage_runners:enterprise
scope to use this endpoint.
Parameters for "List organization access to a self-hosted runner group in an enterprise"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
Query parameters |
Name, Type, Description |
per_page integer The number of results per page (max 100). Default: |
page integer Page number of the results to fetch. Default: |
HTTP response status codes for "List organization access to a self-hosted runner group in an enterprise"
Status code | Description |
---|---|
200 | OK |
Code samples for "List organization access to a self-hosted runner group in an enterprise"
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID/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 organization access for a self-hosted runner group in an enterprise
Replaces the list of organizations that have access to a self-hosted runner configured in an enterprise.
You must authenticate using an access token with the manage_runners:enterprise
scope to use this endpoint.
Parameters for "Set organization access for a self-hosted runner group in an enterprise"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
Body parameters |
Name, Type, Description |
selected_organization_ids array of integers RequiredList of organization IDs that can access the runner group. |
HTTP response status codes for "Set organization access for a self-hosted runner group in an enterprise"
Status code | Description |
---|---|
204 | No Content |
Code samples for "Set organization access for a self-hosted runner group in an enterprise"
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID/organizations \
-d '{"selected_organization_ids":[32,91]}'
Response
Status: 204
Add organization access to a self-hosted runner group in an enterprise
Adds an organization to the list of selected organizations that can access a self-hosted runner group. The runner group must have visibility
set to selected
. For more information, see "Create a self-hosted runner group for an enterprise."
You must authenticate using an access token with the manage_runners:enterprise
scope to use this endpoint.
Parameters for "Add organization access to a self-hosted runner group in an enterprise"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
org_id integer RequiredThe unique identifier of the organization. |
HTTP response status codes for "Add organization access to a self-hosted runner group in an enterprise"
Status code | Description |
---|---|
204 | No Content |
Code samples for "Add organization access to a self-hosted runner group in an enterprise"
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID/organizations/ORG_ID
Response
Status: 204
Remove organization access to a self-hosted runner group in an enterprise
Removes an organization from the list of selected organizations that can access a self-hosted runner group. The runner group must have visibility
set to selected
. For more information, see "Create a self-hosted runner group for an enterprise."
You must authenticate using an access token with the manage_runners:enterprise
scope to use this endpoint.
Parameters for "Remove organization access to a self-hosted runner group in an enterprise"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
org_id integer RequiredThe unique identifier of the organization. |
HTTP response status codes for "Remove organization access to a self-hosted runner group in an enterprise"
Status code | Description |
---|---|
204 | No Content |
Code samples for "Remove organization access to a self-hosted runner group in an enterprise"
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID/organizations/ORG_ID
Response
Status: 204
List self-hosted runners in a group for an enterprise
Lists the self-hosted runners that are in a specific enterprise group.
You must authenticate using an access token with the manage_runners:enterprise
scope to use this endpoint.
Parameters for "List self-hosted runners in a group for an enterprise"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
Query parameters |
Name, Type, Description |
per_page integer The number of results per page (max 100). Default: |
page integer Page number of the results to fetch. Default: |
HTTP response status codes for "List self-hosted runners in a group for an enterprise"
Status code | Description |
---|---|
200 | OK |
Code samples for "List self-hosted runners in a group for an enterprise"
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID/runners
Response
Status: 200
{
"total_count": 2,
"runners": [
{
"id": 23,
"name": "linux_runner",
"os": "linux",
"status": "online",
"busy": true,
"labels": [
{
"id": 5,
"name": "self-hosted",
"type": "read-only"
},
{
"id": 7,
"name": "X64",
"type": "read-only"
},
{
"id": 11,
"name": "Linux",
"type": "read-only"
}
]
},
{
"id": 24,
"name": "mac_runner",
"os": "macos",
"status": "offline",
"busy": false,
"labels": [
{
"id": 5,
"name": "self-hosted",
"type": "read-only"
},
{
"id": 7,
"name": "X64",
"type": "read-only"
},
{
"id": 20,
"name": "macOS",
"type": "read-only"
},
{
"id": 21,
"name": "no-gpu",
"type": "custom"
}
]
}
]
}
Set self-hosted runners in a group for an enterprise
Replaces the list of self-hosted runners that are part of an enterprise runner group.
You must authenticate using an access token with the manage_runners:enterprise
scope to use this endpoint.
Parameters for "Set self-hosted runners in a group for an enterprise"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
Body parameters |
Name, Type, Description |
runners array of integers RequiredList of runner IDs to add to the runner group. |
HTTP response status codes for "Set self-hosted runners in a group for an enterprise"
Status code | Description |
---|---|
204 | No Content |
Code samples for "Set self-hosted runners in a group for an enterprise"
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID/runners \
-d '{"runners":[9,2]}'
Response
Status: 204
Add a self-hosted runner to a group for an enterprise
Adds a self-hosted runner to a runner group configured in an enterprise.
You must authenticate using an access token with the manage_runners:enterprise
scope to use this endpoint.
Parameters for "Add a self-hosted runner to a group for an enterprise"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
runner_id integer RequiredUnique identifier of the self-hosted runner. |
HTTP response status codes for "Add a self-hosted runner to a group for an enterprise"
Status code | Description |
---|---|
204 | No Content |
Code samples for "Add a self-hosted runner to a group for an enterprise"
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID/runners/RUNNER_ID
Response
Status: 204
Remove a self-hosted runner from a group for an enterprise
Removes a self-hosted runner from a group configured in an enterprise. The runner is then returned to the default group.
You must authenticate using an access token with the manage_runners:enterprise
scope to use this endpoint.
Parameters for "Remove a self-hosted runner from a group for an enterprise"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
runner_id integer RequiredUnique identifier of the self-hosted runner. |
HTTP response status codes for "Remove a self-hosted runner from a group for an enterprise"
Status code | Description |
---|---|
204 | No Content |
Code samples for "Remove a self-hosted runner from a group for an enterprise"
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID/runners/RUNNER_ID
Response
Status: 204
List self-hosted runner groups for an organization
Lists all self-hosted runner groups configured in an organization and inherited from an enterprise.
You must authenticate using an access token with the admin:org
scope to use this endpoint.
Parameters for "List self-hosted runner groups for an organization"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
org string RequiredThe organization name. The name is not case sensitive. |
Query parameters |
Name, Type, Description |
per_page integer The number of results per page (max 100). Default: |
page integer Page number of the results to fetch. Default: |
HTTP response status codes for "List self-hosted runner groups for an organization"
Status code | Description |
---|---|
200 | OK |
Code samples for "List self-hosted runner groups for an organization"
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups
Response
Status: 200
{
"total_count": 3,
"runner_groups": [
{
"id": 1,
"name": "Default",
"visibility": "all",
"default": true,
"runners_url": "https://HOSTNAME/orgs/octo-org/actions/runner_groups/1/runners",
"inherited": false,
"allows_public_repositories": true
},
{
"id": 2,
"name": "octo-runner-group",
"visibility": "selected",
"default": false,
"selected_repositories_url": "https://HOSTNAME/orgs/octo-org/actions/runner_groups/2/repositories",
"runners_url": "https://HOSTNAME/orgs/octo-org/actions/runner_groups/2/runners",
"inherited": true,
"allows_public_repositories": true
},
{
"id": 3,
"name": "expensive-hardware",
"visibility": "private",
"default": false,
"runners_url": "https://HOSTNAME/orgs/octo-org/actions/runner_groups/3/runners",
"inherited": false,
"allows_public_repositories": true
}
]
}
Create a self-hosted runner group for an organization
Creates a new self-hosted runner group for an organization.
You must authenticate using an access token with the admin:org
scope to use this endpoint.
Parameters for "Create a self-hosted runner group for an organization"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
org string RequiredThe organization name. The name is not case sensitive. |
Body parameters |
Name, Type, Description |
name string RequiredName of the runner group. |
visibility string Visibility of a runner group. You can select all repositories, select individual repositories, or limit access to private repositories. Default: Can be one of: |
selected_repository_ids array of integers List of repository IDs that can access the runner group. |
runners array of integers List of runner IDs to add to the runner group. |
allows_public_repositories boolean Whether the runner group can be used by Default: |
HTTP response status codes for "Create a self-hosted runner group for an organization"
Status code | Description |
---|---|
201 | Created |
Code samples for "Create a self-hosted runner group for an organization"
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups \
-d '{"name":"Expensive hardware runners","visibility":"selected","selected_repository_ids":[32,91],"runners":[9,2]}'
Response
Status: 201
{
"id": 2,
"name": "octo-runner-group",
"visibility": "selected",
"default": false,
"selected_repositories_url": "https://HOSTNAME/orgs/octo-org/actions/runner-groups/2/repositories",
"runners_url": "https://HOSTNAME/orgs/octo-org/actions/runner_groups/2/runners",
"inherited": false,
"allows_public_repositories": true
}
Get a self-hosted runner group for an organization
Gets a specific self-hosted runner group for an organization.
You must authenticate using an access token with the admin:org
scope to use this endpoint.
Parameters for "Get a self-hosted runner group for an organization"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
org string RequiredThe organization name. The name is not case sensitive. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
HTTP response status codes for "Get a self-hosted runner group for an organization"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get a self-hosted runner group for an organization"
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID
Response
Status: 200
{
"id": 2,
"name": "octo-runner-group",
"visibility": "selected",
"default": false,
"selected_repositories_url": "https://HOSTNAME/orgs/octo-org/actions/runner_groups/2/repositories",
"runners_url": "https://HOSTNAME/orgs/octo-org/actions/runner_groups/2/runners",
"inherited": false,
"allows_public_repositories": true
}
Update a self-hosted runner group for an organization
Updates the name
and visibility
of a self-hosted runner group in an organization.
You must authenticate using an access token with the admin:org
scope to use this endpoint.
Parameters for "Update a self-hosted runner group for an organization"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
org string RequiredThe organization name. The name is not case sensitive. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
Body parameters |
Name, Type, Description |
name string RequiredName of the runner group. |
visibility string Visibility of a runner group. You can select all repositories, select individual repositories, or all private repositories. Can be one of: |
allows_public_repositories boolean Whether the runner group can be used by Default: |
HTTP response status codes for "Update a self-hosted runner group for an organization"
Status code | Description |
---|---|
200 | OK |
Code samples for "Update a self-hosted runner group for an organization"
curl -L \
-X PATCH \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID \
-d '{"name":"Expensive hardware runners","visibility":"selected"}'
Response
Status: 200
{
"id": 2,
"name": "octo-runner-group",
"visibility": "selected",
"default": false,
"selected_repositories_url": "https://HOSTNAME/orgs/octo-org/actions/runner-groups/2/repositories",
"runners_url": "https://HOSTNAME/orgs/octo-org/actions/runner_groups/2/runners",
"inherited": false,
"allows_public_repositories": true
}
Delete a self-hosted runner group from an organization
Deletes a self-hosted runner group for an organization.
You must authenticate using an access token with the admin:org
scope to use this endpoint.
Parameters for "Delete a self-hosted runner group from an organization"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
org string RequiredThe organization name. The name is not case sensitive. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
HTTP response status codes for "Delete a self-hosted runner group from an organization"
Status code | Description |
---|---|
204 | No Content |
Code samples for "Delete a self-hosted runner group from an organization"
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID
Response
Status: 204
List repository access to a self-hosted runner group in an organization
Lists the repositories with access to a self-hosted runner group configured in an organization.
You must authenticate using an access token with the admin:org
scope to use this endpoint.
Parameters for "List repository access to a self-hosted runner group in an organization"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
org string RequiredThe organization name. The name is not case sensitive. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
Query parameters |
Name, Type, Description |
page integer Page number of the results to fetch. Default: |
per_page integer The number of results per page (max 100). Default: |
HTTP response status codes for "List repository access to a self-hosted runner group in an organization"
Status code | Description |
---|---|
200 | OK |
Code samples for "List repository access to a self-hosted runner group in an organization"
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID/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
},
"template_repository": {
"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",
"organization": null,
"language": null,
"forks": 9,
"forks_count": 9,
"stargazers_count": 80,
"watchers_count": 80,
"watchers": 80,
"size": 108,
"default_branch": "master",
"open_issues": 0,
"open_issues_count": 0,
"is_template": true,
"license": {
"key": "mit",
"name": "MIT License",
"url": "https://HOSTNAME/licenses/mit",
"spdx_id": "MIT",
"node_id": "MDc6TGljZW5zZW1pdA==",
"html_url": "https://HOSTNAME/licenses/mit"
},
"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
},
"temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",
"delete_branch_on_merge": true,
"subscribers_count": 42,
"network_count": 0,
"license": {
"key": "mit",
"name": "MIT License",
"url": "https://HOSTNAME/licenses/mit",
"spdx_id": "MIT",
"node_id": "MDc6TGljZW5zZW1pdA=="
},
"forks": 1,
"open_issues": 1,
"watchers": 1
}
]
}
Set repository access for a self-hosted runner group in an organization
Replaces the list of repositories that have access to a self-hosted runner group configured in an organization.
You must authenticate using an access token with the admin:org
scope to use this endpoint.
Parameters for "Set repository access for a self-hosted runner group in an organization"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
org string RequiredThe organization name. The name is not case sensitive. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
Body parameters |
Name, Type, Description |
selected_repository_ids array of integers RequiredList of repository IDs that can access the runner group. |
HTTP response status codes for "Set repository access for a self-hosted runner group in an organization"
Status code | Description |
---|---|
204 | No Content |
Code samples for "Set repository access for a self-hosted runner group in an organization"
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID/repositories \
-d '{"selected_repository_ids":[32,91]}'
Response
Status: 204
Add repository access to a self-hosted runner group in an organization
Adds a repository to the list of selected repositories that can access a self-hosted runner group. The runner group must have visibility
set to selected
. For more information, see "Create a self-hosted runner group for an organization."
You must authenticate using an access token with the admin:org
scope to use this endpoint.
Parameters for "Add repository access to a self-hosted runner group in an organization"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
org string RequiredThe organization name. The name is not case sensitive. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
repository_id integer RequiredThe unique identifier of the repository. |
HTTP response status codes for "Add repository access to a self-hosted runner group in an organization"
Status code | Description |
---|---|
204 | No Content |
Code samples for "Add repository access to a self-hosted runner group in an organization"
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID/repositories/REPOSITORY_ID
Response
Status: 204
Remove repository access to a self-hosted runner group in an organization
Removes a repository from the list of selected repositories that can access a self-hosted runner group. The runner group must have visibility
set to selected
. For more information, see "Create a self-hosted runner group for an organization."
You must authenticate using an access token with the admin:org
scope to use this endpoint.
Parameters for "Remove repository access to a self-hosted runner group in an organization"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
org string RequiredThe organization name. The name is not case sensitive. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
repository_id integer RequiredThe unique identifier of the repository. |
HTTP response status codes for "Remove repository access to a self-hosted runner group in an organization"
Status code | Description |
---|---|
204 | No Content |
Code samples for "Remove repository access to a self-hosted runner group in an organization"
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID/repositories/REPOSITORY_ID
Response
Status: 204
List self-hosted runners in a group for an organization
Lists self-hosted runners that are in a specific organization group.
You must authenticate using an access token with the admin:org
scope to use this endpoint.
Parameters for "List self-hosted runners in a group for an organization"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
org string RequiredThe organization name. The name is not case sensitive. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
Query parameters |
Name, Type, Description |
per_page integer The number of results per page (max 100). Default: |
page integer Page number of the results to fetch. Default: |
HTTP response status codes for "List self-hosted runners in a group for an organization"
Status code | Description |
---|---|
200 | OK |
Code samples for "List self-hosted runners in a group for an organization"
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID/runners
Response
Status: 200
{
"total_count": 2,
"runners": [
{
"id": 23,
"name": "linux_runner",
"os": "linux",
"status": "online",
"busy": true,
"labels": [
{
"id": 5,
"name": "self-hosted",
"type": "read-only"
},
{
"id": 7,
"name": "X64",
"type": "read-only"
},
{
"id": 11,
"name": "Linux",
"type": "read-only"
}
]
},
{
"id": 24,
"name": "mac_runner",
"os": "macos",
"status": "offline",
"busy": false,
"labels": [
{
"id": 5,
"name": "self-hosted",
"type": "read-only"
},
{
"id": 7,
"name": "X64",
"type": "read-only"
},
{
"id": 20,
"name": "macOS",
"type": "read-only"
},
{
"id": 21,
"name": "no-gpu",
"type": "custom"
}
]
}
]
}
Set self-hosted runners in a group for an organization
Replaces the list of self-hosted runners that are part of an organization runner group.
You must authenticate using an access token with the admin:org
scope to use this endpoint.
Parameters for "Set self-hosted runners in a group for an organization"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
org string RequiredThe organization name. The name is not case sensitive. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
Body parameters |
Name, Type, Description |
runners array of integers RequiredList of runner IDs to add to the runner group. |
HTTP response status codes for "Set self-hosted runners in a group for an organization"
Status code | Description |
---|---|
204 | No Content |
Code samples for "Set self-hosted runners in a group for an organization"
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID/runners \
-d '{"runners":[9,2]}'
Response
Status: 204
Add a self-hosted runner to a group for an organization
Adds a self-hosted runner to a runner group configured in an organization.
You must authenticate using an access token with the admin:org
scope to use this endpoint.
Parameters for "Add a self-hosted runner to a group for an organization"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
org string RequiredThe organization name. The name is not case sensitive. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
runner_id integer RequiredUnique identifier of the self-hosted runner. |
HTTP response status codes for "Add a self-hosted runner to a group for an organization"
Status code | Description |
---|---|
204 | No Content |
Code samples for "Add a self-hosted runner to a group for an organization"
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID/runners/RUNNER_ID
Response
Status: 204
Remove a self-hosted runner from a group for an organization
Removes a self-hosted runner from a group configured in an organization. The runner is then returned to the default group.
You must authenticate using an access token with the admin:org
scope to use this endpoint.
Parameters for "Remove a self-hosted runner from a group for an organization"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
org string RequiredThe organization name. The name is not case sensitive. |
runner_group_id integer RequiredUnique identifier of the self-hosted runner group. |
runner_id integer RequiredUnique identifier of the self-hosted runner. |
HTTP response status codes for "Remove a self-hosted runner from a group for an organization"
Status code | Description |
---|---|
204 | No Content |
Code samples for "Remove a self-hosted runner from a group for an organization"
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID/runners/RUNNER_ID
Response
Status: 204