From 8bb6f524aab1d0c2573c0ae3bb0c70b528c4e30b Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Tue, 4 Aug 2026 23:39:19 +0000 Subject: [PATCH 01/12] GitHub Agentic Workflows Cross references (#62497) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Co-authored-by: Vanessa --- .../reusing-workflow-configurations.md | 12 ++++++++++++ content/actions/get-started/continuous-deployment.md | 7 +++++++ .../actions/get-started/understand-github-actions.md | 7 +++++++ .../manage-workflow-runs/manually-run-a-workflow.md | 1 + .../events-that-trigger-workflows.md | 12 ++++++++++-- .../reusing-workflow-configurations.md | 8 +++++++- .../workflows-and-actions/workflow-syntax.md | 8 ++++++++ .../automate-dependabot-with-actions.md | 10 +++++++++- .../automating-projects-using-actions.md | 9 ++++++++- .../workflows/triggering-a-workflow-paths5.md | 2 +- 10 files changed, 70 insertions(+), 6 deletions(-) diff --git a/content/actions/concepts/workflows-and-actions/reusing-workflow-configurations.md b/content/actions/concepts/workflows-and-actions/reusing-workflow-configurations.md index 264b5632c4a7..8080a1f5856e 100644 --- a/content/actions/concepts/workflows-and-actions/reusing-workflow-configurations.md +++ b/content/actions/concepts/workflows-and-actions/reusing-workflow-configurations.md @@ -20,6 +20,12 @@ contentType: concepts Rather than copying and pasting from one workflow to another, you can make workflows reusable. You and anyone with access to the reusable workflow can then call the reusable workflow from another workflow. +{% ifversion copilot %} + +Reusable workflows also complement {% data variables.copilot.agentic_workflows_short %}: an agentic workflow can call approved, deterministic reusable workflows rather than duplicating logic. For more information, see [AUTOTITLE](/copilot/how-tos/github-agentic-workflows/creating-github-agentic-workflows). + +{% endif %} + Reusing workflows avoids duplication. This makes workflows easier to maintain and allows you to create new workflows more quickly by building on the work of others, just as you do with actions. Workflow reuse also promotes best practice by helping you to use workflows that are well designed, have already been tested, and have been proven to be effective. Your organization can build up a library of reusable workflows that can be centrally maintained. The diagram below shows an in-progress workflow run that uses a reusable workflow. @@ -77,6 +83,12 @@ If you use a commit SHA when referencing the reusable workflow, you can ensure t For more information, see [AUTOTITLE](/actions/how-tos/reuse-automations/create-workflow-templates). +{% ifversion copilot %} + +Organizations can also share and govern approved {% data variables.copilot.agentic_workflows_short %} templates alongside shared actions and reusable workflows. To create templates with {% data variables.copilot.github_agentic_workflows %}, see [AUTOTITLE](/copilot/how-tos/github-agentic-workflows/creating-github-agentic-workflows). + +{% endif %} + {% ifversion fpt or ghec %} ## YAML anchors and aliases diff --git a/content/actions/get-started/continuous-deployment.md b/content/actions/get-started/continuous-deployment.md index 8bd59e8dffd3..f2e60c04f7d3 100644 --- a/content/actions/get-started/continuous-deployment.md +++ b/content/actions/get-started/continuous-deployment.md @@ -34,6 +34,13 @@ You can configure your CD workflow to run when an event occurs (for example, whe {% 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/how-tos/deploy/configure-and-manage-deployments/control-deployments) and [AUTOTITLE](/actions/how-tos/deploy/configure-and-manage-deployments/manage-environments). +{% ifversion copilot %} + +> [!TIP] +> You can use {% data variables.copilot.agentic_workflows_short %} for deployment preparation, such as release notes, change analysis, and rollout summaries, while keeping production deployments in deterministic {% data variables.product.prodname_actions %} workflows. For more information, see [AUTOTITLE](/copilot/how-tos/github-agentic-workflows/creating-github-agentic-workflows). + +{% endif %} + ## Workflow templates and third-party actions {% data reusables.actions.cd-templates-actions %} diff --git a/content/actions/get-started/understand-github-actions.md b/content/actions/get-started/understand-github-actions.md index badf3b244bed..d6014b3c1166 100644 --- a/content/actions/get-started/understand-github-actions.md +++ b/content/actions/get-started/understand-github-actions.md @@ -114,6 +114,13 @@ For more information{% ifversion fpt or ghec %} about self-hosted runners{% endi {% data reusables.actions.onboarding-next-steps %} +{% ifversion copilot %} + +> [!NOTE] +> For automations that require contextual judgment about your repository's content, you can also author {% data variables.copilot.agentic_workflows_short %} in natural language instead of a traditional {% data variables.product.prodname_actions %} workflow. For more information, see [AUTOTITLE](/copilot/how-tos/github-agentic-workflows/quickstart) and [AUTOTITLE](/copilot/how-tos/github-agentic-workflows/creating-github-agentic-workflows). + +{% endif %} + {% ifversion ghec or ghes %} ## Further reading diff --git a/content/actions/how-tos/manage-workflow-runs/manually-run-a-workflow.md b/content/actions/how-tos/manage-workflow-runs/manually-run-a-workflow.md index 5ff1665a49c5..e1d4787f8dea 100644 --- a/content/actions/how-tos/manage-workflow-runs/manually-run-a-workflow.md +++ b/content/actions/how-tos/manage-workflow-runs/manually-run-a-workflow.md @@ -93,3 +93,4 @@ When using the REST API, you configure the `inputs` and `ref` as request body pa > You can define up to {% ifversion fpt or ghec %}25 {% else %}10 {% endif %} `inputs` for a `workflow_dispatch` event. For more information about using the REST API, see [AUTOTITLE](/rest/actions/workflows#create-a-workflow-dispatch-event). + diff --git a/content/actions/reference/workflows-and-actions/events-that-trigger-workflows.md b/content/actions/reference/workflows-and-actions/events-that-trigger-workflows.md index ec2cf92f9231..0734cdc180c9 100644 --- a/content/actions/reference/workflows-and-actions/events-that-trigger-workflows.md +++ b/content/actions/reference/workflows-and-actions/events-that-trigger-workflows.md @@ -27,6 +27,12 @@ Some events have multiple activity types. For these events, you can specify whic > [!NOTE] > Not all webhook events trigger workflows. +{% ifversion copilot %} + +Like {% data variables.product.prodname_actions %} workflows, {% data variables.copilot.agentic_workflows_short %} can be triggered by repository events and schedules. For an example, see [AUTOTITLE](/copilot/how-tos/github-agentic-workflows/creating-github-agentic-workflows). + +{% endif %} + ## `branch_protection_rule` | Webhook event payload | Activity types | `GITHUB_SHA` | `GITHUB_REF` | @@ -376,7 +382,7 @@ on: > * {% data reusables.developer-site.multiple_activity_types %} Although only the `checks_requested` activity type is supported, specifying the activity type will keep your workflow specific if more activity types are added in the future. For information about each activity type, see [AUTOTITLE](/webhooks/webhook-events-and-payloads#merge_group). {% data reusables.developer-site.limit_workflow_to_activity_types %} > * {% data reusables.actions.merge-group-event-with-required-checks %} -Runs your workflow when a pull request is added to a merge queue, which adds the pull request to a merge group. For more information see [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request-with-a-merge-queue). +Runs your workflow when a pull request is added to a merge queue, which adds the pull request to a merge group. For more information see [AUTOTITLE](/pull-requests/how-tos/merge-and-close-pull-requests/merging-a-pull-request-with-a-merge-queue). For example, you can run a workflow when the `checks_requested` activity has occurred. @@ -461,7 +467,7 @@ on: Runs your workflow when activity on a pull request in the workflow's repository occurs. For example, if no activity types are specified, the workflow runs when a pull request is opened or reopened or when the head branch of the pull request is updated. For activity related to pull request reviews, pull request review comments, or pull request comments, use the [`pull_request_review`](#pull_request_review), [`pull_request_review_comment`](#pull_request_review_comment), or [`issue_comment`](#issue_comment) events instead. For information about the pull request APIs, see [AUTOTITLE](/graphql/reference/pulls#object-pullrequest) in the GraphQL API documentation or [AUTOTITLE](/rest/pulls). -Note that `GITHUB_SHA` for this event is the last merge commit of the pull request merge branch. If you want to get the commit ID for the last commit to the head branch of the pull request, use `github.event.pull_request.head.sha` instead. For more information about merge branches, see [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests#pull-request-refs-and-merge-branches). +Note that `GITHUB_SHA` for this event is the last merge commit of the pull request merge branch. If you want to get the commit ID for the last commit to the head branch of the pull request, use `github.event.pull_request.head.sha` instead. For more information about merge branches, see [AUTOTITLE](/pull-requests/reference/pull-requests#pull-request-refs-and-merge-branches). ### How the merge branch affects your workflow @@ -1272,3 +1278,5 @@ jobs: body: 'Thank you for the PR!' }); ``` + + diff --git a/content/actions/reference/workflows-and-actions/reusing-workflow-configurations.md b/content/actions/reference/workflows-and-actions/reusing-workflow-configurations.md index 915a229e4188..e86273424c6e 100644 --- a/content/actions/reference/workflows-and-actions/reusing-workflow-configurations.md +++ b/content/actions/reference/workflows-and-actions/reusing-workflow-configurations.md @@ -16,8 +16,13 @@ contentType: reference ## Reusable workflows -Reference information for reusable workflows. +This article provides reference information for reusable workflows and workflow templates, including access rules, limitations, supported keywords, and runner behavior. +{% ifversion copilot %} + +You can centralize deterministic, repeatable logic in reusable workflows, and use {% data variables.copilot.agentic_workflows_short %} for tasks that require contextual judgment about your repository's content such as analysis, summaries, and recommendations. For more information, see [AUTOTITLE](/copilot/how-tos/github-agentic-workflows/creating-github-agentic-workflows). + +{% endif %} ### Access to reusable workflows A reusable workflow can be used by another workflow if any of the following is true: @@ -244,3 +249,4 @@ jobs: ``` {% endif %} + diff --git a/content/actions/reference/workflows-and-actions/workflow-syntax.md b/content/actions/reference/workflows-and-actions/workflow-syntax.md index 1d4a98add51b..7a97859281d0 100644 --- a/content/actions/reference/workflows-and-actions/workflow-syntax.md +++ b/content/actions/reference/workflows-and-actions/workflow-syntax.md @@ -28,6 +28,12 @@ Workflow files use YAML syntax, and must have either a `.yml` or `.yaml` file ex You must store workflow files in the `.github/workflows` directory of your repository. +{% ifversion copilot %} + +> [!TIP] +> Unlike traditional {% data variables.product.prodname_actions %} workflows that require you to script every decision as YAML job steps, {% data variables.copilot.github_agentic_workflows %} use YAML frontmatter for triggers and configuration, but let you describe what you want in natural-language Markdown—so you don't need to anticipate and encode every scenario in advance. For more information, see [AUTOTITLE](/copilot/how-tos/github-agentic-workflows/creating-github-agentic-workflows). + +{% endif %} ## `name` {% data reusables.actions.workflows.workflow-syntax-name %} @@ -1566,3 +1572,5 @@ Path patterns must match the whole path, and start from the repository's root. | `'**/migrate-*.sql'` | A file with the prefix `migrate-` and suffix `.sql` anywhere in the repository. | `migrate-10909.sql`

`db/migrate-v1.0.sql`

`db/sept/migrate-v1.sql` | | `'*.md'`

`'!README.md'` | Using an exclamation mark (`!`) in front of a pattern negates it. When a file matches a pattern and also matches a negative pattern defined later in the file, the file will not be included. | `hello.md`

_Does not match_

`README.md`

`docs/hello.md` | | `'*.md'`

`'!README.md'`

`README*` | Patterns are checked sequentially. A pattern that negates a previous pattern will re-include file paths. | `hello.md`

`README.md`

`README.doc` | + + diff --git a/content/code-security/tutorials/secure-your-dependencies/automate-dependabot-with-actions.md b/content/code-security/tutorials/secure-your-dependencies/automate-dependabot-with-actions.md index 8fc2ad060ae7..c73f0ab07be4 100644 --- a/content/code-security/tutorials/secure-your-dependencies/automate-dependabot-with-actions.md +++ b/content/code-security/tutorials/secure-your-dependencies/automate-dependabot-with-actions.md @@ -39,6 +39,13 @@ You can use {% data variables.product.prodname_actions %} to perform automated t {% data reusables.dependabot.working-with-actions-considerations %} For more information, see [AUTOTITLE](/code-security/reference/supply-chain-security/troubleshoot-dependabot/dependabot-on-actions). +{% ifversion copilot %} + +> [!NOTE] +> You can also use {% data variables.copilot.agentic_workflows_short %} for dependency analysis, update summaries, and remediation recommendations, while keeping security enforcement and merge gating in deterministic {% data variables.product.prodname_actions %} workflows. For more information, see [AUTOTITLE](/copilot/how-tos/github-agentic-workflows/creating-github-agentic-workflows). + +{% endif %} + Here are several common scenarios for pull requests that can be automated using {% data variables.product.prodname_actions %}. ## Fetching metadata about a pull request @@ -147,7 +154,7 @@ jobs: If you want to allow maintainers to mark certain pull requests for automerge, you can use {% data variables.product.prodname_dotcom %}'s automerge functionality. This enables the pull request to be merged when any tests and approvals required by the branch protection rules are successfully met. -For more information, see [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request) and [AUTOTITLE](/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/managing-a-branch-protection-rule). +For more information, see [AUTOTITLE](/pull-requests/how-tos/merge-and-close-pull-requests/automatically-merging-a-pull-request) and [AUTOTITLE](/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/managing-a-branch-protection-rule). You can instead use {% data variables.product.prodname_actions %} and the {% data variables.product.prodname_cli %}. Here is an example that automerges all patch updates to `my-dependency`: @@ -209,3 +216,4 @@ If your workflow run fails, check the following: For information on writing and debugging {% data variables.product.prodname_actions %}, see [AUTOTITLE](/actions/how-tos/write-workflows). For more tips to help resolve issues with workflows, see [AUTOTITLE](/code-security/reference/supply-chain-security/troubleshoot-dependabot/dependabot-on-actions). + diff --git a/content/issues/planning-and-tracking-with-projects/automating-your-project/automating-projects-using-actions.md b/content/issues/planning-and-tracking-with-projects/automating-your-project/automating-projects-using-actions.md index 4d2d923a4818..c9da0d99ee9d 100644 --- a/content/issues/planning-and-tracking-with-projects/automating-your-project/automating-projects-using-actions.md +++ b/content/issues/planning-and-tracking-with-projects/automating-your-project/automating-projects-using-actions.md @@ -30,9 +30,14 @@ For more information about other changes you can make to your project through th You may also want to use the **actions/add-to-project** workflow, which is maintained by {% data variables.product.company_short %} and will add the current issue or pull request to the project specified. For more information, see the [actions/add-to-project](https://github.com/actions/add-to-project) repository and README. +{% ifversion copilot %} + +For project management tasks that require understanding repository context—such as triaging new issues, summarizing backlogs, classifying issues by type or priority, and recommending field values—{% data variables.copilot.agentic_workflows_short %} are a better fit than traditional {% data variables.product.prodname_actions %} workflows. Unlike fixed workflow steps, {% data variables.copilot.agentic_workflows_short %} let you describe what you want in natural language, and an AI coding agent handles the reasoning and decision-making. For more information, see [AUTOTITLE](/copilot/how-tos/github-agentic-workflows/creating-github-agentic-workflows). + +{% endif %} + > [!NOTE] > `GITHUB_TOKEN` is scoped to the repository level and cannot access {% data variables.projects.projects_v2 %}. To access {% data variables.projects.projects_v2 %} you can either create a {% data variables.product.prodname_github_app %} (recommended for organization projects) or a {% data variables.product.pat_generic %} (recommended for user projects). Workflow examples for both approaches are shown below. - ## Example workflow authenticating with a {% data variables.product.prodname_github_app %} For more information about authenticating in a {% data variables.product.prodname_actions %} workflow with a {% data variables.product.prodname_github_app %}, see [AUTOTITLE](/apps/creating-github-apps/authenticating-with-a-github-app/making-authenticated-api-requests-with-a-github-app-in-a-github-actions-workflow). @@ -318,3 +323,5 @@ jobs: }' -f project=$PROJECT_ID -f item=$ITEM_ID -f status_field=$STATUS_FIELD_ID -f status_value={% raw %}${{ env.TODO_OPTION_ID }}{% endraw %} -f date_field=$DATE_FIELD_ID -f date_value=$DATE --silent ``` + + diff --git a/data/reusables/actions/workflows/triggering-a-workflow-paths5.md b/data/reusables/actions/workflows/triggering-a-workflow-paths5.md index 0e9e81697645..12cc9254cee2 100644 --- a/data/reusables/actions/workflows/triggering-a-workflow-paths5.md +++ b/data/reusables/actions/workflows/triggering-a-workflow-paths5.md @@ -13,4 +13,4 @@ In some situations, {% data variables.product.prodname_actions %} applies limits If you observe these behaviors, you might need to make your filters more specific, or change how you work with pushes and pull requests to generate simpler diffs. -For more information, see [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-comparing-branches-in-pull-requests). +For more information, see [AUTOTITLE](/pull-requests/reference/branches). From b317f2afd6f6bbf1ef812ba7d2dbba540c79e5f6 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 5 Aug 2026 08:02:08 +0000 Subject: [PATCH 02/12] docs(copilot-students): add post-verification troubleshooting note for Copilot activation (#61685) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: bot-digital-customer-success <121182491+bot-digital-customer-success@users.noreply.github.com> Co-authored-by: pickhub Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Co-authored-by: Ben Ahmady <32935794+subatoi@users.noreply.github.com> --- .../enable-copilot/set-up-for-students.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/content/copilot/how-tos/copilot-on-github/set-up-copilot/enable-copilot/set-up-for-students.md b/content/copilot/how-tos/copilot-on-github/set-up-copilot/enable-copilot/set-up-for-students.md index c00e0de29550..3713a7e17c93 100644 --- a/content/copilot/how-tos/copilot-on-github/set-up-copilot/enable-copilot/set-up-for-students.md +++ b/content/copilot/how-tos/copilot-on-github/set-up-copilot/enable-copilot/set-up-for-students.md @@ -27,3 +27,16 @@ To become a verified student, see [AUTOTITLE](/free-pro-team@latest/education/ab If you are not yet a verified student, click **Start an application** and complete the verification process. 1. Under "Free {% data variables.product.github %} developer resources for students and teachers", click **Learn more**. 1. Follow the prompts to activate {% data variables.copilot.copilot_student_short %}, configuring the {% data variables.product.prodname_copilot_short %} use policies to meet your needs. + +## Troubleshooting + +### Account shows {% data variables.copilot.copilot_free_short %}, a trial, or a paid checkout page after your {% data variables.product.prodname_education %} verification is approved + +Approval and {% data variables.product.prodname_copilot_short %} activation are separate steps. The student benefit can take several days to finish applying after verification. + +While you wait, you can try activating your included plan using one of the following steps: + +* Navigate to your [{% data variables.product.prodname_copilot_short %} settings](https://github.com/settings/copilot) and follow the prompts. +* Go directly to https://github.com/github-copilot/free_signup. + +If only paid options appear, do not complete a purchase. Wait a few days and try again. If the problem continues after several days, contact {% data variables.contact.contact_support_page %}. From 95c551c389ada53f5067759a7f1296f92d969deb Mon Sep 17 00:00:00 2001 From: Isaac Brown <101839405+isaacmbrown@users.noreply.github.com> Date: Wed, 5 Aug 2026 08:37:50 +0000 Subject: [PATCH 03/12] =?UTF-8?q?Consolidate=20=E2=80=9CAdding=20users=20t?= =?UTF-8?q?o=20your=20enterprise=E2=80=9D=20(#62610)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../add-users.md} | 25 +++++++++++------- .../index.md | 2 +- .../invite-users-directly.md | 26 ------------------- .../index.md | 1 - content/enterprise-onboarding/index.md | 2 +- 5 files changed, 18 insertions(+), 38 deletions(-) rename content/{enterprise-onboarding/getting-started-with-your-enterprise/adding-users-to-your-enterprise.md => admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/add-users.md} (71%) delete mode 100644 content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/invite-users-directly.md diff --git a/content/enterprise-onboarding/getting-started-with-your-enterprise/adding-users-to-your-enterprise.md b/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/add-users.md similarity index 71% rename from content/enterprise-onboarding/getting-started-with-your-enterprise/adding-users-to-your-enterprise.md rename to content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/add-users.md index ff975cccfe8e..b8543063daa4 100644 --- a/content/enterprise-onboarding/getting-started-with-your-enterprise/adding-users-to-your-enterprise.md +++ b/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/add-users.md @@ -1,14 +1,20 @@ --- title: Adding users to your enterprise shortTitle: Add users -intro: 'Add users to your enterprise and control access to your organization''s resources.' +intro: You can add people directly to your enterprise. +permissions: Enterprise owners versions: ghec: '*' +contentType: other +category: + - Manage accounts and repositories +docsTeamMetrics: + - enterprise-onboarding redirect_from: + - /admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/invite-users-directly - /enterprise-onboarding/getting-started-with-your-enterprise/securing-enterprise-resources-with-single-sign-on - /enterprise-onboarding/getting-started-with-your-enterprise/securing-your-enterprise-with-managed-users -docsTeamMetrics: - - enterprise-onboarding + - /enterprise-onboarding/getting-started-with-your-enterprise/adding-users-to-your-enterprise --- The method of adding users to your enterprise and controlling authentication varies depending on the enterprise type that you chose. @@ -17,9 +23,14 @@ The method of adding users to your enterprise and controlling authentication var If you chose an enterprise with personal accounts, you will invite users to your enterprise with their existing {% data variables.product.github %} account. -{% data reusables.enterprise-onboarding.inviting-users-to-your-enterprise %} +{% data reusables.enterprise-accounts.access-enterprise %} +{% data reusables.enterprise-accounts.people-tab %} +1. On the "Members" page, click **Invite member**. +1. Search for the users you want to invite, then click **Invite**. -Later in this onboarding journey, you will add users to teams to grant access to organizations and delegate administrative roles. +After you invite someone to join the enterprise account, they must accept the emailed invitation before they can access the enterprise account. Pending invitations will expire after 7 days. + +Users will join the enterprise as unaffiliated users. You can then add users to organizations or enterprise teams and assign {% data variables.product.prodname_copilot_short %} licenses to them. For more information about unaffiliated users, see [AUTOTITLE](/admin/managing-accounts-and-repositories/managing-roles-in-your-enterprise/abilities-of-roles#unaffiliated-users). ### Enabling single sign-on for personal accounts @@ -48,7 +59,3 @@ To use {% data variables.product.prodname_emus %}, you will: * Provision users to your enterprise To get started, see [AUTOTITLE](/enterprise-cloud@latest/admin/managing-iam/understanding-iam-for-enterprises/getting-started-with-enterprise-managed-users). - -## Next steps - -Learn about how billing will work when your trial ends. See [AUTOTITLE](/billing/concepts/enterprise-billing/billing-for-enterprises). diff --git a/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/index.md b/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/index.md index 71915a2e87fd..f1dbec910cd1 100644 --- a/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/index.md +++ b/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/index.md @@ -17,7 +17,7 @@ versions: children: - /best-practices-for-user-security - /create-enterprise-teams - - /invite-users-directly + - /add-users - /inviting-people-to-manage-your-enterprise - /managing-invitations-to-organizations-within-your-enterprise - /about-reserved-usernames-for-github-enterprise-server diff --git a/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/invite-users-directly.md b/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/invite-users-directly.md deleted file mode 100644 index 1e2108da6e47..000000000000 --- a/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/invite-users-directly.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Inviting users to your enterprise directly -shortTitle: Invite users directly -intro: You can invite people directly to your enterprise as unaffiliated users. -permissions: Enterprise owners -versions: - ghec: '*' -product: Enterprises that use **personal accounts** on {% data variables.product.prodname_dotcom_the_website %}. -contentType: how-tos -category: - - Manage accounts and repositories ---- - -You can invite people directly to your enterprise as **unaffiliated users**. You can then add these users to organizations or enterprise teams and assign {% data variables.product.prodname_copilot_short %} licenses to them. For more information about unaffiliated users, see [AUTOTITLE](/admin/managing-accounts-and-repositories/managing-roles-in-your-enterprise/abilities-of-roles#unaffiliated-users). - -## Inviting users - ->[!NOTE] These steps apply to enterprises that use personal accounts. If you use {% data variables.product.prodname_emus %}, you must add users to your enterprise from your identity provider using SCIM. - -{% data reusables.enterprise-onboarding.inviting-users-to-your-enterprise %} - -## Next steps - -* To add users to organizations, see [AUTOTITLE](/organizations/managing-membership-in-your-organization/inviting-users-to-join-your-organization). -* To add users to an enterprise team, see [AUTOTITLE](/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/create-enterprise-teams). -* To assign {% data variables.product.prodname_copilot_short %} licenses, see [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-access/grant-access). diff --git a/content/enterprise-onboarding/getting-started-with-your-enterprise/index.md b/content/enterprise-onboarding/getting-started-with-your-enterprise/index.md index 36e2282f296a..79837c1a6012 100644 --- a/content/enterprise-onboarding/getting-started-with-your-enterprise/index.md +++ b/content/enterprise-onboarding/getting-started-with-your-enterprise/index.md @@ -6,7 +6,6 @@ versions: shortTitle: Get started children: - /setting-up-a-trial-of-github-enterprise - - /adding-users-to-your-enterprise - /about-migrating-to-github-enterprise-cloud docsTeamMetrics: - enterprise-onboarding diff --git a/content/enterprise-onboarding/index.md b/content/enterprise-onboarding/index.md index 87de13e22370..bbd361bbad1b 100644 --- a/content/enterprise-onboarding/index.md +++ b/content/enterprise-onboarding/index.md @@ -9,7 +9,7 @@ journeyTracks: guides: - href: '/admin/concepts/enterprise-fundamentals/choose-an-enterprise-type' - href: '/enterprise-onboarding/getting-started-with-your-enterprise/setting-up-a-trial-of-github-enterprise' - - href: '/enterprise-onboarding/getting-started-with-your-enterprise/adding-users-to-your-enterprise' + - href: '/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/add-users' - href: '/billing/concepts/enterprise-billing/billing-for-enterprises' - href: '/enterprise-onboarding/getting-started-with-your-enterprise/about-migrating-to-github-enterprise-cloud' - id: 'setting_up_organizations_and_teams' From 78d8cfd5d8ec0724aa4a9109bc10bb1c03638988 Mon Sep 17 00:00:00 2001 From: Sophie <29382425+sophietheking@users.noreply.github.com> Date: Wed, 5 Aug 2026 09:02:21 +0000 Subject: [PATCH 04/12] Rewrite "Roll out stacked pull requests to your organization" tutorial to highlight value for Drivers (#62592) Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Collin McNeese Co-authored-by: Sameen Karim Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> --- .../tutorials/roll-out-stacked-prs.md | 65 +++++++++---------- 1 file changed, 31 insertions(+), 34 deletions(-) diff --git a/content/pull-requests/tutorials/roll-out-stacked-prs.md b/content/pull-requests/tutorials/roll-out-stacked-prs.md index 0896e8aba727..3050a4681c91 100644 --- a/content/pull-requests/tutorials/roll-out-stacked-prs.md +++ b/content/pull-requests/tutorials/roll-out-stacked-prs.md @@ -1,7 +1,7 @@ --- title: Roll out stacked pull requests to your organization shortTitle: Roll out stacked PRs -intro: 'Plan and roll out stacked pull requests to your organization, so your teams can ship large changes as small, reviewable layers without compromising your existing rules and checks.' +intro: 'Stacked pull requests help your organization maintain review quality as teams deliver large changes in small, reviewable layers, while keeping required reviews and status checks in place.' versions: feature: pr-stacks contentType: tutorials @@ -13,64 +13,61 @@ category: > [!NOTE] > Stacked pull requests are in {% data variables.release-phases.public_preview %} and subject to change. -Stacked pull requests let developers break large changes into a chain of small, focused pull requests that build on each other, making each layer easier to review, merge, and ship. Stacked pull requests give developers the flexibility to finish one piece of work and move straight to the next without waiting for reviews to land. This matters most when work naturally depends on what came before it, which is common when a team is working on a big release and every change builds on the last. +Stacked pull requests let developers break large changes into a chain of small, focused pull requests that build on each other. This approach can help your organization maintain review quality as developers produce more code, including with {% data variables.product.prodname_copilot_short %} and other coding agents. -This tutorial walks you through preparing your organization for stacked pull requests: reviewing rollout considerations, understanding how your branch protection rules and CI work with stacks, and getting your teams started. For a fundamental understanding of stacked pull requests, see [AUTOTITLE](/pull-requests/get-started/about-stacked-prs). +Stacked pull requests require **no setup or enablement**. If your team already uses pull requests, they can create a stack today. The steps below help you prepare your existing controls and support a smooth rollout, not turn a feature on. -## Prerequisites +This tutorial helps you decide whether stacked pull requests fit your organization, make sure the foundations are in place, pilot the workflow, support adoption, and update programmatic tooling. For a fundamental understanding of stacked pull requests, see [AUTOTITLE](/pull-requests/get-started/about-stacked-prs). -If your team is already using pull requests, you're set up to use stacked pull requests. Everything else in this tutorial is optional, but assumes your organization has: +## 1. Decide if stacked pull requests are the right fit -* {% data variables.product.prodname_cli %}, with the `gh-stack` extension installed. The CLI extension is the most comprehensive way to create and manage stacks. -* Branch protection rules configured for your default branch. -* {% data variables.product.prodname_actions %} workflows that run on pull requests targeting your default branch. +Use this quick self-check before investing in a rollout: -{% data variables.product.prodname_copilot_short %} isn't required to use stacked pull requests, but is encouraged for teams that want to stack AI-generated changes. Stacked pull requests also work with other AI coding agents, such as Claude Code and Codex, using the provided agent skill. See [AUTOTITLE](/copilot/tutorials/stack-ai-generated-code-in-pull-requests). +* Do your teams produce a high volume of code, either themselves or with {% data variables.product.prodname_copilot_short %} or other coding agents? +* Do your teams work on large features, especially inside monorepos, that are difficult to split into independent pull requests? -## 1. Review rollout considerations +If either describes your teams, stacked pull requests can help them submit dependent changes in smaller units without waiting for each pull request to merge before starting the next one, as long as their work fits one constraint: every pull request in a stack must be in the same repository, following a single, linear chain of branches. Stacks can't include forks or branching structures, so teams that rely heavily on forks for contributions should keep those contributions outside stacks for now. -Before you introduce stacked pull requests to your teams, review the following considerations so everyone knows what to expect. +## 2. Make sure the foundations are in place -### Stacks must be linear, and can't include forks +Each pull request in a stack is evaluated against the **base of the stack** (typically `main`), rather than the branch it directly targets. Your existing branch protection rules or rulesets and CI workflows apply automatically: -Every pull request in a stack must be part of the same repository and build on a single, linear chain of branches. Stacks with branching structures, or pull requests from forks, aren't supported. If your teams rely on forks for contributions, plan to keep those contributions outside of stacks for now. +* Required reviews, required status checks, and CODEOWNERS are all enforced against the stack's base branch for every pull request in the stack. +* A {% data variables.product.prodname_actions %} workflow that triggers on `pull_request` events targeting the default branch of a repository runs for **every** pull request in the stack, so your existing CI configuration doesn't need to change. +* Stack metadata is available in workflow expressions via `github.event.pull_request.stack`, if you want to customize workflow behavior specifically for stacked pull requests. Since a workflow runs once per pull request in a stack, teams can use this metadata to limit expensive jobs and reduce CI usage. For details, see [AUTOTITLE](/pull-requests/how-tos/merge-and-close-pull-requests/optimizing-ci-for-stacked-pull-requests). -### Reordering a stack requires {% data variables.product.prodname_cli %} +One optional addition worth considering: if developers need to reorder pull requests after creating a stack without dissolving it, adopt the `gh stack` extension for {% data variables.product.prodname_cli %}. In-place reordering requires `gh stack modify`; on the {% data variables.product.github %} website, developers must unstack the pull requests and recreate the stack in the desired order. -If your team needs to reorder the pull requests in a stack, they will need to use `gh stack modify` in the `gh stack` {% data variables.product.prodname_cli %} extension. There's no way to reorder a stack from the {% data variables.product.github %} website. Teams who don't use the CLI locally should plan their stack order carefully upfront, or install the extension for this task. +A stack also closes automatically once every pull request in it has merged. If a team adds new branches on top of a merged stack and runs `gh stack submit`, the CLI starts a new stack with the same base branch. It doesn't extend the original. Teams who want to keep working across a set of changes should plan to keep the stack open until all the work is complete. -### A completed stack can't be extended +For the full list of rules and requirements, see [AUTOTITLE](/pull-requests/reference/stacked-pull-requests). -Once every pull request in a stack has merged, that stack is closed. If a team adds new branches on top and runs `gh stack submit`, the CLI starts a new stack with the same base branch. Teams who want to continue working on a stack should plan to keep the stack open until all work is complete. +## 3. Pilot with a small group -## 2. Understand how branch protection rules and CI work with stacks +Choose a small group of developers who produce a high volume of code, either themselves or through {% data variables.product.prodname_copilot_short %} or other coding agents. Ask the group to use a real, representative feature for the pilot instead of a disposable example. -Stacked pull requests are designed to enforce your existing rules the same way as any other pull request, but it's worth understanding how, since every pull request in a stack is evaluated a bit differently than you might expect. +To create their first stack, direct people to [AUTOTITLE](/pull-requests/get-started/stacked-prs-quickstart). After the pilot, gather feedback from developers and reviewers on: -Every pull request in a stack, not just the bottom one, is evaluated against the **base of the stack** (typically `main`), rather than against the branch it directly targets. That means: +* How stack planning fit into their existing workflow, and whether developers need in-place reordering, which requires the `gh stack` extension +* Whether review flow felt different now that every pull request in the stack carries its own required reviews and status checks +* Any support or documentation gaps they ran into -* Required reviews, required status checks, and CODEOWNERS are all enforced against the stack's base branch for every pull request in the stack. -* A {% data variables.product.prodname_actions %} workflow that triggers on `pull_request` events targeting `main` runs for **every** pull request in the stack, so your existing CI configuration doesn't need to change. -* Stack metadata is available in workflow expressions via `github.event.pull_request.stack`, if you want to customize workflow behavior specifically for stacked pull requests. Since a workflow runs once per pull request in a stack, teams can use this metadata to skip expensive jobs on redundant runs and reduce CI usage. For details, see [AUTOTITLE](/pull-requests/how-tos/merge-and-close-pull-requests/optimizing-ci-for-stacked-pull-requests). +## 4. Roll out and support adoption -Optionally, you can see this in action by opening a small test stack against a repository with your standard rulesets and required checks in place, and confirming that: +After the pilot, share day-to-day guidance on creating, reviewing, managing, and merging stacks with teams: [AUTOTITLE](/pull-requests/how-tos/stacked-pull-requests). -1. Reviews and status checks are required on every pull request in the stack, not just the bottom one. -1. Your CI workflows run on every pull request in the stack. -1. Merging is blocked until the pull request in the stack you want to merge, and everything below it, meets your requirements. - -For the full list of rules and requirements, see [AUTOTITLE](/pull-requests/reference/stacked-pull-requests). +As noted in step 2, recommend the `gh stack` {% data variables.product.prodname_cli %} extension when developers need to reorder a stack without dissolving it. Teams that don't use local CLI tools can unstack and recreate the stack in the desired order on the {% data variables.product.github %} website. -## 3. Get your teams started +Teams producing a high volume of AI-generated code, one of the fit signals from step 1, can find guidance on stacking changes from coding agents in [AUTOTITLE](/copilot/tutorials/stack-ai-generated-code-in-pull-requests). -Once you've reviewed the rollout considerations and understand how your rules and CI work with stacks, point your teams to [AUTOTITLE](/pull-requests/how-tos/stacked-pull-requests), which brings together everything they need to start creating, reviewing, and merging stacked pull requests. +## 5. Update your programmatic tooling -## 4. Update your programmatic tooling +To sustain adoption, review any in-house tools, bots, or dashboards that create, merge, or track pull requests programmatically, and update them to account for stacks. -As your organization adopts stacked pull requests, review any in-house tools, bots, or dashboards that create, merge, or track pull requests programmatically, and update them to account for stacks. +If your organization provides an internal CLI or other developer tooling, you can use the Stacks API to integrate stack creation and management into those existing tools instead of requiring developers to adopt `gh stack`. > [!IMPORTANT] -> Merging a stacked pull request requires the Stacks API. The legacy pull request merge endpoints can't merge a stack. If your organization merges pull requests programmatically, for example, through in-house tooling or ChatOps bots, update that tooling to call the Stacks API before rolling out stacked pull requests. +> Merging a stacked pull request programmatically requires the asynchronous merge API, which supports both stacked and standalone pull requests. The legacy pull request merge endpoint can't merge a stack. If your organization merges pull requests programmatically, update that tooling to use the asynchronous merge API before rolling out stacked pull requests. See [AUTOTITLE](/rest/pulls/pulls?apiVersion=2026-03-10#merge-a-pull-request-asynchronously). You may also want to track stack activity programmatically, for example, across dashboards, bots, or internal tooling. From 057c01948dc0b635a69688b76381a41e88147b87 Mon Sep 17 00:00:00 2001 From: Anne-Marie <102995847+am-stead@users.noreply.github.com> Date: Wed, 5 Aug 2026 09:05:04 +0000 Subject: [PATCH 05/12] Content linting issues requiring attention #23721 (#62609) Co-authored-by: Sophie <29382425+sophietheking@users.noreply.github.com> --- .../giving-org-access-private-registries.md | 4 +--- content/copilot/get-started/enterprise-ai-governance.md | 2 +- data/reusables/code-quality/code-quality-preview-note.md | 5 ----- 3 files changed, 2 insertions(+), 9 deletions(-) delete mode 100644 data/reusables/code-quality/code-quality-preview-note.md diff --git a/content/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries.md b/content/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries.md index 53a28a0d85d0..01cfb5fb95f1 100644 --- a/content/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries.md +++ b/content/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries.md @@ -14,7 +14,7 @@ category: ## About the importance of providing access to private registries -When code in a repository has dependencies that are stored in a private registry, some security features need access to the registry to enable them to work effectively. Without access to all the dependencies of a repository, the effectiveness of {% ifversion code-quality %}{% data variables.product.prodname_code_quality_short %} ({% data variables.release-phases.public_preview %}), {% endif %}{% data variables.product.prodname_code_scanning %} default setup and {% data variables.product.prodname_dependabot %} are limited. +When code in a repository has dependencies that are stored in a private registry, some security features need access to the registry to enable them to work effectively. Without access to all the dependencies of a repository, the effectiveness of {% ifversion code-quality %}{% data variables.product.prodname_code_quality_short %}, {% endif %}{% data variables.product.prodname_code_scanning %} default setup and {% data variables.product.prodname_dependabot %} are limited. ## {% data variables.product.prodname_code_scanning_caps %} default setup access to private registries @@ -114,8 +114,6 @@ For more information about how OIDC works, see [AUTOTITLE](/actions/concepts/sec ## {% data variables.product.prodname_code_quality_short %} access to private registries -{% data reusables.code-quality.code-quality-preview-note %} - {% data variables.product.prodname_code_quality %} can use any of the organization-level private registries that are available when it is enabled for a repository. If you add new registries to the organization, then you need to disable and re-enable {% data variables.product.prodname_code_quality_short %} to ensure that the analysis detects and uses the new registries. diff --git a/content/copilot/get-started/enterprise-ai-governance.md b/content/copilot/get-started/enterprise-ai-governance.md index c7f9c7ac9a31..7c195840247b 100644 --- a/content/copilot/get-started/enterprise-ai-governance.md +++ b/content/copilot/get-started/enterprise-ai-governance.md @@ -47,6 +47,6 @@ journeyTracks: title: 'Adopting new features' description: 'Expand your capabilities by assessing and rolling out any new feature or model.' guides: - - href: '/copilot/concepts/preparing-for-new-features-and-models' + - href: '/copilot/concepts/learning-about-new-features-and-models' - href: '/copilot/tutorials/roll-out-at-scale/govern-at-scale/pilot-a-feature-or-model' --- diff --git a/data/reusables/code-quality/code-quality-preview-note.md b/data/reusables/code-quality/code-quality-preview-note.md deleted file mode 100644 index 7c1527dded85..000000000000 --- a/data/reusables/code-quality/code-quality-preview-note.md +++ /dev/null @@ -1,5 +0,0 @@ - -> [!NOTE] -> {% data variables.product.prodname_code_quality %} is currently in {% data variables.release-phases.public_preview %} and will become generally available on July 20, 2026. -> During {% data variables.release-phases.public_preview %}, {% data variables.product.prodname_code_quality_short %} will not be billed, although {% data variables.product.prodname_code_quality_short %} scans will consume {% data variables.product.prodname_actions %} minutes. From July 20, 2026, usage will incur charges. See [AUTOTITLE](/billing/concepts/product-billing/github-code-quality). - From ce2664fba39d9cfac50ff13d463e9077191faab3 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 5 Aug 2026 10:13:38 +0000 Subject: [PATCH 06/12] =?UTF-8?q?Add=20temporary=20account-restriction=20t?= =?UTF-8?q?roubleshooting=20to=20=E2=80=9CPreventing=20unauthorized=20acce?= =?UTF-8?q?ss=E2=80=9D=20(#61542)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: bot-digital-customer-success <121182491+bot-digital-customer-success@users.noreply.github.com> Co-authored-by: pickhub Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Co-authored-by: Ben Ahmady <32935794+subatoi@users.noreply.github.com> Copilot-Session: 4bdc7b33-022e-43f5-9d8b-4c1a5812dac9 Copilot-Session: 7b0e4afa-aa57-4157-aad3-b96001f1197c --- .../preventing-unauthorized-access.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/content/authentication/keeping-your-account-and-data-secure/preventing-unauthorized-access.md b/content/authentication/keeping-your-account-and-data-secure/preventing-unauthorized-access.md index 5642a855d6f5..b14bc45c6ef7 100644 --- a/content/authentication/keeping-your-account-and-data-secure/preventing-unauthorized-access.md +++ b/content/authentication/keeping-your-account-and-data-secure/preventing-unauthorized-access.md @@ -29,3 +29,20 @@ After changing your password, you should perform these actions to make sure that * Make sure that no new deploy keys were created. This could enable outside servers access to your projects. For more information, see [AUTOTITLE](/authentication/connecting-to-github-with-ssh/managing-deploy-keys#deploy-keys). * Review recent commits made to your repositories. * Review the list of collaborators for each repository. + +{% ifversion fpt or ghec %} +## Troubleshooting + +### Account is restricted after suspected compromise + +If {% data variables.product.github %} detects suspicious activity, your personal account may be temporarily restricted while you can still sign in. During this time, your profile URL, contribution graph, search visibility, or sensitive account actions may be unavailable. Alternatively, we may suspend the account for security reasons. If you’re unable to access your account at all, please contact {% data variables.contact.github_support %}. + +If you see restrictions on your account, complete the following steps to secure your account: + +1. Change your {% data variables.product.github %} password. For more information, see [AUTOTITLE](/authentication/keeping-your-account-and-data-secure/updating-your-github-access-credentials#changing-an-existing-password). +1. Review your security settings and remove unfamiliar apps, keys, and other credentials. +1. Secure the email account associated with {% data variables.product.github %} and make sure you can access it. +1. Check your inbox (and spam folder) for security emails from {% data variables.product.github %} and follow any instructions. + +If restrictions remain after you secure your account, contact {% data variables.contact.github_support %}. +{% endif %} From 9118f8cd3e0a18c7a0132d5684a175b55a858d80 Mon Sep 17 00:00:00 2001 From: Brendan Scott-Smith <117171930+bss-mc@users.noreply.github.com> Date: Wed, 5 Aug 2026 10:14:53 +0000 Subject: [PATCH 07/12] Add statement on support entitlement vs info sharing in a Support ticket (#62625) Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .../managing-support-entitlements-for-your-enterprise.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/managing-support-entitlements-for-your-enterprise.md b/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/managing-support-entitlements-for-your-enterprise.md index ab4d09d3289f..555194ea67d0 100644 --- a/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/managing-support-entitlements-for-your-enterprise.md +++ b/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/managing-support-entitlements-for-your-enterprise.md @@ -25,6 +25,8 @@ Enterprise owners and billing managers automatically have a support entitlement. > * If the user does not have a support entitlement, their ticket will still be addressed by our Enterprise Support team, but without Premium Support features such as priority selection and guaranteed Premium SLAs. > > If a user is unsure of their entitlement status, they can contact their organization's Enterprise Support administrator. +> +Support entitlements do not provide a user with rights above those granted by the role of their account in the enterprise. Additional approval from an enterprise owner will still be required where the user's enterprise role does not permit the sharing of information in a support ticket. ## Adding a support entitlement to an enterprise member From 426e768553f5a93bab0f959bbfe7cf8bad850329 Mon Sep 17 00:00:00 2001 From: Florin Coada Date: Wed, 5 Aug 2026 10:53:44 +0000 Subject: [PATCH 08/12] Remove github-codeql-tools from code scanning repository properties (#62612) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 6e917ffb-7b7c-4aa4-86a3-0f066c7a09bf --- .../concepts/code-scanning/repository-properties.md | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/content/code-security/concepts/code-scanning/repository-properties.md b/content/code-security/concepts/code-scanning/repository-properties.md index 4fb3488b2c1e..cdc069f161b9 100644 --- a/content/code-security/concepts/code-scanning/repository-properties.md +++ b/content/code-security/concepts/code-scanning/repository-properties.md @@ -35,9 +35,6 @@ The following is an overview of repository properties you can set up which affec | `github-codeql-extra-queries` | Text | | `github-codeql-disable-overlay` | True/false | | `github-codeql-file-coverage-on-prs` | True/false | -| {% ifversion codeql-config-property %} | -| `github-codeql-tools` | Text | -| {% endif %} | > [!NOTE] > The repository properties which are supported depend on the version of the [github/codeql-action](https://github.com/github/codeql-action/) that is used by your {% data variables.product.prodname_code_scanning %} analyses. For {% data variables.product.prodname_code_scanning %} advanced setup, check that your workflow is referencing the latest major version. {% data variables.product.prodname_code_scanning_caps %} default setup automatically uses the latest version.{% ifversion ghes %} If the server on which you are running {% data variables.product.prodname_ghe_server %} is not connected to the internet, you may need to use the {% data variables.product.prodname_codeql %} action sync tool. See [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-enterprise-security/configure-specific-tools/configuring-code-scanning-for-your-appliance#configuring-codeql-analysis-on-a-server-without-internet-access).{% endif %} @@ -59,14 +56,6 @@ A value specified for the `github-codeql-config-file` property will apply to bot The `github-codeql-extra-queries` property allows you to configure additional queries that should be run. This is useful to add queries to all relevant analyses in your organization without needing to modify individual workflows or switch to an advanced setup. This accepts the same values as the `queries` input of the [github/codeql-action](https://github.com/github/codeql-action/). See [AUTOTITLE](/code-security/reference/code-scanning/workflow-configuration-options). -{% ifversion codeql-config-property %} - -By default, {% data variables.product.prodname_code_scanning %} analyses use the latest released version of CodeQL. It is not generally recommended to change this, unless you are running into a specific issue that is resolved by switching to a different version. If you do need to change this, the `github-codeql-tools` property allows you to specify a different version. - -If an advanced setup workflow specifies an explicit input for the `tools` parameter of the `codeql-action/init` action, then that input will take precedence over the value configured in the repository property. This allows advanced workflows to use different configurations than those applied to default setup workflows, if desired. To enforce the value of the repository property to advanced setup workflows even if they have an explicit `tools` input, add a `!` prefix to the value of the repository property. For example, `!nightly` enforces that all workflows use the latest `nightly` release. - -{% endif %} - ### Enabling or disabling features You can disable improved incremental analysis by setting the `github-codeql-disable-overlay` property to `true`. This may be useful if improved incremental analysis is failing because of increased hardware requirements. From 1d512b66323405701f187e05b57c1325696b8101 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:40:19 +0000 Subject: [PATCH 09/12] Bump actions/stale from 10.0.0 to 11.0.0 in the actions group (#62623) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Kevin Heis --- .github/workflows/needs-sme-stale-check.yaml | 2 +- .github/workflows/no-response.yaml | 2 +- .github/workflows/stale.yml | 2 +- .github/workflows/triage-stale-check.yml | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/needs-sme-stale-check.yaml b/.github/workflows/needs-sme-stale-check.yaml index 1ea9dd57f88f..67b8f237f02a 100644 --- a/.github/workflows/needs-sme-stale-check.yaml +++ b/.github/workflows/needs-sme-stale-check.yaml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/stale@3a9db7e6a41a89f618792c92c0e97cc736e1b13f # v10.0.0 + - uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0 id: stale with: only-labels: needs SME diff --git a/.github/workflows/no-response.yaml b/.github/workflows/no-response.yaml index 040e06aef43a..2c43c14787e4 100644 --- a/.github/workflows/no-response.yaml +++ b/.github/workflows/no-response.yaml @@ -33,7 +33,7 @@ jobs: github.actor != 'github-actions' && !endsWith(github.actor, '[bot]') steps: - - uses: actions/stale@3a9db7e6a41a89f618792c92c0e97cc736e1b13f # v10.0.0 + - uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0 id: stale with: repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 2c7bdd552866..d008aa8e812a 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -21,7 +21,7 @@ jobs: if: github.repository == 'github/docs-internal' runs-on: ubuntu-latest steps: - - uses: actions/stale@3a9db7e6a41a89f618792c92c0e97cc736e1b13f # v10.0.0 + - uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0 id: stale with: repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/triage-stale-check.yml b/.github/workflows/triage-stale-check.yml index 139080ccf61f..7a081a9fc34e 100644 --- a/.github/workflows/triage-stale-check.yml +++ b/.github/workflows/triage-stale-check.yml @@ -21,7 +21,7 @@ jobs: pull-requests: write steps: - - uses: actions/stale@3a9db7e6a41a89f618792c92c0e97cc736e1b13f # v10.0.0 + - uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0 with: repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-stale: 30 @@ -60,7 +60,7 @@ jobs: issues: write pull-requests: write steps: - - uses: actions/stale@3a9db7e6a41a89f618792c92c0e97cc736e1b13f # v10.0.0 + - uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0 id: stale with: repo-token: ${{ secrets.GITHUB_TOKEN }} From b874ffa6a3207e04068996cc718703a6fb58b593 Mon Sep 17 00:00:00 2001 From: Greg Padak Date: Wed, 5 Aug 2026 16:07:56 +0000 Subject: [PATCH 10/12] CCA now supports permissions.model (#62632) Co-authored-by: Isaac Brown <101839405+isaacmbrown@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .../enterprise-administrators/enterprise-managed-settings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/copilot/reference/enterprise-administrators/enterprise-managed-settings.md b/content/copilot/reference/enterprise-administrators/enterprise-managed-settings.md index d5b6c816cdcd..792d2dc9f08f 100644 --- a/content/copilot/reference/enterprise-administrators/enterprise-managed-settings.md +++ b/content/copilot/reference/enterprise-administrators/enterprise-managed-settings.md @@ -30,7 +30,7 @@ When multiple settings sources are present, settings earlier in this list take p | Key | Purpose | {% data variables.copilot.copilot_cli_short %} | {% data variables.product.prodname_vscode_shortname %} | {% data variables.copilot.github_copilot_app %} | {% data variables.copilot.copilot_cloud_agent %} | | --- | --- | --- | --- | --- | --- | | `permissions.disableBypassPermissionsMode` | Disables bypass or YOLO-style allow-all behavior | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | -| `permissions.model` | Sets auto model selection as the default for new conversations | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | +| `permissions.model` | Sets auto model selection as the default for new conversations | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | | `enabledPlugins` | Enables or disables specific plugins by key | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | | `extraKnownMarketplaces` | Adds plugin marketplaces that users can access | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | | `strictKnownMarketplaces` | Restricts plugin installation to explicitly listed marketplaces | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | From 45c2ecd3b83bb2122ee97c931607f02383a220d9 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Wed, 5 Aug 2026 17:01:32 +0000 Subject: [PATCH 11/12] Sync secret scanning data (#62633) Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com> --- src/secret-scanning/data/pattern-docs/fpt/public-docs.yml | 4 ++-- src/secret-scanning/data/pattern-docs/ghec/public-docs.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/secret-scanning/data/pattern-docs/fpt/public-docs.yml b/src/secret-scanning/data/pattern-docs/fpt/public-docs.yml index 0e68585e3a28..bb6a5301786b 100644 --- a/src/secret-scanning/data/pattern-docs/fpt/public-docs.yml +++ b/src/secret-scanning/data/pattern-docs/fpt/public-docs.yml @@ -4201,7 +4201,7 @@ isPrivateWithGhas: true hasPushProtection: true hasValidityCheck: true - hasExtendedMetadata: false + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' base64Supported: false isduplicate: false - provider: Salesforce @@ -4281,7 +4281,7 @@ isPrivateWithGhas: true hasPushProtection: true hasValidityCheck: true - hasExtendedMetadata: false + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' base64Supported: false isduplicate: false - provider: SendGrid diff --git a/src/secret-scanning/data/pattern-docs/ghec/public-docs.yml b/src/secret-scanning/data/pattern-docs/ghec/public-docs.yml index 0e68585e3a28..bb6a5301786b 100644 --- a/src/secret-scanning/data/pattern-docs/ghec/public-docs.yml +++ b/src/secret-scanning/data/pattern-docs/ghec/public-docs.yml @@ -4201,7 +4201,7 @@ isPrivateWithGhas: true hasPushProtection: true hasValidityCheck: true - hasExtendedMetadata: false + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' base64Supported: false isduplicate: false - provider: Salesforce @@ -4281,7 +4281,7 @@ isPrivateWithGhas: true hasPushProtection: true hasValidityCheck: true - hasExtendedMetadata: false + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' base64Supported: false isduplicate: false - provider: SendGrid From 7b813bc6345ed9bac2a3311fbb0e7d2831bbce01 Mon Sep 17 00:00:00 2001 From: Jenni C <97056108+dihydroJenoxide@users.noreply.github.com> Date: Wed, 5 Aug 2026 17:30:03 +0000 Subject: [PATCH 12/12] updating merge api and adding webhooks to programmatic reference (#62621) Co-authored-by: Vanessa --- .../get-started/about-stacked-prs.md | 2 +- .../merging-stacked-pull-requests.md | 2 +- .../how-tos/stacked-pull-requests/index.md | 2 +- content/pull-requests/index.md | 5 ++- content/pull-requests/reference/index.md | 2 +- ...tacked-pull-requests-apis-and-webhooks.md} | 33 +++++++++++++++---- .../tutorials/roll-out-stacked-prs.md | 4 +-- 7 files changed, 35 insertions(+), 15 deletions(-) rename content/pull-requests/reference/{stacked-pull-requests-rest-and-graphql-apis.md => stacked-pull-requests-apis-and-webhooks.md} (50%) diff --git a/content/pull-requests/get-started/about-stacked-prs.md b/content/pull-requests/get-started/about-stacked-prs.md index 704a9cf79c28..0404968f4c36 100644 --- a/content/pull-requests/get-started/about-stacked-prs.md +++ b/content/pull-requests/get-started/about-stacked-prs.md @@ -113,7 +113,7 @@ You can merge your entire stack, a single pull request, or a portion of the stac Stacks support merge commit, squash, and rebase merge methods, and they are merge-queue aware. The resulting commit history is the same as merging each pull request individually, starting from the bottom. > [!NOTE] -> If you merge via the API and want to use stacked pull requests, you'll need to update to use the new merge API for stacks. See [AUTOTITLE](/rest/pulls/pulls?apiVersion=2026-03-10#merge-a-pull-request-asynchronously). +> If you merge via the API and want to use stacked pull requests, you'll need to use the asynchronous merge API for stacks. See [AUTOTITLE](/rest/pulls/pulls?apiVersion=2026-03-10#merge-a-pull-request-asynchronously). ## Next steps diff --git a/content/pull-requests/how-tos/merge-and-close-pull-requests/merging-stacked-pull-requests.md b/content/pull-requests/how-tos/merge-and-close-pull-requests/merging-stacked-pull-requests.md index 85b006b9dd4c..b78c3a68d5c1 100644 --- a/content/pull-requests/how-tos/merge-and-close-pull-requests/merging-stacked-pull-requests.md +++ b/content/pull-requests/how-tos/merge-and-close-pull-requests/merging-stacked-pull-requests.md @@ -27,7 +27,7 @@ The merge box for a stacked pull request shows the status of the entire stack, n If the stack is not linear, for example, after changes were pushed to a lower branch or after the trunk moved ahead, a **Rebase stack** button will appear in the merge box and you'll need to rebase the stack before you can merge. > [!NOTE] -> * If you merge via the API and want to use stacked pull requests, you'll need to update your code to use the new merge API for stacks. See [AUTOTITLE](/rest/pulls/pulls?apiVersion=2026-03-10#merge-a-pull-request-asynchronously). +> * If you merge via the API and want to use stacked pull requests, you'll need use the asynchronous merge API for stacks. See [AUTOTITLE](/rest/pulls/pulls?apiVersion=2026-03-10#merge-a-pull-request-asynchronously). > * Auto-merge is not supported for stacked pull requests. ## Merging using a merge queue diff --git a/content/pull-requests/how-tos/stacked-pull-requests/index.md b/content/pull-requests/how-tos/stacked-pull-requests/index.md index 852d55e00f80..b9b0b49e92c2 100644 --- a/content/pull-requests/how-tos/stacked-pull-requests/index.md +++ b/content/pull-requests/how-tos/stacked-pull-requests/index.md @@ -23,7 +23,7 @@ children: - /content/pull-requests/tutorials/stack-code-changes-in-pull-requests - /content/pull-requests/reference/stacked-pull-requests - /content/pull-requests/reference/stacked-prs-cli-commands - - /content/pull-requests/reference/stacked-pull-requests-rest-and-graphql-apis + - /content/pull-requests/reference/stacked-pull-requests-apis-and-webhooks - /content/rest/pulls/pulls - /content/graphql/reference/pulls - /content/webhooks/webhook-events-and-payloads diff --git a/content/pull-requests/index.md b/content/pull-requests/index.md index 352894c990a7..cb6410714502 100644 --- a/content/pull-requests/index.md +++ b/content/pull-requests/index.md @@ -9,20 +9,19 @@ redirect_from: - /categories/collaborating-on-projects-using-issues-and-pull-requests - /categories/collaborating-with-issues-and-pull-requests - /github/collaborating-with-pull-requests -intro: 'Discover how to create, review, and merge pull requests, resolve merge conflicts, and collaborate effectively on {% data variables.product.github %} projects.' +intro: 'Discover how to create, review, and merge pull requests, resolve merge conflicts, and work with forks.' introLinks: overview: /pull-requests/get-started/about-pull-requests layout: discovery-landing carousels: recommended: - - /pull-requests/reference/pull-requests + - /pull-requests/get-started/about-pull-requests - /pull-requests/reference/branches - /pull-requests/how-tos/create-pull-requests/creating-a-pull-request - /pull-requests/how-tos/review-pull-requests/reviewing-proposed-changes-in-a-pull-request - /pull-requests/how-tos/merge-and-close-pull-requests/merging-a-pull-request - /pull-requests/how-tos/merge-and-close-pull-requests/resolving-a-merge-conflict-on-github - /pull-requests/how-tos/work-with-forks/fork-a-repo - - /pull-requests/how-tos/work-with-forks/syncing-a-fork - /pull-requests/reference/commits includedCategories: - Create pull requests diff --git a/content/pull-requests/reference/index.md b/content/pull-requests/reference/index.md index e9d0b62e2c96..c3ed2efce1a4 100644 --- a/content/pull-requests/reference/index.md +++ b/content/pull-requests/reference/index.md @@ -10,7 +10,7 @@ children: - /pull-requests - /stacked-pull-requests - /stacked-prs-cli-commands - - /stacked-pull-requests-rest-and-graphql-apis + - /stacked-pull-requests-apis-and-webhooks - /branches - /forks - /commits diff --git a/content/pull-requests/reference/stacked-pull-requests-rest-and-graphql-apis.md b/content/pull-requests/reference/stacked-pull-requests-apis-and-webhooks.md similarity index 50% rename from content/pull-requests/reference/stacked-pull-requests-rest-and-graphql-apis.md rename to content/pull-requests/reference/stacked-pull-requests-apis-and-webhooks.md index 3e1d0812e2ba..18a249a5b98b 100644 --- a/content/pull-requests/reference/stacked-pull-requests-rest-and-graphql-apis.md +++ b/content/pull-requests/reference/stacked-pull-requests-apis-and-webhooks.md @@ -1,13 +1,16 @@ --- -title: Stacked pull requests in the REST and GraphQL APIs -shortTitle: Stacked PRs APIs -intro: Read and manage stacked pull requests programmatically with the {% data variables.product.github %} REST and GraphQL APIs. +title: Stacked pull requests APIs and webhooks +shortTitle: Stacked PRs APIs and webhooks +intro: Read and manage stacked pull requests programmatically with the {% data variables.product.github %} REST and GraphQL APIs, and webhooks. allowTitleToDifferFromFilename: true +redirect_from: + - /pull-requests/reference/stacked-pull-requests-rest-and-graphql-apis versions: feature: pr-stacks contentType: reference category: - Create pull requests + - Merge and close pull requests --- {% data reusables.public-preview.public-preview %} @@ -23,11 +26,21 @@ The REST API exposes stacked pull requests in two ways: * **The `stack` object on pull request resources.** When a pull request belongs to a stack, its REST resource includes a `stack` object. This lets you read the pull request's stack membership, including the stack's number and size and the pull request's position and base, directly from the pull request. * **The Stacks API.** A dedicated set of endpoints to list, read, create, extend, and dissolve stacks. This is the surface for creating and modifying stacks. -> [!NOTE] -> If you merge via the API and want to use stacked pull requests, you'll need to update your code to use the new merge API for stacks. See [AUTOTITLE](/rest/pulls/pulls?apiVersion=2026-03-10#merge-a-pull-request-asynchronously). - For endpoints, parameters, and schemas, see [AUTOTITLE](/rest/pulls/pulls). +> [!IMPORTANT] +> If you merge via the API and want to use stacked pull requests, you must use the new asynchronous merge API. + +### Merge API + +When you merge a stacked pull request via the API, you must use the asynchronous merge endpoint. + +A stack cannot be merged with the legacy synchronous merge endpoints or mutations. When you merge a stacked pull request, every pull request in the stack up to and including the one you request is merged or queued to merge into the base branch. Merging a pull request stack may involve several pull requests that may take a few minutes to merge. Because of this, the merge runs in the background when you submit a merge request and then you can poll for the result. + +Only the basic pull request state is checked when you submit an open PR. Branch protection and repository rules are evaluated later, when the merge actually runs, and a rule failure is reported as a failed result while polling. A stack merge request is atomic, meaning either the whole group of pull requests merges, or is added to the merge queue, or none of it is. + +For details, see [AUTOTITLE](/rest/pulls/pulls?apiVersion=2026-03-10#merge-a-pull-request-asynchronously). + ## GraphQL API The GraphQL API exposes a pull request's stack membership through read-only `stack` and `stackEntry` fields on the `PullRequest` type. Use these fields to query the stack a pull request belongs to and its position within it. @@ -36,6 +49,14 @@ The GraphQL API is read-only for stacks; there are no stack mutations. To create For fields, objects, and schemas, see [AUTOTITLE](/graphql/reference/pulls#object-pullrequeststack). +## Webhooks + +When a pull request belongs to a stack, {% data variables.product.github %} adds a `stack` property to the `pull_request` object in webhook event payloads. This lets apps and integrations inspect the stack's target branch, not just the direct parent branch of the pull request. + +The `stack` object is included in the `pull_request` webhook payload for pull request lifecycle events that happen while the pull request is part of a stack. + +See [AUTOTITLE](/webhooks/webhook-events-and-payloads?actionType=stacked#pull_request). + ## Further reading * [AUTOTITLE](/pull-requests/reference/stacked-prs-cli-commands) diff --git a/content/pull-requests/tutorials/roll-out-stacked-prs.md b/content/pull-requests/tutorials/roll-out-stacked-prs.md index 3050a4681c91..7e331e99aa54 100644 --- a/content/pull-requests/tutorials/roll-out-stacked-prs.md +++ b/content/pull-requests/tutorials/roll-out-stacked-prs.md @@ -67,11 +67,11 @@ To sustain adoption, review any in-house tools, bots, or dashboards that create, If your organization provides an internal CLI or other developer tooling, you can use the Stacks API to integrate stack creation and management into those existing tools instead of requiring developers to adopt `gh stack`. > [!IMPORTANT] -> Merging a stacked pull request programmatically requires the asynchronous merge API, which supports both stacked and standalone pull requests. The legacy pull request merge endpoint can't merge a stack. If your organization merges pull requests programmatically, update that tooling to use the asynchronous merge API before rolling out stacked pull requests. See [AUTOTITLE](/rest/pulls/pulls?apiVersion=2026-03-10#merge-a-pull-request-asynchronously). +> Merging a stacked pull request requires the asynchronous merge API. The legacy pull request merge endpoints can't merge a stack. If your organization merges pull requests programmatically, for example, through in-house tooling or ChatOps bots, update that tooling to call the asynchronous merge API, which supports both stacked and regular pull requests, before rolling out stacked pull requests. See [AUTOTITLE](/rest/pulls/pulls?apiVersion=2026-03-10#merge-a-pull-request-asynchronously). You may also want to track stack activity programmatically, for example, across dashboards, bots, or internal tooling. -* **REST API**: Every pull request returned by the API includes a `stack` object when it belongs to a stack, showing the stack's number, size, the pull request's position within it, and the stack's base branch. A dedicated Stacks API (`GET /repos/{owner}/{repo}/stacks`) also lists every stack in a repository, or the specific stack containing a given pull request. See [AUTOTITLE](/pull-requests/reference/stacked-pull-requests-rest-and-graphql-apis). +* **REST API**: Every pull request returned by the API includes a `stack` object when it belongs to a stack, showing the stack's number, size, the pull request's position within it, and the stack's base branch. A dedicated Stacks API (`GET /repos/{owner}/{repo}/stacks`) also lists every stack in a repository, or the specific stack containing a given pull request. See [AUTOTITLE](/pull-requests/reference/stacked-pull-requests-apis-and-webhooks). * **Webhooks**: The `pull_request` webhook payload includes the same `stack` object whenever a pull request belongs to a stack. A dedicated `stacked` action fires when a pull request is first added to a stack, so you can react the moment a stack forms. In both cases, the `stack` field is `null` for standalone pull requests, so existing integrations that don't expect stacks continue to work unchanged.