You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
intro: 'You can sign Xcode apps within your continuous integration (CI) workflow by installing an Apple code signing certificate on {% data variables.product.prodname_actions %} runners.'
Copy file name to clipboardExpand all lines: content/actions/deployment/targeting-different-environments/index.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,8 @@ shortTitle: Targeting different environments
4
4
intro: You can configure environments with protection rules and secrets. A workflow job that references an environment must follow any protection rules for the environment before running or accessing the environment's secrets.
Copy file name to clipboardExpand all lines: content/actions/hosting-your-own-runners/about-self-hosted-runners.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -51,7 +51,8 @@ For more information about installing and using self-hosted runners, see "[Addin
51
51
- Can use cloud services or local machines that you already pay for.
52
52
- Are customizable to your hardware, operating system, software, and security requirements.
53
53
- Don't need to have a clean instance for every job execution.
54
-
- Are free to use with {% data variables.product.prodname_actions %}, but you are responsible for the cost of maintaining your runner machines.
54
+
- Are free to use with {% data variables.product.prodname_actions %}, but you are responsible for the cost of maintaining your runner machines.{% ifversion ghec or ghes or ghae %}
55
+
- Can be organized into groups to restrict access to specific {% if restrict-groups-to-workflows %}workflows, {% endif %}organizations and repositories. For more information, see "[Managing access to self-hosted runners using groups](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups)."{% endif %}
Copy file name to clipboardExpand all lines: content/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups.md
+43-7Lines changed: 43 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,11 +9,12 @@ versions:
9
9
ghae: '*'
10
10
ghec: '*'
11
11
type: tutorial
12
-
shortTitle: Manage runner groups
12
+
shortTitle: Manage access to runners
13
13
---
14
14
15
15
{% data reusables.actions.enterprise-beta %}
16
16
{% data reusables.actions.enterprise-github-hosted-runners %}
17
+
{% data reusables.actions.restrict-runner-workflow-beta %}
17
18
18
19
## About self-hosted runner groups
19
20
@@ -30,9 +31,9 @@ If you use {% data variables.product.prodname_ghe_cloud %}, you can create addit
30
31
{% endif %}
31
32
32
33
{% ifversion ghec or ghes or ghae %}
33
-
Self-hosted runner groups are used to control access to self-hosted runners at the organization and enterprise level. Enterprise admins can configure access policies that control which organizations in an enterprise have access to the runner group. Organization admins can configure access policies that control which repositories in an organization have access to the runner group.
34
+
Self-hosted runner groups are used to control access to self-hosted runners at the organization and enterprise level. Enterprise owners can configure access policies that control which organizations {% if restrict-groups-to-workflows %}and workflows {% endif %}in an enterprise have access to the runner group. Organization owners can configure access policies that control which repositories{% if restrict-groups-to-workflows %} and workflows{% endif %} in an organization have access to the runner group.
34
35
35
-
When an enterprise admin grants an organization access to a runner group, organization admins can see the runner group listed in the organization's self-hosted runner settings. The organizations admins can then assign additional granular repository access policies to the enterprise runner group.
36
+
When an enterprise owner grants an organization access to a runner group, organization owners can see the runner group listed in the organization's self-hosted runner settings. The organization owners can then assign additional granular repository{% if restrict-groups-to-workflows %} and workflow{% endif %} access policies to the enterprise runner group.
36
37
37
38
When new runners are created, they are automatically assigned to the default group. Runners can only be in one group at a time. You can move runners from the default group to another group. For more information, see "[Moving a self-hosted runner to a group](#moving-a-self-hosted-runner-to-a-group)."
38
39
@@ -42,13 +43,14 @@ All organizations have a single default self-hosted runner group. Organizations
42
43
43
44
Self-hosted runners are automatically assigned to the default group when created, and can only be members of one group at a time. You can move a runner from the default group to any group you create.
44
45
45
-
When creating a group, you must choose a policy that defines which repositories have access to the runner group.
46
+
When creating a group, you must choose a policy that defines which repositories{% if restrict-groups-to-workflows %} and workflows{% endif %} have access to the runner group.
46
47
47
48
{% ifversion ghec or ghes > 3.3 or ghae-issue-5091 %}
48
49
{% data reusables.organizations.navigate-to-org %}
49
50
{% data reusables.organizations.org_settings %}
50
51
{% data reusables.actions.settings-sidebar-actions-runner-groups %}
51
52
1. In the "Runner groups" section, click **New runner group**.
53
+
1. Enter a name for your runner group.
52
54
{% data reusables.actions.runner-group-assign-policy-repo %}
53
55
54
56
{% warning %}
@@ -58,6 +60,7 @@ When creating a group, you must choose a policy that defines which repositories
58
60
For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners#self-hosted-runner-security-with-public-repositories)."
59
61
60
62
{% endwarning %}
63
+
{% data reusables.actions.runner-group-assign-policy-workflow %}{%- if restrict-groups-to-workflows %} Organization-owned runner groups cannot access workflows from a different organization in the enterprise; instead, you must create an enterprise-owned runner group.{% endif %}
61
64
{% data reusables.actions.self-hosted-runner-create-group %}
62
65
{% elsif ghae or ghes < 3.4 %}
63
66
{% data reusables.organizations.navigate-to-org %}
@@ -88,7 +91,7 @@ When creating a group, you must choose a policy that defines which repositories
88
91
89
92
## Creating a self-hosted runner group for an enterprise
90
93
91
-
Enterprises can add their self-hosted runners to groups for access management. Enterprises can create groups of self-hosted runners that are accessible to specific organizations in the enterprise account. Organization admins can then assign additional granular repository access policies to the enterprise runner groups. For information about how to create a self-hosted runner group with the REST API, see the enterprise endpoints in the [{% data variables.product.prodname_actions %} REST API](/rest/reference/actions#self-hosted-runner-groups).
94
+
Enterprises can add their self-hosted runners to groups for access management. Enterprises can create groups of self-hosted runners that are accessible to specific organizations in the enterprise account{% if restrict-groups-to-workflows %} or to specific workflows{% endif %}. Organization owners can then assign additional granular repository{% if restrict-groups-to-workflows %} or workflow{% endif %} access policies to the enterprise runner groups. For information about how to create a self-hosted runner group with the REST API, see the enterprise endpoints in the [{% data variables.product.prodname_actions %} REST API](/rest/reference/actions#self-hosted-runner-groups).
92
95
93
96
Self-hosted runners are automatically assigned to the default group when created, and can only be members of one group at a time. You can assign the runner to a specific group during the registration process, or you can later move the runner from the default group to a custom group.
94
97
@@ -115,17 +118,21 @@ When creating a group, you must choose a policy that defines which organizations
115
118
116
119

117
120
{%- endif %}
121
+
{% data reusables.actions.runner-group-assign-policy-workflow %}
118
122
1. Click **Save group** to create the group and apply the policy.
119
123
120
124
{% endif %}
121
125
122
126
## Changing the access policy of a self-hosted runner group
123
127
124
-
You can update the access policy of a runner group, or rename a runner group.
128
+
For runner groups in an enterprise, you can change what organizations in the enterprise can access a runner group{% if restrict-groups-to-workflows %} or restrict what workflows a runner group can run{% endif %}. For runner groups in an organization, you can change what repositories in the organization can access a runner group{% if restrict-groups-to-workflows %} or restrict what workflows a runner group can run{% endif %}.
129
+
130
+
### Changing what organizations or repositories can access a runner group
131
+
125
132
{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5091 %}
126
133
{% data reusables.actions.self-hosted-runner-groups-navigate-to-repo-org-enterprise %}
127
134
{% data reusables.actions.settings-sidebar-actions-runner-groups-selection %}
128
-
1.Modify the access options, or change the runner group name.
135
+
1.For runner groups in an enterprise, under **Organization access**, modify what organizations can access the runner group. For runner groups in an organization, under **Repository access**, modify what repositories can access the runner group.
129
136
130
137
{%- ifversion fpt or ghec or ghes %}
131
138
{% warning %}
@@ -142,6 +149,35 @@ You can update the access policy of a runner group, or rename a runner group.
142
149
{% data reusables.actions.self-hosted-runner-configure-runner-group-access %}
143
150
{% endif %}
144
151
152
+
{% if restrict-groups-to-workflows %}
153
+
### Changing what workflows can access a runner group
154
+
You can configure a self-hosted runner group to run either selected workflows or all workflows. For example, you might use this setting to protect secrets that are stored on self-hosted runners or to standardize deployment workflows by restricting a runner group to run only a specific reusable workflow. This setting cannot be overridden if you are configuring an organization's runner group that was shared by an enterprise.
155
+
{% data reusables.actions.self-hosted-runner-groups-navigate-to-repo-org-enterprise %}
156
+
{% data reusables.actions.settings-sidebar-actions-runner-groups-selection %}
157
+
1. Under **Workflow access**, select the dropdown menu and click **Selected workflows**.
1. Enter a comma separated list of the workflows that can access the runner group. Use the full path, including the repository name and owner. Pin the workflow to a branch, tag, or full SHA. For example: `octo-org/octo-repo/.github/workflows/build.yml@v2, octo-org/octo-repo/.github/workflows/deploy.yml@d6dc6c96df4f32fa27b039f2084f576ed2c5c2a5, monalisa/octo-test/.github/workflows/test.yml@main`.
160
+
161
+
Only jobs directly defined within the selected workflows will have access to the runner group.
162
+
163
+
Organization-owned runner groups cannot access workflows from a different organization in the enterprise; instead, you must create an enterprise-owned runner group.
164
+
165
+
1. Click **Save**.
166
+
167
+
{% endif %}
168
+
169
+
## Changing the name of a runner group
170
+
171
+
{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5091 %}
172
+
{% data reusables.actions.self-hosted-runner-groups-navigate-to-repo-org-enterprise %}
173
+
{% data reusables.actions.settings-sidebar-actions-runner-groups-selection %}
174
+
1. Change the runner group name.
175
+
176
+
{% elsif ghae or ghes < 3.4 %}
177
+
{% data reusables.actions.self-hosted-runner-configure-runner-group %}
178
+
1. Change the runner group name.
179
+
{% endif %}
180
+
145
181
{% ifversion ghec or ghes or ghae %}
146
182
## Automatically adding a self-hosted runner to a group
0 commit comments