Skip to content

Commit 8e7396e

Browse files
saritaicwebster-99Copilotstevewarddenizhan
authored
[DO NOT MERGE] October 28-29: GitHub Universe 2026 docs-internal feature branch (#63873)
Co-authored-by: cwebster-99 <cowebster@microsoft.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Co-authored-by: Steve Ward <steveward@github.com> Co-authored-by: denizhan <denizhan@github.com> Co-authored-by: Sophie <29382425+sophietheking@users.noreply.github.com> Co-authored-by: Sunbrye Ly <56200261+sunbrye@users.noreply.github.com> Co-authored-by: Courtney Webster <60238438+cwebster-99@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: hubwriter <hubwriter@github.com> Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> Co-authored-by: Isaac Brown <101839405+isaacmbrown@users.noreply.github.com> Co-authored-by: Jeff Martin <nodeselector@github.com> Co-authored-by: Anne-Marie <102995847+am-stead@users.noreply.github.com> Co-authored-by: Erin Havens <erinhav@github.com> Co-authored-by: mchammer01 <mchammer01@users.noreply.github.com> Co-authored-by: Carlin Cherry <61124041+carlincherry@users.noreply.github.com> Co-authored-by: vgrl <vgrl@github.com> Co-authored-by: John Clement <jclement136@github.com> Co-authored-by: Isaac Brown <isaacmbrown@github.com> Co-authored-by: John Clement <70238417+jclement136@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Jenni C <97056108+dihydroJenoxide@users.noreply.github.com> Co-authored-by: Melanie Yarbrough <11952755+myarb@users.noreply.github.com> Co-authored-by: Laura Coursen <lecoursen@github.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: Salil <salilsub@users.noreply.github.com> Co-authored-by: Harald Kirschner <hkirschner@microsoft.com> Co-authored-by: hkirschner_microsoft <hkirschner_microsoft@github.com> Co-authored-by: Siara <108543037+SiaraMist@users.noreply.github.com> Co-authored-by: Florin Coada <coadaflorin@github.com> Co-authored-by: Nhu Do <nhu-do@github.com> Co-authored-by: hubwriter <54933897+hubwriter@users.noreply.github.com> Co-authored-by: denizhan <28038095+denizhan@users.noreply.github.com> Co-authored-by: Ria Gopu <ria-gopu@github.com> Co-authored-by: Felix Guntrip <guntrip@github.com> Co-authored-by: guntrip <12534592+guntrip@users.noreply.github.com> Co-authored-by: demiracl <59473285+demiracl@users.noreply.github.com> Co-authored-by: meeraharidasa <22649188+meeraharidasa@users.noreply.github.com> Co-authored-by: Meera Haridasa <meharida@microsoft.com> Co-authored-by: Meera Haridasa <meeraharidasa@Meeras-MacBook-Pro-7.local> Co-authored-by: Aditya Sharad <6874315+adityasharad@users.noreply.github.com> Co-authored-by: Tim Rogers <timrogers@github.com> Co-authored-by: Claire W <78226508+crwaters16@users.noreply.github.com> Co-authored-by: Camilla Moraes <moraesc@github.com> Co-authored-by: Dhruv Chand <2397639+dhruvchand@users.noreply.github.com> Co-authored-by: Samuel Zhang <samuel.zhang2000@gmail.com> Co-authored-by: sunbrye <sunbrye@github.com> Co-authored-by: Samuel Zhang <im-samz@github.com> Co-authored-by: Evi Liu <evi-liu@github.com> Co-authored-by: Siara Leininger <siaramist@github.com> Co-authored-by: sheenyg <25390061+sheenyg@users.noreply.github.com> Co-authored-by: docs-bot <77750099+docs-bot@users.noreply.github.com> Copilot-Session: be7d4eeb-baf9-4dd4-b153-24df3318c2f9 Copilot-Session: fab73d61-a55a-42e6-be53-a3a511d81121 Copilot-Session: b17bf256-6dbd-487a-b6e6-e69793aee3ca Copilot-Session: f663b864-dcf1-4738-b8e3-20f4335d99c6 Copilot-Session: eb824123-516f-4b8b-824d-f29c5ef17693 Copilot-Session: 1f89bca9-cd73-442f-809b-9548c90892c2 Copilot-Session: 374f02e8-4dcf-46c9-864a-cd88e3486d30 Copilot-Session: 2ae89173-4a8d-42a7-b590-35c524ecbec7 Copilot-Session: af39439c-25d1-441e-9c81-0f74650333eb Copilot-Session: d18536c2-5892-4bc8-8e8f-755ad166a9e5 Copilot-Session: 75d95361-c9a8-49e4-8f67-03ec82bec374 Copilot-Session: fec91600-1a47-4713-8d25-58f5cfe8dfd2 Copilot-Session: 95520103-c3f4-414b-835d-eddd240df4e6 Copilot-Session: 0ff5abff-7ba1-4bcd-b098-e517370dac6d Copilot-Session: ae8a2574-1897-46ae-ae8f-be8648a92910 Copilot-Session: bbcaf7d1-4485-4a30-809b-84d54cd03835 Copilot-Session: d6c7d191-d38c-46b0-8dc9-c13806a20dd7 Copilot-Session: 52431d0a-47e0-43f3-8605-cecce36b3206 Copilot-Session: ae81238a-5cd6-445f-bad6-9c9ceb2763ff Copilot-Session: 540c2a88-10e5-4aad-98d3-87d1c3391024 Copilot-Session: 2420efa6-7f57-465b-904a-e0d6032e8c94 Copilot-Session: db8fc8ef-4394-4e9e-a299-3b53a951c9b6 Copilot-Session: 55d547ef-f00e-4a88-80d5-06c2127b4d0b Copilot-Session: 2fbe1460-b37d-4ed8-8ba3-745d6a974568 Copilot-Session: bb983bc9-0e86-48d9-8574-aad46a1f33d5 Copilot-Session: 9661e8ab-6892-46ff-9e6e-a5731a2a257f Copilot-Session: b998c2c2-b8bd-49f2-81d3-f98da5d668a2 Copilot-Session: 0045034c-f85b-4d79-b8e2-86a280781209 Copilot-Session: 6b639d9a-03c4-46f8-91a4-4b4a9d5a2e09 Copilot-Session: f39f41f5-a548-495a-9d6b-92f340cf7bcd Copilot-Session: eea6da52-9d5e-4501-ae2c-f5bfd2b67733 Copilot-Session: d2bf2ae7-486a-4e5d-93d8-4e02974bfe17 Copilot-Session: af3867d6-3787-431b-9a6e-3a2337e20b89 Copilot-Session: ee531e9a-ee91-49da-9766-42ea6023e119 Copilot-Session: 2782db75-fdbf-4749-90bc-f6ead69a2aaa Copilot-Session: 9af13f64-ece2-4d51-8e36-94707358c9c9 Copilot-Session: 72e62287-9698-4c5f-a826-6de2f5e63355 Copilot-Session: fcf91375-4b4c-4e65-bd75-d0b47a355c7f Copilot-Session: a19e3856-239d-43a3-ab65-7d5b406295af Copilot-Session: a3c61792-c904-4993-8eec-a2e6674d8f29 Copilot-Session: 4e123d73-7c42-41cd-b794-19ad0f6aaadd
1 parent 58e277a commit 8e7396e

414 files changed

Lines changed: 15068 additions & 2372 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
67.3 KB
Loading

‎content/actions/concepts/billing-and-usage.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
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.
44
redirect_from:
55
- /actions/getting-started-with-github-actions/usage-and-billing-information-for-github-actions
66
- /actions/reference/usage-limits-billing-and-administration

‎content/actions/concepts/runners/github-hosted-runners.md‎

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,18 @@ To get started with custom images, see [AUTOTITLE](/actions/how-tos/manage-runne
9797

9898
## Cloud hosts used by {% data variables.product.prodname_dotcom %}-hosted runners
9999

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.
101112

102113
## Workflow continuity
103114

‎content/actions/concepts/runners/larger-runners.md‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ For more information on configuring {% data variables.actions.hosted_runners %}
5757
## Billing
5858

5959
> [!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.
6161
6262
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).
6363

@@ -68,4 +68,3 @@ To start using larger runners, see [AUTOTITLE](/actions/how-tos/manage-runners/l
6868
To find reference information about using {% data variables.actions.hosted_runners %}, see [AUTOTITLE](/actions/reference/runners/larger-runners).
6969

7070
{% endif %}
71-

‎content/actions/concepts/security/workflow-dependency-lockfiles.md‎

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,17 @@ category:
99
contentType: concepts
1010
---
1111

12-
> [!NOTE] {% data reusables.actions.workflow-lockfiles-preview %}
13-
1412
## Why lock workflow dependencies?
1513

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.
1715

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.
1917

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:
2119

22-
* Reproducible builds
20+
* Reproducible resolution of action dependencies
2321
* 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
2523

2624
## How does the lockfile work?
2725

@@ -30,9 +28,10 @@ The lockfile is defined in a repository at `.github/workflows/actions.lock`. It'
3028
You can onboard a repository's workflows to the lockfile one at a time or all at once. After a workflow is onboarded:
3129

3230
* 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.
3433

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.
3635

3736
## What does the lockfile record?
3837

@@ -41,7 +40,8 @@ The lockfile has two sections. `workflows` records which dependencies each onboa
4140
```yaml
4241
# This file is machine-generated by `gh actions-lock`.
4342
# 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'
4545
workflows:
4646
'.github/workflows/ci.yml':
4747
- 'octo-org/deploy-action@v3.1.0'
@@ -55,13 +55,21 @@ dependencies:
5555
5656
Each dependency records:
5757
58-
* **`ref`**: The reference the workflow uses, such as a tag or branch.
58+
* **`ref`**: The tag or branch the commit was resolved from.
5959
* **`commit`**: The exact commit the reference resolved to. This is the code that will run.
6060
* **`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.
6161

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+
6264
## How do lockfiles compare with SHA pinning?
6365

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).
6573

6674
## Next steps
6775

‎content/actions/concepts/workflows-and-actions/concurrency.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ category:
1212

1313
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.
1414

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.
1616

1717
{% ifversion actions-nga %}
1818

‎content/actions/how-tos/administer/control-workflow-execution.md‎

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,17 @@ Event rules control which events are permitted, such as `push`, `pull_request`,
8282

8383
### Require lockfile
8484

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).
8686

8787
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).
8888

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.
9096

9197
{% endif %}
9298

0 commit comments

Comments
 (0)