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
{{ message }}
Repository navigation
Commit 8e7396e
Browse filesBrowse the repository at this point in the historyBrowse files
authored
[DO NOT MERGE] October 28-29: GitHub Universe 2026 docs-internal feature branch (#63873)
Copy file name to clipboardExpand all lines: content/actions/concepts/billing-and-usage.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Billing and usage
3
-
intro: There are usage limits for {% data variables.product.prodname_actions %} workflows. Usage charges apply to repositories that go beyond the amount of free minutes and storage for a repository.
3
+
intro: Understand which {% data variables.product.prodname_actions %} usage is included with your plan, when charges apply, and which usage limits administrators can manage.
Copy file name to clipboardExpand all lines: content/actions/concepts/runners/github-hosted-runners.md
+12-1Lines changed: 12 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -97,7 +97,18 @@ To get started with custom images, see [AUTOTITLE](/actions/how-tos/manage-runne
97
97
98
98
## Cloud hosts used by {% data variables.product.prodname_dotcom %}-hosted runners
99
99
100
-
{% data variables.product.prodname_dotcom %} hosts Linux and Windows runners on virtual machines in Microsoft Azure with the {% data variables.product.prodname_actions %} runner application installed. The {% data variables.product.prodname_dotcom %}-hosted runner application is a fork of the Azure Pipelines Agent. Inbound ICMP packets are blocked for all Azure virtual machines, so ping or traceroute commands might not work. {% data variables.product.prodname_dotcom %} hosts macOS runners in Azure data centers.
100
+
{% data variables.product.prodname_actions %} uses a multi-cloud compute pool to help improve runner availability for eligible Linux jobs. These jobs can run on either Amazon Web Services (AWS) or Microsoft Azure.
101
+
102
+
Multi-cloud compute is used for standard 2-core and 4-core Linux runners and compatible 2-core and 4-core {% data variables.actions.hosted_runners %} without specialized configurations. It does not apply to Windows runners or runners with private networking or other specialized configurations. Jobs are automatically scheduled across available cloud providers.
103
+
104
+
> [!NOTE] If you used {% data variables.product.prodname_dotcom %}-hosted Linux runners before multi-cloud compute was introduced, existing runner labels and workflow syntax remain unchanged.
105
+
106
+
<!-- Before publication, confirm GHE.com availability: the release description and later release discussion conflict. -->
107
+
Eligible runners on {% data variables.product.prodname_free_user %}, {% data variables.product.prodname_pro %}, and {% data variables.product.prodname_team %} automatically use multi-cloud compute. Enterprises on {% data variables.product.prodname_ghe_cloud %} can opt in. See [AUTOTITLE]({% ifversion ghec %}/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#enabling-multi-cloud-compute{% else %}/enterprise-cloud@latest/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#enabling-multi-cloud-compute{% endif %}).
108
+
109
+
If your workflows depend on network allowlists or Azure SDK credentials, running on a different cloud provider can cause connection or authentication failures. Review [IP address requirements](/actions/reference/runners/github-hosted-runners#ip-addresses) and [Azure SDK authentication troubleshooting](/actions/how-tos/troubleshoot-workflows#azure-sdk-authentication-failures).
110
+
111
+
{% data variables.product.prodname_dotcom %} hosts Windows runners and Linux runners that don't use multi-cloud compute on virtual machines in Azure. Inbound ICMP packets are blocked for Azure virtual machines, so ping or traceroute commands might not work. {% data variables.product.prodname_dotcom %} hosts macOS runners in Azure data centers.
Copy file name to clipboardExpand all lines: content/actions/concepts/runners/larger-runners.md
+1-2Lines changed: 1 addition & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -57,7 +57,7 @@ For more information on configuring {% data variables.actions.hosted_runners %}
57
57
## Billing
58
58
59
59
> [!NOTE]
60
-
> {% data variables.actions.hosted_runner_caps %}s are not eligible for the use of included minutes on private repositories. For both private and public repositories, when {% data variables.actions.hosted_runners %} are in use, they will always be billed at the per-minute rate.
60
+
> Where available, {% data variables.actions.hosted_runner %} costs can draw from the included compute usage for accounts on {% data variables.product.prodname_team %} and {% data variables.product.prodname_ghe_cloud %}. After the included value is consumed, usage is billed at the per-minute rate. Usage in public repositories is also billed at the per-minute rate.
61
61
62
62
Compared to standard {% data variables.product.github %}-hosted runners, {% data variables.actions.hosted_runners %} are billed differently. {% data reusables.actions.about-larger-runners-billing %} For more information, see [AUTOTITLE](/billing/reference/actions-runner-pricing).
63
63
@@ -68,4 +68,3 @@ To start using larger runners, see [AUTOTITLE](/actions/how-tos/manage-runners/l
68
68
To find reference information about using {% data variables.actions.hosted_runners %}, see [AUTOTITLE](/actions/reference/runners/larger-runners).
Copy file name to clipboardExpand all lines: content/actions/concepts/security/workflow-dependency-lockfiles.md
+20-12Lines changed: 20 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,19 +9,17 @@ category:
9
9
contentType: concepts
10
10
---
11
11
12
-
> [!NOTE] {% data reusables.actions.workflow-lockfiles-preview %}
13
-
14
12
## Why lock workflow dependencies?
15
13
16
-
When a workflow references an action by a tag or branch, such as `uses: octo-org/deploy-action@v3` or `uses: octo-org/deploy-action@main`, {% data variables.product.prodname_actions %} resolves that reference to whatever commit the tag or branch points to at run time.
14
+
Workflows often reference an action by a tag or branch, such as `uses: octo-org/deploy-action@v3` or `uses: octo-org/deploy-action@main`. {% data variables.product.prodname_actions %} resolves that reference to whatever commit the tag or branch points to at run time.
17
15
18
-
Tags and branches can move, so the code that runs is not guaranteed to be the code that the workflow author originally reviewed. If an upstream maintainer's account is compromised and a tag is repointed, your repositories could run malicious code.
16
+
Tags and branches can move. As a result, the code that runs is not guaranteed to be the code that the workflow author originally reviewed. If an upstream maintainer's account is compromised and a tag is repointed, your repositories could run malicious code.
19
17
20
-
A workflow dependency lockfile pins a commit SHA to every action (including transitive dependencies) and reusable workflow your workflows depend on. This gives you:
18
+
A workflow dependency lockfile pins a commit SHA to every action your workflows depend on, including transitive dependencies. It doesn't pin calls to reusable workflows (`jobs.<job_id>.uses`). To pin a reusable workflow, reference it by its full commit SHA. A lockfile controls which action code runs on the runner. It doesn't control other build inputs, such as input parameters, secrets, or the runner image. A lockfile gives you the following for the action code it covers:
21
19
22
-
* Reproducible builds
20
+
* Reproducible resolution of action dependencies
23
21
* Reviewable dependency changes and {% data variables.product.prodname_dependabot %} version updates
24
-
* An auditable inventory of your CI/CD systems' dependencies
22
+
* An auditable inventory of your CI/CD systems' action dependencies
25
23
26
24
## How does the lockfile work?
27
25
@@ -30,9 +28,10 @@ The lockfile is defined in a repository at `.github/workflows/actions.lock`. It'
30
28
You can onboard a repository's workflows to the lockfile one at a time or all at once. After a workflow is onboarded:
31
29
32
30
* Every action dependency the workflow uses must be present in the lockfile.
33
-
* The locked commit is what runs when the workflow executes, and what allowed actions policies check. This commit must exist within a branch of the source repository.
31
+
* The locked commit is what runs when the workflow executes, and what allowed actions policies check.
32
+
* This commit must be reachable from the branch or tag recorded for it in the lockfile, in the action's own repository. A commit that exists only in a fork, or that's no longer reachable from that branch or tag, is rejected when the workflow runs.
34
33
35
-
A lockfile covers the workflows in its own repository. It extends to transitive dependencies (actions that _your action dependencies_ use), **except** for dependencies of reusable workflow calls. A reusable workflow is covered by the lockfile of the repository where it is defined.
34
+
A lockfile covers the workflows in its own repository, including transitive dependencies (actions that _your action dependencies_ use), **except** for dependencies of reusable workflow calls. Reusable workflows can have their own lockfiles too. A reusable workflow's dependencies are covered by the lockfile of the repository where it's defined, not by the lockfile of the repository that calls it.
36
35
37
36
## What does the lockfile record?
38
37
@@ -41,7 +40,8 @@ The lockfile has two sections. `workflows` records which dependencies each onboa
41
40
```yaml
42
41
# This file is machine-generated by `gh actions-lock`.
43
42
# Do not edit by hand; run `gh actions-lock` to update.
44
-
version: 'v0.0.2'
43
+
# Docs: https://gh.io/actions-lockfile
44
+
version: 'v0.0.3'
45
45
workflows:
46
46
'.github/workflows/ci.yml':
47
47
- 'octo-org/deploy-action@v3.1.0'
@@ -55,13 +55,21 @@ dependencies:
55
55
56
56
Each dependency records:
57
57
58
-
* **`ref`**: The reference the workflow uses, such as a tag or branch.
58
+
* **`ref`**: The tag or branch the commit was resolved from.
59
59
* **`commit`**: The exact commit the reference resolved to. This is the code that will run.
60
60
* **`owner_id` and `repo_id`**: The numeric identity of the source repository. {% data variables.product.prodname_actions %} uses these to confirm at run time that the repository behind the name is still the one you locked.
61
61
62
+
This structured format gives tools like {% data variables.product.prodname_dependabot %} a machine-readable record they can use to manage dependency updates, without relying on YAML comments as version annotations.
63
+
62
64
## How do lockfiles compare with SHA pinning?
63
65
64
-
{% data variables.product.github %} has historically recommended pinning third-party actions to a full-length commit SHA in your workflow files. For repositories that adopt a lockfile, SHA pinning within workflow files is **no longer necessary**. The lockfile is the better option because it supports transitive dependencies, makes workflow files easier to read, and records the identity of the source repository.
66
+
{% data variables.product.github %} has historically recommended pinning third-party actions to a full-length commit SHA in your workflow files. For repositories that adopt a lockfile, SHA pinning within workflow files is **no longer necessary**. The lockfile is the better option because it:
67
+
68
+
* Supports transitive dependencies
69
+
* Makes workflow files easier to read
70
+
* Records the identity of the source repository
71
+
72
+
A lockfile also satisfies the separate **Require actions to be pinned to a full-length commit SHA** policy for workflows that are onboarded to it. See [AUTOTITLE](/actions/how-tos/administer/control-workflow-execution#require-lockfile).
Copy file name to clipboardExpand all lines: content/actions/concepts/workflows-and-actions/concurrency.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ category:
12
12
13
13
By default, {% data variables.product.prodname_actions %} allows multiple jobs within the same workflow, multiple workflow runs within the same repository, and multiple workflow runs across a repository owner's account to run concurrently. This means that multiple instances of the same workflow or job can run at the same time, performing the same steps.
14
14
15
-
{% data variables.product.prodname_actions %} also allows you to disable concurrent execution. This can be useful for controlling your account’s or organization’s resources in situations where running multiple workflows or jobs at the same time could cause conflicts or consume more Actions minutes and storage than expected. For example, you might want to prevent multiple deployments from running at the same time, or cancel linters checking outdated commits.
15
+
{% data variables.product.prodname_actions %} also allows you to disable concurrent execution. This can be useful for controlling your account’s or organization’s resources in situations where running multiple workflows or jobs at the same time could cause conflicts or consume more runner compute and storage than expected. For example, you might want to prevent multiple deployments from running at the same time, or cancel linters checking outdated commits.
Copy file name to clipboardExpand all lines: content/actions/how-tos/administer/control-workflow-execution.md
+8-2Lines changed: 8 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -82,11 +82,17 @@ Event rules control which events are permitted, such as `push`, `pull_request`,
82
82
83
83
### Require lockfile
84
84
85
-
The **Require lockfile** protection blocks runs of workflows with `uses:` dependencies on other actions, unless the dependencies are pinned in a dependency lockfile. This ensures that the targeted workflows run predictable, vetted code, rather than whatever a tag or branch points to at run time. See [AUTOTITLE](/actions/concepts/security/workflow-dependency-lockfiles).
85
+
The **Require lockfile** protection blocks runs of targeted workflows that aren't onboarded to the repository's lockfile. This way, the targeted workflows run vetted, predictable code, instead of whatever a tag or branch points to at run time. This protection, and lockfiles in general, only cover actions called at the step level (`jobs.<job_id>.steps[*].uses`). They don't cover reusable workflows called at the job level (`jobs.<job_id>.uses`). If a called reusable workflow isn't onboarded to the lockfile in its own repository, this protection blocks the calling workflow's run. See [AUTOTITLE](/actions/concepts/security/workflow-dependency-lockfiles).
86
86
87
87
Generate and verify lockfiles in the repositories you're targeting before you set this protection to **Active**. Otherwise, you'll block workflow runs in repositories that aren't ready. For a staged rollout, see [AUTOTITLE](/actions/how-tos/administer/enforce-workflow-lockfiles).
88
88
89
-
You can keep **Require actions to be pinned to a full-length commit SHA** enabled when adopting lockfiles. For dependencies covered by a lockfile, {% data variables.product.github %} evaluates this requirement using the locked commit SHA. Keeping the policy enabled during a staged rollout preserves SHA-pinning enforcement for workflows that have not yet adopted lockfiles.
89
+
You can keep the separate **Require actions to be pinned to a full-length commit SHA** policy enabled when adopting lockfiles. A lockfile satisfies the SHA-pinning requirement for workflows that are onboarded to a lockfile.
90
+
91
+
Both policies are independent checks, and a workflow run must pass both when they're both enabled:
92
+
93
+
* A workflow that is in the lockfile passes both policies, with no SHAs needed in the workflow file.
94
+
* A workflow that isn't in the lockfile, with `uses:` references pinned to a full-length commit SHA, passes SHA pinning but is blocked by **Require lockfile**.
95
+
* A workflow that isn't in the lockfile, with `uses:` references to a tag or branch, is blocked by both policies.
0 commit comments