Skip to content

Commit ffd71be

Browse files
authored
Merge pull request #44115 from github/repo-sync
Repo sync
2 parents 6689a8f + dca17ee commit ffd71be

11 files changed

Lines changed: 84 additions & 20 deletions

File tree

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,10 @@ By default, {% data variables.product.prodname_actions %} allows multiple jobs w
1414

1515
{% 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.
1616

17+
{% ifversion actions-nga %}
18+
19+
When you limit concurrency, by default only one run can be pending in a concurrency group—any additional pending runs cancel the previous one. If you need runs to execute sequentially without being canceled, you can opt in to queuing, which allows multiple runs to wait in line and execute in order.
20+
21+
{% endif %}
22+
1723
To start controlling concurrency in your own workflows with the `concurrency` keyword, see [AUTOTITLE](/actions/how-tos/writing-workflows/choosing-when-your-workflow-runs/control-the-concurrency-of-workflows-and-jobs).

content/actions/get-started/continuous-deployment.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ You can set up a {% data variables.product.prodname_actions %} workflow to deplo
3232

3333
You can configure your CD workflow to run when an event occurs (for example, when new code is pushed to the default branch of your repository), on a set schedule, manually, or when an external event occurs using the repository dispatch webhook. For more information about when your workflow can run, see [AUTOTITLE](/actions/using-workflows/events-that-trigger-workflows).
3434

35-
{% data variables.product.prodname_actions %} provides features that give you more control over deployments. For example, you can use environments to require approval for a job to proceed, restrict which branches can trigger a workflow, or limit access to secrets. You can use concurrency to limit your CD pipeline to a maximum of one in-progress deployment and one pending deployment. For more information about these features, see [AUTOTITLE](/actions/deployment/about-deployments/deploying-with-github-actions) and [AUTOTITLE](/actions/deployment/targeting-different-environments/managing-environments-for-deployment).
35+
{% data variables.product.prodname_actions %} provides features that give you more control over deployments. For example, you can use environments to require approval for a job to proceed, restrict which branches can trigger a workflow, or limit access to secrets. You can use concurrency to limit your CD pipeline to a maximum of one in-progress deployment{% ifversion actions-nga %}{% else %} and one pending deployment{% endif %}. For more information about these features, see [AUTOTITLE](/actions/deployment/about-deployments/deploying-with-github-actions) and [AUTOTITLE](/actions/deployment/targeting-different-environments/managing-environments-for-deployment).
3636

3737
## Workflow templates and third-party actions
3838

content/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ You can configure environments with protection rules and secrets. When a workflo
5252
5353
## Using concurrency
5454
55-
Concurrency ensures that only a single job or workflow using the same concurrency group will run at a time. You can use concurrency so that an environment has a maximum of one deployment in progress and one deployment pending at a time. For more information about concurrency, see [AUTOTITLE](/actions/using-jobs/using-concurrency).
55+
Concurrency ensures that only a single job or workflow using the same concurrency group will run at a time. You can use concurrency so that an environment has a maximum of one deployment in progress{% ifversion actions-nga %}{% else %} and one deployment pending{% endif %} at a time. For more information about concurrency, see [AUTOTITLE](/actions/using-jobs/using-concurrency).
5656
5757
{% ifversion actions-environments-without-deployments %}
5858

content/actions/reference/limits.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,12 @@ These limits are subject to change.
3030
| Workflow execution limit | Gate approval time | 30 days | A workflow may wait for up to [30 days on environment approvals](/actions/managing-workflow-runs-and-deployments/managing-deployments/managing-environments-for-deployment#wait-timer). | {% octicon "x" aria-label="No" %} |
3131
| Workflow execution limit | Job Matrix | 256 jobs / workflow run | A job matrix can generate a maximum of 256 jobs per workflow run. This limit applies to both {% data variables.product.github %}-hosted and self-hosted runners. | {% octicon "x" aria-label="No" %} |
3232
| Workflow execution limit | Re-run | 50 re-runs | A workflow run can be re-run a maximum of 50 times. This limit includes both full re-runs and re-runs of a subset of jobs. | {% octicon "check" aria-label="Yes" %} Support ticket |
33+
| Checks | Check runs per check suite | 50,000 check runs / check suite | A check suite can have a maximum of 50,000 check runs. This limit applies to check runs created through the Checks API and by {% data variables.product.prodname_actions %} workflow runs. When a check suite reaches this limit, additional check runs cannot be created for that check suite. | {% octicon "check" aria-label="Yes" %} Support ticket |
3334
| Workflows queuing | Workflow trigger event rate limit | 1500 events / 10 seconds / repository | Each repository is limited to events triggering a workflow run. | {% octicon "check" aria-label="Yes" %} Support ticket |
3435
| Workflows queuing | Workflow run queued | 500 workflow runs / 10 seconds | When the limit is reached, the workflow runs that were supposed to be triggered by the webhook events will be blocked and will not be queued. Reusable workflows are viewed as a single entity. For example, a run with 30 reusable workflows counts as 1 in this instance. | {% octicon "x" aria-label="No" %} |
36+
| {% ifversion actions-nga %} |
37+
| Workflows queuing | Concurrency group queue | 100 workflow runs / concurrency group | When using `queue: max` in the `concurrency` section, up to 100 jobs or workflow runs can be queued per concurrency group. Runs beyond this limit will be rejected. | {% octicon "x" aria-label="No" %} |
38+
| {% endif %} |
3539
| Self-hosted | Runner registrations | 1500 runners / 5 minutes / repository/org/enterprise | Runners can be registered per repository/organization/enterprise. | {% octicon "check" aria-label="Yes" %} Support ticket |
3640
| Self-hosted | Runners per runner group | 10,000 runners | Runners registered at the same time per runner group. | {% octicon "x" aria-label="No" %} |
3741
| Self-hosted | Job execution time | 5 days | Each job in a workflow can run for up to 5 days of execution time. If a job reaches this limit, the job is terminated and fails. | {% octicon "x" aria-label="No" %} |

content/copilot/concepts/agents/about-third-party-agents.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,16 @@ Within your monthly usage allowance for {% data variables.product.prodname_actio
7171

7272
For more information, see [AUTOTITLE](/billing/managing-billing-for-your-products/managing-billing-for-github-copilot/about-billing-for-github-copilot).
7373

74+
## Partner agents
75+
76+
When enabling partner agents in your user or organization {% data variables.copilot.copilot_cloud_agent %} settings, a {% data variables.product.prodname_github_app %} will be installed for the corresponding agent.
77+
78+
* **Allow Claude coding agent** will install `anthropic code agent`
79+
* **Allow Codex coding agent** will install `openai code agent`
80+
81+
Actions taken by these {% data variables.product.prodname_github_apps %} will be visible in your audit log, but the {% data variables.product.prodname_github_apps %} themselves will not be visible in your account's list of {% data variables.product.prodname_github_app %} installations.
82+
7483
## Next steps
7584

7685
* To start managing agents, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/manage-agents).
77-
* To learn how AI models are hosted and served, see [AUTOTITLE](/copilot/reference/ai-models/model-hosting).
86+
* To learn how AI models are hosted and served, see [AUTOTITLE](/copilot/reference/ai-models/model-hosting).

content/copilot/concepts/auto-model-selection.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ Experience less rate limiting and reduce the mental load of choosing a model by
2727

2828
> [!NOTE] Soon {% data variables.copilot.copilot_auto_model_selection %} will choose the best model for you based on your task.
2929
30+
### Multiplier discounts
31+
32+
{% data reusables.copilot.auto-model-multiplier-discount %} See [AUTOTITLE](/copilot/concepts/billing/copilot-requests#model-multipliers).
33+
3034
## {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} in {% data variables.copilot.copilot_chat_short %}
3135

3236
{% data variables.copilot.copilot_auto_model_selection_short_cap_a %} is generally available in the following IDEs:
@@ -44,10 +48,6 @@ When you select **Auto** in {% data variables.copilot.copilot_chat_short %} in I
4448
4549
{% data reusables.copilot.change-the-ai-model %}
4650

47-
### Multiplier discounts
48-
49-
{% data reusables.copilot.auto-model-multiplier-discount %} See [AUTOTITLE](/copilot/concepts/billing/copilot-requests#model-multipliers).
50-
5151
### Enabling access during {% data variables.release-phases.public_preview %}
5252

5353
During the {% data variables.release-phases.public_preview %}, if you're using a {% data variables.copilot.copilot_business_short %} or {% data variables.copilot.copilot_enterprise_short %} plan, the organization or enterprise that provides your plan must have the **Editor preview features** policy enabled. See [AUTOTITLE](/enterprise-cloud@latest/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-policies-for-copilot-in-your-organization#enabling-copilot-features-in-your-organization) or [AUTOTITLE](/enterprise-cloud@latest/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-policies-and-features-for-copilot-in-your-enterprise#copilot-in-githubcom).

content/copilot/concepts/billing/copilot-requests.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ The available models vary depending on your {% data variables.product.prodname_c
9999
> [!NOTE]
100100
> * The models included with {% data variables.product.prodname_copilot_short %} plans are subject to change.
101101
> * Model multipliers and costs are subject to change.
102-
> * Discounted multipliers are available for using {% data variables.copilot.copilot_auto_model_selection %} in {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_vscode_shortname %}. See [AUTOTITLE](/copilot/concepts/auto-model-selection).
102+
> * Discounted multipliers are available for using {% data variables.copilot.copilot_auto_model_selection %}. See [AUTOTITLE](/copilot/concepts/auto-model-selection).
103103
> * {% data reusables.copilot.auto-model-multiplier-discount %} For example, Sonnet 4 would be billed at .9x rather than 1x when using {% data variables.copilot.copilot_auto_model_selection_short %}.
104104
> * Discounted multipliers are not available for {% data variables.copilot.copilot_free_short %}.
105105

content/rest/actions/concurrency-groups.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,8 @@ category:
1111
- Automate CI/CD workflows
1212
---
1313

14-
<!-- Content after this section is automatically generated -->
14+
## About concurrency groups in {% data variables.product.prodname_actions %}
15+
16+
You can use the REST API to read the state of {% data variables.product.prodname_actions %} concurrency groups, which ensure that only a single job or workflow using the same group will run at a time while additional runs are pending or canceled depending on configuration. For more information, see [AUTOTITLE](/actions/using-jobs/using-concurrency).
17+
18+
<!-- Content after this section is automatically generated -->

data/reusables/actions/actions-group-concurrency.md

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,29 @@
1+
{% ifversion actions-nga %}
2+
3+
This means that there can be at most one running job or workflow in a concurrency group at any time. When a concurrent job or workflow is queued, if another job or workflow using the same concurrency group in the repository is in progress, the queued job or workflow will be `pending`. By default, any existing `pending` job or workflow in the same concurrency group will be canceled and the new queued job or workflow will take its place.
4+
5+
{% else %}
6+
17
This means that there can be at most one running and one pending job in a concurrency group at any time. When a concurrent job or workflow is queued, if another job or workflow using the same concurrency group in the repository is in progress, the queued job or workflow will be `pending`. Any existing `pending` job or workflow in the same concurrency group, if it exists, will be canceled and the new queued job or workflow will take its place.
28

9+
{% endif %}
10+
311
To also cancel any currently running job or workflow in the same concurrency group, specify `cancel-in-progress: true`. To conditionally cancel currently running jobs or workflows in the same concurrency group, you can specify `cancel-in-progress` as an expression with any of the allowed expression contexts.
412

13+
{% ifversion actions-nga %}
14+
15+
To allow more than one `pending` job or workflow run to wait in the same concurrency group, use the optional `queue` property. The `queue` property accepts the following values:
16+
17+
* `single` (default): At most one job or workflow run can be `pending` in the concurrency group. When a new job or workflow run is queued, any existing `pending` job or workflow run in the same group is canceled and replaced.
18+
* `max`: Up to 100 jobs or workflow runs can be `pending` in the concurrency group. When the queue is full, any additional jobs or workflow runs are canceled.
19+
20+
The combination of `queue: max` and `cancel-in-progress: true` is not allowed and will result in a workflow validation error.
21+
22+
{% endif %}
23+
524
> [!NOTE]
625
> * The concurrency group name is case insensitive. For example, `prod` and `Prod` will be treated as the same concurrency group.
7-
> * Ordering is not guaranteed for jobs or workflow runs using concurrency groups. Jobs or workflow runs in the same concurrency group are handled in an arbitrary order.
26+
> * Jobs or workflow runs in the same concurrency group are processed in first-in-first-out (FIFO) order according to the time each one started waiting on the concurrency group, not the time each workflow was dispatched. Since the actual start time of a job or run may vary, ordering is not guaranteed.
827
928
### Example: Using concurrency and the default behavior
1029

@@ -81,6 +100,33 @@ concurrency:
81100

82101
{% endraw %}
83102

103+
{% ifversion actions-nga %}
104+
105+
### Example: Queueing multiple pending runs
106+
107+
By default, only one job or workflow run can be `pending` in a concurrency group at a time. To allow multiple runs to queue instead of being canceled, set `queue: max`. With `queue: max`, up to 100 jobs or workflow runs can wait in the concurrency group; once the queue is full, any additional runs are canceled.
108+
109+
For example, the following workflow queues deployments to the `production` environment, processing them one at a time in order based on when each run started waiting on the concurrency group:
110+
111+
{% raw %}
112+
113+
```yaml
114+
on:
115+
push:
116+
branches:
117+
- main
118+
119+
concurrency:
120+
group: production-deploy
121+
queue: max
122+
```
123+
124+
{% endraw %}
125+
126+
Note that `queue: max` cannot be combined with `cancel-in-progress: true`, because the two options describe conflicting behaviors for handling in-progress runs.
127+
128+
{% endif %}
129+
84130
### Example: Using concurrency to cancel any in-progress job or run
85131

86132
To use concurrency to cancel any in-progress job or run in {% data variables.product.prodname_actions %}, you can use the `concurrency` key with the `cancel-in-progress` option set to `true`:
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
If you are on a paid {% data variables.product.prodname_copilot_short %} plan and use {% data variables.copilot.copilot_auto_model_selection_short %}, models qualify for a 10% multiplier discount.
1+
If you are on a paid {% data variables.product.prodname_copilot_short %} plan and use {% data variables.copilot.copilot_auto_model_selection_short %} in {% data variables.copilot.copilot_chat_short %}, {% data variables.copilot.copilot_cli_short %}, or {% data variables.copilot.copilot_cloud_agent %}, models qualify for a 10% multiplier discount.

0 commit comments

Comments
 (0)