From acb8a10541e5b3a721453f6c3a46949ecc1a81de Mon Sep 17 00:00:00 2001 From: Anne-Marie <102995847+am-stead@users.noreply.github.com> Date: Wed, 4 Mar 2026 09:31:28 +0000 Subject: [PATCH 01/29] update supported plans reference and add variable --- .../copilot/available-models-per-plan.md | 6 ++--- data/tables/copilot/model-supported-plans.yml | 24 +++++++++++++++++++ data/variables/copilot.yml | 1 + .../tables/copilot/model-supported-plans.ts | 5 +++- 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/data/reusables/copilot/available-models-per-plan.md b/data/reusables/copilot/available-models-per-plan.md index fc035f94faa0..5fc46a1ae434 100644 --- a/data/reusables/copilot/available-models-per-plan.md +++ b/data/reusables/copilot/available-models-per-plan.md @@ -1,9 +1,9 @@ {% rowheaders %} -| Available models in chat | {% data variables.copilot.copilot_free_short %} | {% data variables.copilot.copilot_pro_short %} | {% data variables.copilot.copilot_pro_plus_short %} | {% data variables.copilot.copilot_business_short %} | {% data variables.copilot.copilot_enterprise_short %} | -|---------------------------------------------------------|-------------------------------------------------|-------------------------------------------------|-----------------------------------------------------|-----------------------------------------------------|-------------------------------------------------------| +| Available models in chat | {% data variables.copilot.copilot_free_short %} | {% data variables.copilot.copilot_student %} | {% data variables.copilot.copilot_pro_short %} | {% data variables.copilot.copilot_pro_plus_short %} | {% data variables.copilot.copilot_business_short %} | {% data variables.copilot.copilot_enterprise_short %} | +|---------------------------------------------------------|-------------------------------------------------|----------------------------------------------|-------------------------------------------------|-----------------------------------------------------|-----------------------------------------------------|-------------------------------------------------------| | {% for model in tables.copilot.model-supported-plans %} | -| {{ model.name }} | {% if model.free == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | {% if model.pro == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | {% if model.pro_plus == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | {% if model.business == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | {% if model.enterprise == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | +| {{ model.name }} | {% if model.free == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | {% if model.student == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | {% if model.pro == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | {% if model.pro_plus == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | {% if model.business == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | {% if model.enterprise == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | | {% endfor %} | {% endrowheaders %} diff --git a/data/tables/copilot/model-supported-plans.yml b/data/tables/copilot/model-supported-plans.yml index bdf42e864afe..3d0ccbe3338e 100644 --- a/data/tables/copilot/model-supported-plans.yml +++ b/data/tables/copilot/model-supported-plans.yml @@ -7,6 +7,7 @@ # Column keys: # - name: The model name. # - free: Availability on Copilot Free. +# - student: Availability on Copilot Student. # - pro: Availability on Copilot Pro. # - pro_plus: Availability on Copilot Pro+. # - business: Availability on Copilot Business. @@ -14,6 +15,7 @@ - name: Claude Haiku 4.5 free: true + student: true pro: true pro_plus: true business: true @@ -21,6 +23,7 @@ - name: Claude Opus 4.5 free: false + student: true pro: true pro_plus: true business: true @@ -28,6 +31,7 @@ - name: Claude Opus 4.6 free: false + student: true pro: true pro_plus: true business: true @@ -35,6 +39,7 @@ - name: Claude Opus 4.6 (fast mode) (preview) free: false + student: false pro: false pro_plus: true business: false @@ -42,6 +47,7 @@ - name: Claude Sonnet 4 free: false + student: true pro: true pro_plus: true business: true @@ -49,6 +55,7 @@ - name: Claude Sonnet 4.5 free: false + student: true pro: true pro_plus: true business: true @@ -56,6 +63,7 @@ - name: Claude Sonnet 4.6 free: false + student: true pro: true pro_plus: true business: true @@ -63,6 +71,7 @@ - name: Gemini 2.5 Pro free: false + student: true pro: true pro_plus: true business: true @@ -70,6 +79,7 @@ - name: Gemini 3 Flash free: false + student: true pro: true pro_plus: true business: true @@ -77,6 +87,7 @@ - name: Gemini 3 Pro free: false + student: true pro: true pro_plus: true business: true @@ -84,6 +95,7 @@ - name: Gemini 3.1 Pro free: false + student: true pro: true pro_plus: true business: true @@ -91,6 +103,7 @@ - name: GPT-4.1 free: true + student: true pro: true pro_plus: true business: true @@ -98,6 +111,7 @@ - name: GPT-5 mini free: true + student: true pro: true pro_plus: true business: true @@ -105,6 +119,7 @@ - name: GPT-5.1 free: false + student: true pro: true pro_plus: true business: true @@ -112,6 +127,7 @@ - name: GPT-5.1-Codex free: false + student: true pro: true pro_plus: true business: true @@ -119,6 +135,7 @@ - name: GPT-5.1-Codex-Mini free: false + student: true pro: true pro_plus: true business: true @@ -126,6 +143,7 @@ - name: GPT-5.1-Codex-Max free: false + student: true pro: true pro_plus: true business: true @@ -133,6 +151,7 @@ - name: GPT-5.2 free: false + student: true pro: true pro_plus: true business: true @@ -140,6 +159,7 @@ - name: GPT-5.2-Codex free: false + student: true pro: true pro_plus: true business: true @@ -147,6 +167,7 @@ - name: GPT-5.3-Codex free: false + student: true pro: true pro_plus: true business: true @@ -154,6 +175,7 @@ - name: Grok Code Fast 1 free: false + student: true pro: true pro_plus: true business: true @@ -161,6 +183,7 @@ - name: Raptor mini free: true + student: true pro: true pro_plus: true business: false @@ -168,6 +191,7 @@ - name: Goldeneye free: true + student: false pro: false pro_plus: false business: false diff --git a/data/variables/copilot.yml b/data/variables/copilot.yml index 52f35216bcf6..7b94cbe17174 100644 --- a/data/variables/copilot.yml +++ b/data/variables/copilot.yml @@ -14,6 +14,7 @@ copilot_enterprise: 'GitHub Copilot Enterprise' copilot_enterprise_short: 'Copilot Enterprise' copilot_free: 'GitHub Copilot Free' copilot_free_short: 'Copilot Free' +copilot_student: 'Copilot Student' ## Copilot billing # Price per additional premium request diff --git a/src/data-directory/lib/data-schemas/tables/copilot/model-supported-plans.ts b/src/data-directory/lib/data-schemas/tables/copilot/model-supported-plans.ts index c9a737a06618..1302209fd94d 100644 --- a/src/data-directory/lib/data-schemas/tables/copilot/model-supported-plans.ts +++ b/src/data-directory/lib/data-schemas/tables/copilot/model-supported-plans.ts @@ -10,7 +10,7 @@ const modelSupportedPlansSchema = { items: { type: 'object', additionalProperties: false, - required: ['name', 'free', 'pro', 'pro_plus', 'business', 'enterprise'], + required: ['name', 'free', 'student', 'pro', 'pro_plus', 'business', 'enterprise'], properties: { name: { type: 'string', @@ -19,6 +19,9 @@ const modelSupportedPlansSchema = { free: { type: 'boolean', }, + student: { + type: 'boolean', + }, pro: { type: 'boolean', }, From 9dd0d863822ba532b12d298ba3200a54002dfc60 Mon Sep 17 00:00:00 2001 From: Anne-Marie <102995847+am-stead@users.noreply.github.com> Date: Wed, 4 Mar 2026 09:53:52 +0000 Subject: [PATCH 02/29] update variable, update individual plans --- .../concepts/billing/individual-plans.md | 30 ++++++++++++------- .../copilot/available-models-per-plan.md | 2 +- data/variables/copilot.yml | 3 +- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/content/copilot/concepts/billing/individual-plans.md b/content/copilot/concepts/billing/individual-plans.md index 96c19ab6f5d3..c65abb2799cb 100644 --- a/content/copilot/concepts/billing/individual-plans.md +++ b/content/copilot/concepts/billing/individual-plans.md @@ -16,7 +16,7 @@ category: - Learn about Copilot --- -{% data variables.product.company_short %} offers three {% data variables.product.prodname_copilot_short %} plans for individual developers, each designed to meet different needs based on your coding habits, interest in AI models, and desired level of flexibility. +{% data variables.product.company_short %} offers three {% data variables.product.prodname_copilot_short %} plans for individual developers, as well as a dedicated student offering, each designed to meet different needs based on your coding habits, interest in AI models, and desired level of flexibility. You can choose from the following plans. @@ -31,6 +31,15 @@ For developers looking to get started with {% data variables.product.prodname_co * Intended for **personal use only**, not for users managed by an organization or enterprise * Great for developers who want to explore {% data variables.product.prodname_copilot_short %}'s capabilities before upgrading to a paid plan +## {% data variables.copilot.copilot_student %} + +Verified students can access unlimited completions and additional models at no cost. + +* Includes **unlimited completions** in IDEs +* Access to {% data variables.copilot.copilot_chat_short %} and additional models +* Includes up to **300 premium requests** per month (additional at {% data variables.copilot.additional_premium_requests %} each) +* Free for verified students. + ## {% data variables.copilot.copilot_pro %} For developers who want more flexibility, including unlimited completions and access to additional models. @@ -38,7 +47,7 @@ For developers who want more flexibility, including unlimited completions and ac * Includes **unlimited completions** in IDEs * Access to {% data variables.copilot.copilot_chat_short %} and additional models * Includes up to **300 premium requests** per month (additional at {% data variables.copilot.additional_premium_requests %} each) -* Free for verified students, teachers, and maintainers of popular open source projects +* Free for verified teachers and maintainers of popular open source projects ## {% data variables.copilot.copilot_pro_plus %} @@ -58,14 +67,14 @@ The following table highlights the key differences between individual {% data va {% rowheaders %} -| Feature | {% data variables.copilot.copilot_free %} | {% data variables.copilot.copilot_pro %} | {% data variables.copilot.copilot_pro_plus %} | -|--------|----------------------------------------------------|--------------------------------------------------|----------------------------------------------------------| -| Price | Free | {% data variables.copilot.cfi_price_per_month %} per month, or
{% data variables.copilot.cfi_price_per_year %} per year
([free](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/getting-free-access-to-copilot-pro-as-a-student-teacher-or-maintainer) for some users) | {% data variables.copilot.cpp_price_per_month %} per month, or
{% data variables.copilot.cpp_price_per_year %} per year | -| Real-time code suggestions with included models | Up to 2,000 per month | Unlimited | Unlimited | -| Premium requests | 50 per month | 300 per month | 1,500 per month | -| Purchase additional premium requests at {% data variables.copilot.additional_premium_requests %} per request | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_chat_short %} interactions[^1] | Up to 50 per month | Unlimited with included models | Unlimited with included models | -| Access to premium models | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} Full access | +| Feature | {% data variables.copilot.copilot_free %} | {% data variables.copilot.copilot_student %} | {% data variables.copilot.copilot_pro %} | {% data variables.copilot.copilot_pro_plus %} | +|--------|----------------------------------------------------|----------------------------------------------|--------------------------------------------------|----------------------------------------------------------| +| Price | Free | Free | {% data variables.copilot.cfi_price_per_month %} per month, or
{% data variables.copilot.cfi_price_per_year %} per year
([free](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/getting-free-access-to-copilot-pro-as-a-student-teacher-or-maintainer) for some users) | {% data variables.copilot.cpp_price_per_month %} per month, or
{% data variables.copilot.cpp_price_per_year %} per year | +| Real-time code suggestions with included models | Up to 2,000 per month | Unlimited | Unlimited | Unlimited | +| Premium requests | 50 per month | 300 per month | 300 per month | 1,500 per month | +| Purchase additional premium requests at {% data variables.copilot.additional_premium_requests %} per request | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_chat_short %} interactions[^1] | Up to 50 per month | Unlimited with included models | Unlimited with included models | Unlimited with included models | +| Access to premium models | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} Full access | {% endrowheaders %} @@ -78,6 +87,7 @@ For a detailed comparison of features and benefits, see [AUTOTITLE](/copilot/abo Consider the following to decide which plan is right for you: * **Just getting started?** Try {% data variables.copilot.copilot_free %} to explore basic functionality at no cost. +* **Studying?** Choose {% data variables.copilot.copilot_student_short %} to access premium features at no cost. * **Coding regularly with AI?** Upgrade to {% data variables.copilot.copilot_pro %} for more flexibility and access to premium features. * **Want the best performance and most model access?** Go with {% data variables.copilot.copilot_pro_plus %} to unlock everything {% data variables.product.prodname_copilot_short %} has to offer. diff --git a/data/reusables/copilot/available-models-per-plan.md b/data/reusables/copilot/available-models-per-plan.md index 5fc46a1ae434..471b00a342c5 100644 --- a/data/reusables/copilot/available-models-per-plan.md +++ b/data/reusables/copilot/available-models-per-plan.md @@ -1,6 +1,6 @@ {% rowheaders %} -| Available models in chat | {% data variables.copilot.copilot_free_short %} | {% data variables.copilot.copilot_student %} | {% data variables.copilot.copilot_pro_short %} | {% data variables.copilot.copilot_pro_plus_short %} | {% data variables.copilot.copilot_business_short %} | {% data variables.copilot.copilot_enterprise_short %} | +| Available models in chat | {% data variables.copilot.copilot_free_short %} | {% data variables.copilot.copilot_student_short %} | {% data variables.copilot.copilot_pro_short %} | {% data variables.copilot.copilot_pro_plus_short %} | {% data variables.copilot.copilot_business_short %} | {% data variables.copilot.copilot_enterprise_short %} | |---------------------------------------------------------|-------------------------------------------------|----------------------------------------------|-------------------------------------------------|-----------------------------------------------------|-----------------------------------------------------|-------------------------------------------------------| | {% for model in tables.copilot.model-supported-plans %} | | {{ model.name }} | {% if model.free == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | {% if model.student == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | {% if model.pro == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | {% if model.pro_plus == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | {% if model.business == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | {% if model.enterprise == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | diff --git a/data/variables/copilot.yml b/data/variables/copilot.yml index 7b94cbe17174..65e89cc6669d 100644 --- a/data/variables/copilot.yml +++ b/data/variables/copilot.yml @@ -14,7 +14,8 @@ copilot_enterprise: 'GitHub Copilot Enterprise' copilot_enterprise_short: 'Copilot Enterprise' copilot_free: 'GitHub Copilot Free' copilot_free_short: 'Copilot Free' -copilot_student: 'Copilot Student' +copilot_student: 'GitHub Copilot Student' +copilot_student_short: 'Copilot Student' ## Copilot billing # Price per additional premium request From b11a9f871de4078f6363ee5fbfd7b566bd307132 Mon Sep 17 00:00:00 2001 From: Anne-Marie <102995847+am-stead@users.noreply.github.com> Date: Wed, 4 Mar 2026 10:27:16 +0000 Subject: [PATCH 03/29] add new article for Copilot Free --- .../free-access-with-copilot-student.md | 24 +++++++++++++++++++ .../get-free-access-to-copilot-pro.md | 7 +++--- .../get-started-with-a-copilot-plan.md | 3 ++- .../how-tos/manage-your-account/index.md | 1 + 4 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 content/copilot/how-tos/manage-your-account/free-access-with-copilot-student.md diff --git a/content/copilot/how-tos/manage-your-account/free-access-with-copilot-student.md b/content/copilot/how-tos/manage-your-account/free-access-with-copilot-student.md new file mode 100644 index 000000000000..f46c20c0b534 --- /dev/null +++ b/content/copilot/how-tos/manage-your-account/free-access-with-copilot-student.md @@ -0,0 +1,24 @@ +--- +title: 'Access GitHub Copilot for free as a student' +shortTitle: Get free access with Copilot Student +intro: 'Learn how to access {% data variables.product.prodname_copilot_short %}''s premium features for free as a student.' +versions: + feature: copilot +contentType: how-tos +category: + - Configure Copilot +--- + +## About {% data variables.copilot.copilot_student %} access + +Verified students on {% data variables.product.prodname_education %} are eligible for **free access to {% data variables.product.prodname_copilot_short %}'s premium features**. See [AUTOTITLE](/copilot/concepts/billing/individual-plans#github-copilot-student). + +To learn about becoming a verified student, see [AUTOTITLE](/free-pro-team@latest/education/explore-the-benefits-of-teaching-and-learning-with-github-education/github-education-for-students/apply-to-github-education-as-a-student). + +{% data variables.product.company_short %} reevaluates your eligibility every month. + +## Accessing {% data variables.copilot.copilot_student_short %} + +{% data reusables.copilot.your-copilot %} +1. If you qualify for {% data variables.copilot.copilot_student_short %}, you will see a page titled "{% data variables.copilot.copilot_student_short %}" informing you that you are eligible. Click **Get access to {% data variables.product.prodname_copilot %}**. +1. On the page that appears, configure the {% data variables.product.prodname_copilot_short %} use policies to meet your needs, then click **Save and complete**. \ No newline at end of file diff --git a/content/copilot/how-tos/manage-your-account/get-free-access-to-copilot-pro.md b/content/copilot/how-tos/manage-your-account/get-free-access-to-copilot-pro.md index e23222f6c6ec..981a4a528dcb 100644 --- a/content/copilot/how-tos/manage-your-account/get-free-access-to-copilot-pro.md +++ b/content/copilot/how-tos/manage-your-account/get-free-access-to-copilot-pro.md @@ -1,7 +1,7 @@ --- -title: 'Getting free access to GitHub Copilot Pro as a student, teacher, or maintainer' +title: 'Getting free access to GitHub Copilot Pro as a teacher or maintainer' shortTitle: Get free access to Copilot Pro -intro: 'Learn how to use {% data variables.copilot.copilot_pro_short %} for free as a student, teacher, or open-source maintainer.' +intro: 'Learn how to use {% data variables.copilot.copilot_pro_short %} for free as a teacher or open-source maintainer.' versions: feature: copilot redirect_from: @@ -17,9 +17,8 @@ category: ## About free {% data variables.copilot.copilot_pro %} access -There are three ways to qualify for free access to {% data variables.copilot.copilot_pro_short %}: +There are two ways to qualify for free access to {% data variables.copilot.copilot_pro_short %}: -* **As a verified student on {% data variables.product.prodname_education %}.** To learn about becoming a verified student, see [AUTOTITLE](/free-pro-team@latest/education/explore-the-benefits-of-teaching-and-learning-with-github-education/github-education-for-students/apply-to-github-education-as-a-student). * **As a verified teacher on {% data variables.product.prodname_education %}.** To learn about becoming a verified teacher, see [AUTOTITLE](/free-pro-team@latest/education/explore-the-benefits-of-teaching-and-learning-with-github-education/github-education-for-teachers/apply-to-github-education-as-a-teacher). * **As a maintainer of a popular open-source repository.** To determine if you are an eligible maintainer, see [Accessing {% data variables.copilot.copilot_pro_short %} for free](#accessing-copilot-pro-for-free). diff --git a/content/copilot/how-tos/manage-your-account/get-started-with-a-copilot-plan.md b/content/copilot/how-tos/manage-your-account/get-started-with-a-copilot-plan.md index 54030846d937..55ca026de433 100644 --- a/content/copilot/how-tos/manage-your-account/get-started-with-a-copilot-plan.md +++ b/content/copilot/how-tos/manage-your-account/get-started-with-a-copilot-plan.md @@ -35,7 +35,8 @@ Most individual developers can start using {% data variables.copilot.copilot_fre * You have a {% data variables.enterprise.prodname_managed_user %}. * You are assigned a {% data variables.product.prodname_copilot_short %} seat through an organization. * You have an existing {% data variables.copilot.copilot_pro_short %} or {% data variables.copilot.copilot_pro_plus_short %} plan or {% data variables.copilot.copilot_pro_short %} trial. -* You have free access to {% data variables.copilot.copilot_pro_short %} as a student, teacher, or open-source maintainer. +* You have free access to {% data variables.copilot.copilot_student_short %}. +* You have free access to {% data variables.copilot.copilot_pro_short %} as a teacher or open-source maintainer. There are a few ways to start using {% data variables.copilot.copilot_free_short %}, depending on where you're working. diff --git a/content/copilot/how-tos/manage-your-account/index.md b/content/copilot/how-tos/manage-your-account/index.md index 00e1bb1d3682..7af6446c0934 100644 --- a/content/copilot/how-tos/manage-your-account/index.md +++ b/content/copilot/how-tos/manage-your-account/index.md @@ -6,6 +6,7 @@ versions: feature: copilot children: - /get-started-with-a-copilot-plan + - /free-access-with-copilot-student - /get-free-access-to-copilot-pro - /view-and-change-your-copilot-plan - /disable-copilot-free From c4584dc139772b9226cd674415865208a6dec8f6 Mon Sep 17 00:00:00 2001 From: Anne-Marie <102995847+am-stead@users.noreply.github.com> Date: Wed, 4 Mar 2026 11:16:35 +0000 Subject: [PATCH 04/29] more updates --- .../concepts/product-billing/github-copilot-licenses.md | 5 +++-- content/copilot/concepts/billing/copilot-requests.md | 4 ++-- content/copilot/how-tos/set-up/set-up-for-self.md | 4 +++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/content/billing/concepts/product-billing/github-copilot-licenses.md b/content/billing/concepts/product-billing/github-copilot-licenses.md index 401115bd1b36..8a011297e471 100644 --- a/content/billing/concepts/product-billing/github-copilot-licenses.md +++ b/content/billing/concepts/product-billing/github-copilot-licenses.md @@ -24,7 +24,7 @@ Usage of {% data variables.product.prodname_copilot %} is measured through a com | Account type | Options | |-------------------|-------------------------------------------------------------------------| -| **Personal accounts** | | +| **Personal accounts** | | | **Organizations** | {% data variables.copilot.copilot_business_short %}: {% data variables.copilot.cfb_price_per_month %} per user per month (billed monthly). | | **Enterprises** | Choose {% data variables.copilot.copilot_business_short %} or {% data variables.copilot.copilot_enterprise_short %}, or mix them across organizations. Both are billed monthly, pricing varies. | @@ -51,7 +51,8 @@ There are several ways to use {% data variables.product.prodname_copilot_short % ### Educational and open source benefits -* {% data variables.copilot.copilot_pro_short %} is free for verified students, teachers, and maintainers of popular open source projects. See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/getting-free-access-to-copilot-pro-as-a-student-teacher-or-maintainer). +* {% data variables.copilot.copilot_student_short %} offers free access to {% data variables.product.prodname_copilot_short %}'s premium features for verified students. See [AUTOTITLE](/copilot/how-tos/manage-your-account/free-access-with-copilot-student). +* {% data variables.copilot.copilot_pro_short %} is free for verified teachers and maintainers of popular open source projects. See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/getting-free-access-to-copilot-pro-as-a-student-teacher-or-maintainer). ## How usage of {% data variables.product.prodname_copilot_short %} licenses is measured diff --git a/content/copilot/concepts/billing/copilot-requests.md b/content/copilot/concepts/billing/copilot-requests.md index ef1b0084abfd..20545df515a0 100644 --- a/content/copilot/concepts/billing/copilot-requests.md +++ b/content/copilot/concepts/billing/copilot-requests.md @@ -54,9 +54,9 @@ The following {% data variables.product.prodname_copilot_short %} features can u If you use **{% data variables.copilot.copilot_free_short %}**, your plan comes with up to 2,000 inline suggestion requests and up to 50 premium requests per month. All chat interactions count as premium requests. -If you're on a **paid plan**, you get unlimited inline suggestions and unlimited chat interactions using the included models ({% data variables.copilot.copilot_gpt_5_mini %}, {% data variables.copilot.copilot_gpt_41 %} and {% data variables.copilot.copilot_gpt_4o %}). Rate limiting is in place to accommodate for high demand. See [AUTOTITLE](/copilot/concepts/rate-limits). +If you're on a **paid plan** or **{% data variables.copilot.copilot_student_short %}**, you get unlimited inline suggestions and unlimited chat interactions using the included models ({% data variables.copilot.copilot_gpt_5_mini %}, {% data variables.copilot.copilot_gpt_41 %} and {% data variables.copilot.copilot_gpt_4o %}). Rate limiting is in place to accommodate for high demand. See [AUTOTITLE](/copilot/concepts/rate-limits). -Paid plans also receive a monthly allowance of premium requests, which can be used for advanced chat interactions, inline suggestions using premium models, and other premium features. For an overview of the amount of premium requests included in each plan, see [AUTOTITLE](/copilot/about-github-copilot/subscription-plans-for-github-copilot#comparing-copilot-plans). +Paid plans and {% data variables.copilot.copilot_student_short %} also receive a monthly allowance of premium requests, which can be used for advanced chat interactions, inline suggestions using premium models, and other premium features. For an overview of the amount of premium requests included in each plan, see [AUTOTITLE](/copilot/about-github-copilot/subscription-plans-for-github-copilot#comparing-copilot-plans). {% data reusables.copilot.premium-request-entity-selection %} diff --git a/content/copilot/how-tos/set-up/set-up-for-self.md b/content/copilot/how-tos/set-up/set-up-for-self.md index 0a84b0dff0c3..2735ac778868 100644 --- a/content/copilot/how-tos/set-up/set-up-for-self.md +++ b/content/copilot/how-tos/set-up/set-up-for-self.md @@ -27,7 +27,9 @@ There are a few ways that you can get access to {% data variables.product.prodna * **Use {% data variables.product.prodname_copilot_short %} through your organization or enterprise**. If you're part of an organization or enterprise with a {% data variables.product.prodname_copilot_short %} plan, you can request access at [https://github.com/settings/copilot](https://github.com/settings/copilot) under "Get {% data variables.product.prodname_copilot_short %} from an organization." -* **Verified students, teachers, or open source maintainers**. You may be eligible to use {% data variables.product.prodname_copilot_short %} for free. See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-free-access-to-copilot-as-a-student-teacher-or-maintainer). +* **Verified students** can sign up to {% data variables.copilot.copilot_student_short %} to access {% data variables.product.prodname_copilot_short %} for free. See [AUTOTITLE](/copilot/how-tos/manage-your-account/free-access-with-copilot-student). + +* **Verified teachers or open source maintainers** may be eligible to use {% data variables.product.prodname_copilot_short %} for free. See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-free-access-to-copilot-as-a-student-teacher-or-maintainer). ## 2. Install the {% data variables.product.prodname_copilot_short %} extension for your IDE From 4d5a28b60094f3d6addcf4a76d820ac2a00e1d26 Mon Sep 17 00:00:00 2001 From: Anne-Marie <102995847+am-stead@users.noreply.github.com> Date: Wed, 4 Mar 2026 11:34:40 +0000 Subject: [PATCH 05/29] final minor updates --- content/copilot/get-started/what-is-github-copilot.md | 2 +- .../manage-your-account/free-access-with-copilot-student.md | 2 +- .../manage-your-account/view-and-change-your-copilot-plan.md | 2 +- .../about-github-education-for-students.md | 2 +- .../getting-feedback-on-your-code-from-github-copilot.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/content/copilot/get-started/what-is-github-copilot.md b/content/copilot/get-started/what-is-github-copilot.md index 95a6e03561a6..c1e08a408092 100644 --- a/content/copilot/get-started/what-is-github-copilot.md +++ b/content/copilot/get-started/what-is-github-copilot.md @@ -61,7 +61,7 @@ You can start using {% data variables.product.prodname_copilot_short %} in sever * **Try {% data variables.product.prodname_copilot_short %} for free.** Use {% data variables.copilot.copilot_free_short %} to explore core features with no paid plan required. * **Subscribe to a paid plan.** Upgrade to {% data variables.copilot.copilot_pro_short %} or {% data variables.copilot.copilot_pro_plus_short %} for full access to premium features and more generous usage limits. * Try {% data variables.copilot.copilot_pro_short %} for free with a one-time 30-day trial. -* **Get free access if you're eligible.** Students, teachers, and open source maintainers may qualify for {% data variables.copilot.copilot_pro_short %} at no cost. See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-free-access-to-copilot-as-a-student-teacher-or-maintainer). +* **Get free access if you're eligible.** Students, teachers, and open source maintainers may qualify for access to premium features at no cost. See [AUTOTITLE](/copilot/how-tos/manage-your-account/free-access-with-copilot-student) and [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-free-access-to-copilot-as-a-student-teacher-or-maintainer). * **Request access from your organization.** If your organization or enterprise has a {% data variables.product.prodname_copilot %} plan, you can request access by going to [https://github.com/settings/copilot](https://github.com/settings/copilot) and request access under "Get {% data variables.product.prodname_copilot_short %} from an organization." See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/getting-started-with-a-copilot-plan) for more information. diff --git a/content/copilot/how-tos/manage-your-account/free-access-with-copilot-student.md b/content/copilot/how-tos/manage-your-account/free-access-with-copilot-student.md index f46c20c0b534..f7d74de79f5f 100644 --- a/content/copilot/how-tos/manage-your-account/free-access-with-copilot-student.md +++ b/content/copilot/how-tos/manage-your-account/free-access-with-copilot-student.md @@ -9,7 +9,7 @@ category: - Configure Copilot --- -## About {% data variables.copilot.copilot_student %} access +## About {% data variables.copilot.copilot_student_short %} access Verified students on {% data variables.product.prodname_education %} are eligible for **free access to {% data variables.product.prodname_copilot_short %}'s premium features**. See [AUTOTITLE](/copilot/concepts/billing/individual-plans#github-copilot-student). diff --git a/content/copilot/how-tos/manage-your-account/view-and-change-your-copilot-plan.md b/content/copilot/how-tos/manage-your-account/view-and-change-your-copilot-plan.md index 878b607afa76..68ef0f4d4b95 100644 --- a/content/copilot/how-tos/manage-your-account/view-and-change-your-copilot-plan.md +++ b/content/copilot/how-tos/manage-your-account/view-and-change-your-copilot-plan.md @@ -69,7 +69,7 @@ You can upgrade or downgrade your {% data variables.product.prodname_copilot_sho You can cancel your {% data variables.product.prodname_copilot_short %} plan or trial at any time. You’ll retain access to your current features until your billing cycle ends. You will automatically be downgraded to {% data variables.copilot.copilot_free_short %} at the end of your billing cycle. -If you have been granted a free access to {% data variables.copilot.copilot_pro_short %} as a verified student, teacher, or maintainer of a popular open source project, you won’t be able to cancel your plan. If you have access to {% data variables.product.prodname_copilot_short %} through an organization{% ifversion ghec %} or enterprise{% endif %}, you will not be able to cancel your plan. In these cases, you can disable {% data variables.product.prodname_copilot_short %} in your environment. See [AUTOTITLE](/copilot/configuring-github-copilot/configuring-github-copilot-in-your-environment). +If you have been granted a free access to {% data variables.product.prodname_copilot_short %} as a verified student, teacher, or maintainer of a popular open source project, you won’t be able to cancel your plan. If you have access to {% data variables.product.prodname_copilot_short %} through an organization{% ifversion ghec %} or enterprise{% endif %}, you will not be able to cancel your plan. In these cases, you can disable {% data variables.product.prodname_copilot_short %} in your environment. See [AUTOTITLE](/copilot/configuring-github-copilot/configuring-github-copilot-in-your-environment). {% data reusables.copilot.copilot-one-account-short %} diff --git a/content/education/about-github-education/github-education-for-students/about-github-education-for-students.md b/content/education/about-github-education/github-education-for-students/about-github-education-for-students.md index 1050e80dfe74..d49cb39ed9f3 100644 --- a/content/education/about-github-education/github-education-for-students/about-github-education-for-students.md +++ b/content/education/about-github-education/github-education-for-students/about-github-education-for-students.md @@ -38,7 +38,7 @@ Once you are a verified {% data variables.product.prodname_global_campus %} stud * Discover student-created repositories from {% data variables.product.prodname_community_exchange %}. For more information, see [AUTOTITLE](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/github-global-campus-for-students/about-github-community-exchange). {% data variables.product.prodname_global_campus %} students also receive the following {% data variables.product.prodname_dotcom %} benefits. -* **{% data variables.product.prodname_copilot %}:** Verified students receive a free subscription for {% data variables.copilot.copilot_pro %}. See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/getting-free-access-to-copilot-pro-as-a-student-teacher-or-maintainer). +* **{% data variables.product.prodname_copilot %}:** Verified students get free access to {% data variables.product.prodname_copilot_short %} and its premium features. See [AUTOTITLE](/copilot/how-tos/manage-your-account/free-access-with-copilot-student). * **{% data variables.product.prodname_github_codespaces %}:** {% data reusables.education.student-codespaces-benefit %} For more information on getting started with {% data variables.product.prodname_github_codespaces %}, see [AUTOTITLE](/codespaces/quickstart). > [!NOTE] diff --git a/content/get-started/learning-to-code/getting-feedback-on-your-code-from-github-copilot.md b/content/get-started/learning-to-code/getting-feedback-on-your-code-from-github-copilot.md index b9e38c1fdf8b..ace18147bc9a 100644 --- a/content/get-started/learning-to-code/getting-feedback-on-your-code-from-github-copilot.md +++ b/content/get-started/learning-to-code/getting-feedback-on-your-code-from-github-copilot.md @@ -15,7 +15,7 @@ Getting feedback on your pull request from others is an important part of the so A pull request is a collaborative place where you can show other people the changes you're proposing and get feedback. When you request a review from Copilot, you'll be learning the same process that you'll use use when working with development teams. The only difference is you'll also be requesting reviews from human colleagues alongside Copilot. >[!NOTE] ->{% data variables.copilot.copilot_code-review_short %} on the {% data variables.product.github %} website is a premium feature, available with the {% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, {% data variables.copilot.copilot_business_short %}, and {% data variables.copilot.copilot_enterprise_short %} plans. For more information about how using {% data variables.copilot.copilot_code-review_short %} affects your quotas, see [AUTOTITLE](/copilot/concepts/agents/code-review#code-review-monthly-quota). If you're a student, you may be able to get {% data variables.copilot.copilot_pro_short %} for free, see [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/getting-free-access-to-copilot-pro-as-a-student-teacher-or-maintainer). +>{% data variables.copilot.copilot_code-review_short %} on the {% data variables.product.github %} website is a premium feature, available with the {% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, {% data variables.copilot.copilot_business_short %}, and {% data variables.copilot.copilot_enterprise_short %} plans. For more information about how using {% data variables.copilot.copilot_code-review_short %} affects your quotas, see [AUTOTITLE](/copilot/concepts/agents/code-review#code-review-monthly-quota). If you're a student, you may be able to access {% data variables.product.prodname_copilot_short %}'s premium features for free, see [AUTOTITLE](/copilot/how-tos/manage-your-account/free-access-with-copilot-student). ## 1. Creating the practice repository From 144f7c0ffd8f9a21e81296b34db05910fbc3ee96 Mon Sep 17 00:00:00 2001 From: Anne-Marie <102995847+am-stead@users.noreply.github.com> Date: Wed, 4 Mar 2026 11:48:41 +0000 Subject: [PATCH 06/29] final tweaks --- .../manage-your-account/get-started-with-a-copilot-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/copilot/how-tos/manage-your-account/get-started-with-a-copilot-plan.md b/content/copilot/how-tos/manage-your-account/get-started-with-a-copilot-plan.md index 55ca026de433..68d7bbf230a4 100644 --- a/content/copilot/how-tos/manage-your-account/get-started-with-a-copilot-plan.md +++ b/content/copilot/how-tos/manage-your-account/get-started-with-a-copilot-plan.md @@ -35,7 +35,7 @@ Most individual developers can start using {% data variables.copilot.copilot_fre * You have a {% data variables.enterprise.prodname_managed_user %}. * You are assigned a {% data variables.product.prodname_copilot_short %} seat through an organization. * You have an existing {% data variables.copilot.copilot_pro_short %} or {% data variables.copilot.copilot_pro_plus_short %} plan or {% data variables.copilot.copilot_pro_short %} trial. -* You have free access to {% data variables.copilot.copilot_student_short %}. +* You have access to {% data variables.product.prodname_copilot_short %} through {% data variables.copilot.copilot_student_short %}. * You have free access to {% data variables.copilot.copilot_pro_short %} as a teacher or open-source maintainer. There are a few ways to start using {% data variables.copilot.copilot_free_short %}, depending on where you're working. From 740eab5aff77dfef2f3cec89f7cae71c09991c95 Mon Sep 17 00:00:00 2001 From: Anne-Marie <102995847+am-stead@users.noreply.github.com> Date: Wed, 4 Mar 2026 11:51:19 +0000 Subject: [PATCH 07/29] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- content/copilot/concepts/billing/individual-plans.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/copilot/concepts/billing/individual-plans.md b/content/copilot/concepts/billing/individual-plans.md index c65abb2799cb..0241aea8e69f 100644 --- a/content/copilot/concepts/billing/individual-plans.md +++ b/content/copilot/concepts/billing/individual-plans.md @@ -38,7 +38,7 @@ Verified students can access unlimited completions and additional models at no c * Includes **unlimited completions** in IDEs * Access to {% data variables.copilot.copilot_chat_short %} and additional models * Includes up to **300 premium requests** per month (additional at {% data variables.copilot.additional_premium_requests %} each) -* Free for verified students. +* Free for verified students ## {% data variables.copilot.copilot_pro %} From 8c5a32d8cb2bb642632c2f5617f8223598d48fdf Mon Sep 17 00:00:00 2001 From: Anne-Marie <102995847+am-stead@users.noreply.github.com> Date: Wed, 4 Mar 2026 12:00:43 +0000 Subject: [PATCH 08/29] fix failing test --- .../manage-your-account/free-access-with-copilot-student.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/copilot/how-tos/manage-your-account/free-access-with-copilot-student.md b/content/copilot/how-tos/manage-your-account/free-access-with-copilot-student.md index f7d74de79f5f..6d0be9e4e99c 100644 --- a/content/copilot/how-tos/manage-your-account/free-access-with-copilot-student.md +++ b/content/copilot/how-tos/manage-your-account/free-access-with-copilot-student.md @@ -1,6 +1,7 @@ --- title: 'Access GitHub Copilot for free as a student' shortTitle: Get free access with Copilot Student +allowTitleToDifferFromFilename: true intro: 'Learn how to access {% data variables.product.prodname_copilot_short %}''s premium features for free as a student.' versions: feature: copilot From a0d6f4ae8495c2db71ee42a41baf47b1e5734877 Mon Sep 17 00:00:00 2001 From: Anne-Marie <102995847+am-stead@users.noreply.github.com> Date: Mon, 9 Mar 2026 09:58:55 +0000 Subject: [PATCH 09/29] apply review feedback - update plans --- content/copilot/get-started/plans.md | 6 +- .../copilot/differences-cfi-cfb-table.md | 84 +++++++++---------- 2 files changed, 47 insertions(+), 43 deletions(-) diff --git a/content/copilot/get-started/plans.md b/content/copilot/get-started/plans.md index edc98d80442f..5aa5218208ab 100644 --- a/content/copilot/get-started/plans.md +++ b/content/copilot/get-started/plans.md @@ -17,7 +17,9 @@ category: * **{% data variables.copilot.copilot_free %}** is available to individual developers who don't have access to {% data variables.product.prodname_copilot_short %} through an organization or enterprise. This free plan includes limited access to select {% data variables.product.prodname_copilot_short %} features, allowing you to try AI-powered coding assistance at no cost. -* **{% data variables.copilot.copilot_pro %}** is designed for individuals who want more flexibility. This paid plan includes unlimited completions, access to premium models in {% data variables.copilot.copilot_chat_short %}, access to {% data variables.copilot.copilot_coding_agent %}, and a monthly allowance of premium requests. Verified students, teachers, and maintainers of popular open source projects may be eligible for free access. +* **{% data variables.copilot.copilot_student %}** is available to verified students. The plan includes unlimited completions, access to premium models in {% data variables.copilot.copilot_chat_short %}, access to {% data variables.copilot.copilot_coding_agent %}, and a monthly allowance of premium requests. + +* **{% data variables.copilot.copilot_pro %}** is designed for individuals who want more flexibility. This paid plan includes unlimited completions, access to premium models in {% data variables.copilot.copilot_chat_short %}, access to {% data variables.copilot.copilot_coding_agent %}, and a monthly allowance of premium requests. Verified teachers, and maintainers of popular open source projects may be eligible for free access. * **{% data variables.copilot.copilot_pro_plus %}** offers the highest level of access for individual developers. In addition to everything in {% data variables.copilot.copilot_pro_short %}, this plan includes a larger allowance of premium requests, and full access to all available models in {% data variables.copilot.copilot_chat_short %}. Ideal for AI power users who want access to the most advanced capabilities. @@ -41,6 +43,8 @@ Start using {% data variables.product.prodname_copilot_short %} by signing up fo * **{% data variables.copilot.copilot_free_short %}** — Try {% data variables.product.prodname_copilot_short %} with limited features and requests. [Start using {% data variables.copilot.copilot_free_short %}](https://github.com/copilot?ref_product=copilot&ref_type=engagement&ref_style=text&ref_plan=free). +* **{% data variables.copilot.copilot_student %}** — Get access to {% data variables.product.prodname_copilot_short %}'s premium features for free. [Access {% data variables.copilot.copilot_student %}](/copilot/how-tos/manage-your-account/free-access-with-copilot-student). + * **{% data variables.copilot.copilot_pro_short %}** — Get unlimited completions and access to premium models. Includes a free 30-day trial for eligible users. [Try {% data variables.copilot.copilot_pro_short %} for free](https://github.com/github-copilot/signup?ref_product=copilot&ref_type=trial&ref_style=text&ref_plan=pro). * **{% data variables.copilot.copilot_pro_plus_short %}** — Unlock advanced AI models, extended request limits, and extra capabilities. [Subscribe to {% data variables.copilot.copilot_pro_plus_short %}](https://github.com/github-copilot/signup?ref_product=copilot&ref_type=purchase&ref_style=text&ref_plan=pro). diff --git a/data/reusables/copilot/differences-cfi-cfb-table.md b/data/reusables/copilot/differences-cfi-cfb-table.md index 94c0934fc205..0c94f354402e 100644 --- a/data/reusables/copilot/differences-cfi-cfb-table.md +++ b/data/reusables/copilot/differences-cfi-cfb-table.md @@ -1,10 +1,10 @@ {% rowheaders %} -| | {% data variables.copilot.copilot_free_short %} | {% data variables.copilot.copilot_pro_short %} | {% data variables.copilot.copilot_pro_plus_short %} | {% data variables.copilot.copilot_business_short %} | {% data variables.copilot.copilot_enterprise_short %} | -| --- | --- | --- | --- | --- | --- | -| Pricing | Not applicable | {% data variables.copilot.cfi_price_per_month %} per month, or
{% data variables.copilot.cfi_price_per_year %} per year
(free for some users) | {% data variables.copilot.cpp_price_per_month %} per month, or
{% data variables.copilot.cpp_price_per_year %} per year
| {% data variables.copilot.cfb_price_per_month %} per granted seat per month | {% data variables.copilot.ce_price_per_month %} per granted seat per month | -| Premium requests | 50 per month | 300 per month | 1500 per month | 300 per user per month | 1000 per user per month | -| Purchase additional premium requests at $0.04/request| {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| | {% data variables.copilot.copilot_free_short %} | {% data variables.copilot.copilot_student_short %} | {% data variables.copilot.copilot_pro_short %} | {% data variables.copilot.copilot_pro_plus_short %} | {% data variables.copilot.copilot_business_short %} | {% data variables.copilot.copilot_enterprise_short %} | +| --- | --- | --- | --- | --- | --- | --- | +| Pricing | Not applicable | Free | {% data variables.copilot.cfi_price_per_month %} per month, or
{% data variables.copilot.cfi_price_per_year %} per year
(free for some users) | {% data variables.copilot.cpp_price_per_month %} per month, or
{% data variables.copilot.cpp_price_per_year %} per year
| {% data variables.copilot.cfb_price_per_month %} per granted seat per month | {% data variables.copilot.ce_price_per_month %} per granted seat per month | +| Premium requests | 50 per month | 300 per month | 300 per month | 1500 per month | 300 per user per month | 1000 per user per month | +| Purchase additional premium requests at $0.04/request| {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% endrowheaders %} @@ -12,13 +12,13 @@ {% rowheaders %} -| Agents | {% data variables.copilot.copilot_free_short %} | {% data variables.copilot.copilot_pro_short %} | {% data variables.copilot.copilot_pro_plus_short %} | {% data variables.copilot.copilot_business_short %} | {% data variables.copilot.copilot_enterprise_short %} | -| --- | --- | --- | --- | --- | --- | -| {% data variables.copilot.copilot_coding_agent %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| Agent mode | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.product.prodname_copilot_short %} code review | Only "Review selection" in {% data variables.product.prodname_vscode_shortname %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| Model Context Protocol (MCP) | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| Third-party Agents ({% data variables.release-phases.public_preview %}) | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| Agents | {% data variables.copilot.copilot_free_short %} | {% data variables.copilot.copilot_student_short %} | {% data variables.copilot.copilot_pro_short %} | {% data variables.copilot.copilot_pro_plus_short %} | {% data variables.copilot.copilot_business_short %} | {% data variables.copilot.copilot_enterprise_short %} | +| --- | --- | --- | --- | --- | --- | --- | +| {% data variables.copilot.copilot_coding_agent %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| Agent mode | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.product.prodname_copilot_short %} code review | Only "Review selection" in {% data variables.product.prodname_vscode_shortname %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| Model Context Protocol (MCP) | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| Third-party Agents ({% data variables.release-phases.public_preview %}) | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% endrowheaders %} @@ -26,16 +26,16 @@ {% rowheaders %} -| Chat | {% data variables.copilot.copilot_free_short %} | {% data variables.copilot.copilot_pro_short %} | {% data variables.copilot.copilot_pro_plus_short %} | {% data variables.copilot.copilot_business_short %} | {% data variables.copilot.copilot_enterprise_short %} | -| --- | --- | --- | --- | --- | --- | -| {% data variables.copilot.copilot_chat_short %} in IDEs[^1] [^2] | 50 messages per month | Unlimited with included models | Unlimited with included models | Unlimited with included models | Unlimited with included models | -| Inline chat | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| Slash commands | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_mobile_short %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_chat_dotcom_short %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_windows_terminal %} | {% octicon "check" aria-label="Included" %} |{% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| Increased {% data variables.product.prodname_github_models %} rate limits[^3] | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_chat_short %} skills in IDEs[^4] | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| Chat | {% data variables.copilot.copilot_free_short %} | {% data variables.copilot.copilot_student_short %} | {% data variables.copilot.copilot_pro_short %} | {% data variables.copilot.copilot_pro_plus_short %} | {% data variables.copilot.copilot_business_short %} | {% data variables.copilot.copilot_enterprise_short %} | +| --- | --- | --- | --- | --- | --- | --- | +| {% data variables.copilot.copilot_chat_short %} in IDEs[^1] [^2] | 50 messages per month | Unlimited with included models | Unlimited with included models | Unlimited with included models | Unlimited with included models | Unlimited with included models | +| Inline chat | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| Slash commands | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_mobile_short %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_chat_dotcom_short %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_windows_terminal %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} |{% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| Increased {% data variables.product.prodname_github_models %} rate limits[^3] | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_chat_short %} skills in IDEs[^4] | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% endrowheaders %} @@ -47,10 +47,10 @@ {% rowheaders %} -| Inline suggestions | {% data variables.copilot.copilot_free_short %} | {% data variables.copilot.copilot_pro_short %} | {% data variables.copilot.copilot_pro_plus_short %} | {% data variables.copilot.copilot_business_short %} | {% data variables.copilot.copilot_enterprise_short %} | -| --- | --- | --- | --- | --- | --- | -| Real-time code suggestions with included models[^5] | 2000 completions per month | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.next_edit_suggestions_caps %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| Inline suggestions | {% data variables.copilot.copilot_free_short %} | {% data variables.copilot.copilot_student_short %} | {% data variables.copilot.copilot_pro_short %} | {% data variables.copilot.copilot_pro_plus_short %} | {% data variables.copilot.copilot_business_short %} | {% data variables.copilot.copilot_enterprise_short %} | +| --- | --- | --- | --- | --- | --- | --- | +| Real-time code suggestions with included models[^5] | 2000 completions per month | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.next_edit_suggestions_caps %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% endrowheaders %} @@ -58,15 +58,15 @@ {% rowheaders %} -| Customization | {% data variables.copilot.copilot_free_short %} | {% data variables.copilot.copilot_pro_short %} | {% data variables.copilot.copilot_pro_plus_short %} | {% data variables.copilot.copilot_business_short %} | {% data variables.copilot.copilot_enterprise_short %} | -| --- | --- | --- | --- | --- | --- | -| Repository and personal custom instructions | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| Organization custom instructions ({% data variables.release-phases.public_preview %}) | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| Prompt files | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| Model Context Protocol (MCP) | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| Block suggestions matching public code | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| Exclude specified files from {% data variables.product.prodname_copilot_short %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| Organization-wide policy management | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| Customization | {% data variables.copilot.copilot_free_short %} | {% data variables.copilot.copilot_student_short %} | {% data variables.copilot.copilot_pro_short %} | {% data variables.copilot.copilot_pro_plus_short %} | {% data variables.copilot.copilot_business_short %} | {% data variables.copilot.copilot_enterprise_short %} | +| --- | --- | --- | --- | --- | --- | --- | +| Repository and personal custom instructions | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| Organization custom instructions ({% data variables.release-phases.public_preview %}) | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| Prompt files | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| Model Context Protocol (MCP) | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| Block suggestions matching public code | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| Exclude specified files from {% data variables.product.prodname_copilot_short %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| Organization-wide policy management | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% endrowheaders %} @@ -74,13 +74,13 @@ {% rowheaders %} -| | {% data variables.copilot.copilot_free_short %} | {% data variables.copilot.copilot_pro_short %} | {% data variables.copilot.copilot_pro_plus_short %} | {% data variables.copilot.copilot_business_short %} | {% data variables.copilot.copilot_enterprise_short %} | -| --- | --- | --- | --- | --- | --- | -| {% data variables.copilot.copilot_for_prs %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| Audit logs | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} |{% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| Content exclusion | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_cli_short %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.product.prodname_spark %} ({% data variables.release-phases.public_preview %}) | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| | {% data variables.copilot.copilot_free_short %} | {% data variables.copilot.copilot_student_short %} | {% data variables.copilot.copilot_pro_short %} | {% data variables.copilot.copilot_pro_plus_short %} | {% data variables.copilot.copilot_business_short %} | {% data variables.copilot.copilot_enterprise_short %} | +| --- | --- | --- | --- | --- | --- | --- | +| {% data variables.copilot.copilot_for_prs %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| Audit logs | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} |{% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| Content exclusion | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_cli_short %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.product.prodname_spark %} ({% data variables.release-phases.public_preview %}) | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% endrowheaders %} From 474bb5c07f878d2cf89109592256513060e34ff8 Mon Sep 17 00:00:00 2001 From: Anne-Marie <102995847+am-stead@users.noreply.github.com> Date: Mon, 9 Mar 2026 10:01:22 +0000 Subject: [PATCH 10/29] apply review feedback --- content/copilot/concepts/billing/individual-plans.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/copilot/concepts/billing/individual-plans.md b/content/copilot/concepts/billing/individual-plans.md index 0241aea8e69f..c1d8de74a968 100644 --- a/content/copilot/concepts/billing/individual-plans.md +++ b/content/copilot/concepts/billing/individual-plans.md @@ -69,7 +69,7 @@ The following table highlights the key differences between individual {% data va | Feature | {% data variables.copilot.copilot_free %} | {% data variables.copilot.copilot_student %} | {% data variables.copilot.copilot_pro %} | {% data variables.copilot.copilot_pro_plus %} | |--------|----------------------------------------------------|----------------------------------------------|--------------------------------------------------|----------------------------------------------------------| -| Price | Free | Free | {% data variables.copilot.cfi_price_per_month %} per month, or
{% data variables.copilot.cfi_price_per_year %} per year
([free](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/getting-free-access-to-copilot-pro-as-a-student-teacher-or-maintainer) for some users) | {% data variables.copilot.cpp_price_per_month %} per month, or
{% data variables.copilot.cpp_price_per_year %} per year | +| Price | Free | [Free](/copilot/how-tos/manage-your-account/free-access-with-copilot-student) | {% data variables.copilot.cfi_price_per_month %} per month, or
{% data variables.copilot.cfi_price_per_year %} per year
([free](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/getting-free-access-to-copilot-pro-as-a-student-teacher-or-maintainer) for some users) | {% data variables.copilot.cpp_price_per_month %} per month, or
{% data variables.copilot.cpp_price_per_year %} per year | | Real-time code suggestions with included models | Up to 2,000 per month | Unlimited | Unlimited | Unlimited | | Premium requests | 50 per month | 300 per month | 300 per month | 1,500 per month | | Purchase additional premium requests at {% data variables.copilot.additional_premium_requests %} per request | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | From 5bb22187c6a45d7f4a872db3e01112b9345b7650 Mon Sep 17 00:00:00 2001 From: Anne-Marie <102995847+am-stead@users.noreply.github.com> Date: Mon, 9 Mar 2026 15:31:18 +0000 Subject: [PATCH 11/29] apply review feedback --- .../logs-not-detailed-enough.md | 6 +++--- .../free-access-with-copilot-student.md | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/content/code-security/reference/code-scanning/troubleshoot-analysis-errors/logs-not-detailed-enough.md b/content/code-security/reference/code-scanning/troubleshoot-analysis-errors/logs-not-detailed-enough.md index 0b91021f933b..b0389c17a428 100644 --- a/content/code-security/reference/code-scanning/troubleshoot-analysis-errors/logs-not-detailed-enough.md +++ b/content/code-security/reference/code-scanning/troubleshoot-analysis-errors/logs-not-detailed-enough.md @@ -1,7 +1,7 @@ --- title: Logs are not detailed enough shortTitle: Logs not detailed enough -intro: Increase log verbosity and generate debugging artifacts when logs lack diagnostic detail. +intro: Increase log verbosity and generate debugging artifacts when logs lack diagnostic detail. allowTitleToDifferFromFilename: true versions: fpt: '*' @@ -41,7 +41,7 @@ These artifacts will help you debug problems with {% data variables.product.prod ### Creating {% data variables.product.prodname_codeql %} debugging artifacts for {% data variables.product.prodname_codeql %} default setup -You can create {% data variables.product.prodname_codeql %} debugging artifacts by enabling step debug logging (see [Enabling step debug logging](#enabling-step-debug-logging)) and triggering a new {% data variables.product.prodname_codeql %} analysis, for example, by pushing a new commit to a pull request branch. +You can create {% data variables.product.prodname_codeql %} debugging artifacts by enabling step debug logging (see [Enabling step debug logging](#enabling-step-debug-logging)) and triggering a new {% data variables.product.prodname_codeql %} analysis, for example, by pushing a new commit to a pull request branch. {% ifversion org-private-registry %} @@ -72,4 +72,4 @@ You can create {% data variables.product.prodname_codeql %} debugging artifacts #### Using {% data variables.product.prodname_actions %} step debug logging -If you enable {% data variables.product.prodname_actions %} step debug logging, {% data variables.product.prodname_codeql %} will also produce debugging artifacts and upload them as part of the workflow run. For instructions, see [Enabling step debug logging](#enabling-step-debug-logging). +If you enable {% data variables.product.prodname_actions %} step debug logging, {% data variables.product.prodname_codeql %} will also produce debugging artifacts and upload them as part of the workflow run. For instructions, see [Enabling step debug logging](#enabling-step-debug-logging). diff --git a/content/copilot/how-tos/manage-your-account/free-access-with-copilot-student.md b/content/copilot/how-tos/manage-your-account/free-access-with-copilot-student.md index 6d0be9e4e99c..a1abec192a63 100644 --- a/content/copilot/how-tos/manage-your-account/free-access-with-copilot-student.md +++ b/content/copilot/how-tos/manage-your-account/free-access-with-copilot-student.md @@ -20,6 +20,8 @@ To learn about becoming a verified student, see [AUTOTITLE](/free-pro-team@lates ## Accessing {% data variables.copilot.copilot_student_short %} -{% data reusables.copilot.your-copilot %} -1. If you qualify for {% data variables.copilot.copilot_student_short %}, you will see a page titled "{% data variables.copilot.copilot_student_short %}" informing you that you are eligible. Click **Get access to {% data variables.product.prodname_copilot %}**. -1. On the page that appears, configure the {% data variables.product.prodname_copilot_short %} use policies to meet your needs, then click **Save and complete**. \ No newline at end of file +1. Navigate to https://github.com/settings/education/benefits. + + If you're not yet a verified student, you'll need to 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. \ No newline at end of file From 270720e1645a954f68d32a692a6b7f693fb8d75f Mon Sep 17 00:00:00 2001 From: Anne-Marie <102995847+am-stead@users.noreply.github.com> Date: Tue, 10 Mar 2026 09:56:28 +0000 Subject: [PATCH 12/29] update supported models --- data/tables/copilot/model-supported-plans.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/data/tables/copilot/model-supported-plans.yml b/data/tables/copilot/model-supported-plans.yml index c535916e0929..61169abc88a5 100644 --- a/data/tables/copilot/model-supported-plans.yml +++ b/data/tables/copilot/model-supported-plans.yml @@ -23,7 +23,7 @@ - name: Claude Opus 4.5 free: false - student: true + student: false pro: true pro_plus: true business: true @@ -31,7 +31,7 @@ - name: Claude Opus 4.6 free: false - student: true + student: false pro: true pro_plus: true business: true @@ -47,7 +47,7 @@ - name: Claude Sonnet 4 free: false - student: true + student: false pro: true pro_plus: true business: true @@ -55,7 +55,7 @@ - name: Claude Sonnet 4.5 free: false - student: true + student: false pro: true pro_plus: true business: true @@ -63,7 +63,7 @@ - name: Claude Sonnet 4.6 free: false - student: true + student: false pro: true pro_plus: true business: true @@ -183,6 +183,7 @@ - name: Grok Code Fast 1 free: true + student: true pro: true pro_plus: true business: true From 958fd66c6def3dfb12f54d05735041433b4d2268 Mon Sep 17 00:00:00 2001 From: Anne-Marie <102995847+am-stead@users.noreply.github.com> Date: Thu, 12 Mar 2026 09:15:55 +0000 Subject: [PATCH 13/29] update supported models --- data/tables/copilot/model-supported-plans.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/tables/copilot/model-supported-plans.yml b/data/tables/copilot/model-supported-plans.yml index 61169abc88a5..0837d435b1cb 100644 --- a/data/tables/copilot/model-supported-plans.yml +++ b/data/tables/copilot/model-supported-plans.yml @@ -175,7 +175,7 @@ - name: GPT-5.4 free: false - student: true + student: false pro: true pro_plus: true business: true From 17719a3204a37ff9804ab351ab77c960dcdb75e0 Mon Sep 17 00:00:00 2001 From: hubwriter Date: Thu, 12 Mar 2026 14:39:02 +0000 Subject: [PATCH 14/29] Copilot CLI: Add new map topic & articles about automation (#60002) Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Sarah Schneider Co-authored-by: Siara <108543037+SiaraMist@users.noreply.github.com> --- .../agents/copilot-cli/about-copilot-cli.md | 4 +- .../concepts/agents/copilot-cli/autopilot.md | 2 +- .../concepts/agents/copilot-cli/research.md | 2 +- .../automate-with-actions.md | 168 ++++++++++++++++++ .../copilot-cli/automate-copilot-cli/index.md | 12 ++ .../automate-copilot-cli/quickstart.md | 87 +++++++++ .../run-cli-programmatically.md | 168 ++++++++++++++++++ .../copilot-cli/automate-with-actions.md | 148 --------------- .../how-tos/copilot-cli/cli-best-practices.md | 2 +- .../create-custom-agents-for-cli.md | 2 +- .../copilot-cli/customize-copilot/index.md | 2 +- ...ckstart-for-customizing.md => overview.md} | 2 + content/copilot/how-tos/copilot-cli/index.md | 17 +- .../speeding-up-task-completion.md | 2 +- .../use-copilot-cli-agents/overview.md | 4 +- .../{ => copilot-cli-reference}/acp-server.md | 2 + .../cli-command-reference.md | 47 +++-- .../cli-plugin-reference.md | 8 + .../cli-programmatic-reference.md | 158 ++++++++++++++++ .../reference/copilot-cli-reference/index.md | 12 ++ .../reference/custom-agents-configuration.md | 3 +- .../copilot/reference/hooks-configuration.md | 6 + content/copilot/reference/index.md | 6 +- src/content-pipelines/config.yml | 6 +- 24 files changed, 677 insertions(+), 193 deletions(-) create mode 100644 content/copilot/how-tos/copilot-cli/automate-copilot-cli/automate-with-actions.md create mode 100644 content/copilot/how-tos/copilot-cli/automate-copilot-cli/index.md create mode 100644 content/copilot/how-tos/copilot-cli/automate-copilot-cli/quickstart.md create mode 100644 content/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically.md delete mode 100644 content/copilot/how-tos/copilot-cli/automate-with-actions.md rename content/copilot/how-tos/copilot-cli/customize-copilot/{quickstart-for-customizing.md => overview.md} (97%) rename content/copilot/reference/{ => copilot-cli-reference}/acp-server.md (98%) rename content/copilot/reference/{ => copilot-cli-reference}/cli-command-reference.md (95%) rename content/copilot/reference/{ => copilot-cli-reference}/cli-plugin-reference.md (97%) create mode 100644 content/copilot/reference/copilot-cli-reference/cli-programmatic-reference.md create mode 100644 content/copilot/reference/copilot-cli-reference/index.md diff --git a/content/copilot/concepts/agents/copilot-cli/about-copilot-cli.md b/content/copilot/concepts/agents/copilot-cli/about-copilot-cli.md index d86f8c779123..35229e38cc52 100644 --- a/content/copilot/concepts/agents/copilot-cli/about-copilot-cli.md +++ b/content/copilot/concepts/agents/copilot-cli/about-copilot-cli.md @@ -240,7 +240,7 @@ The `--deny-tool` and `--allow-tool` options require one of the following argume * `'shell(COMMAND)'` - For example, `copilot --deny-tool 'shell(rm)'` prevents {% data variables.product.prodname_copilot_short %} from using any `rm` command. + For example, `copilot --deny-tool='shell(rm)'` prevents {% data variables.product.prodname_copilot_short %} from using any `rm` command. For `git` and `gh` commands, you can specify a particular first-level subcommand to allow or deny. For example: @@ -311,7 +311,7 @@ Each time you submit a prompt to {% data variables.product.prodname_copilot_shor ACP (the Agent Client Protocol) is an open standard for interacting with AI agents. It allows you to use {% data variables.copilot.copilot_cli_short %} as an agent in any third-party tools, IDEs, or automation systems that support this protocol. -For more information, see [AUTOTITLE](/copilot/reference/acp-server). +For more information, see [AUTOTITLE](/copilot/reference/copilot-cli-reference/acp-server). {% data reusables.cli.feedback %} diff --git a/content/copilot/concepts/agents/copilot-cli/autopilot.md b/content/copilot/concepts/agents/copilot-cli/autopilot.md index a1a71ad0e9d7..87b8c32cfd1b 100644 --- a/content/copilot/concepts/agents/copilot-cli/autopilot.md +++ b/content/copilot/concepts/agents/copilot-cli/autopilot.md @@ -63,7 +63,7 @@ You will get the best results from autopilot mode if you enable all permissions. ## Comparing autopilot mode, `--allow-all`, and `--no-ask-user` -`--allow-all`, and its alias `--yolo`, are permissions-related options that you can pass to the `copilot` command when you start an interactive session. For a full list of available options, see [AUTOTITLE](/copilot/reference/cli-command-reference#command-line-options). +`--allow-all`, and its alias `--yolo`, are permissions-related options that you can pass to the `copilot` command when you start an interactive session. For a full list of available options, see [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options). The `--allow-all` and `--yolo` options allow the CLI agent to use all tools, paths, and URLs. You can also set these permissions during an interactive session, by using the `/allow-all` or `/yolo` slash commands. diff --git a/content/copilot/concepts/agents/copilot-cli/research.md b/content/copilot/concepts/agents/copilot-cli/research.md index 1d5ac19da4d7..f8fb455690a8 100644 --- a/content/copilot/concepts/agents/copilot-cli/research.md +++ b/content/copilot/concepts/agents/copilot-cli/research.md @@ -140,7 +140,7 @@ To share the report you can either save it to a file or create a {% data variabl ls -dtl ~/.copilot/session-state/*/ | head -10 ``` -* **The research agent uses a specific model**: The research agent is hard-coded to use a particular AI model (see [AUTOTITLE](/copilot/reference/cli-command-reference#built-in-agents)). The model selection is not configurable via the `/model` command. The research agent always uses the defined model regardless of what model you've selected for your main session. +* **The research agent uses a specific model**: The research agent is hard-coded to use a particular AI model (see [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#built-in-agents)). The model selection is not configurable via the `/model` command. The research agent always uses the defined model regardless of what model you've selected for your main session. * **Report quality varies by query type**: The agent classifies your query into three types and adapts its response accordingly: diff --git a/content/copilot/how-tos/copilot-cli/automate-copilot-cli/automate-with-actions.md b/content/copilot/how-tos/copilot-cli/automate-copilot-cli/automate-with-actions.md new file mode 100644 index 000000000000..fb28e66dfde5 --- /dev/null +++ b/content/copilot/how-tos/copilot-cli/automate-copilot-cli/automate-with-actions.md @@ -0,0 +1,168 @@ +--- +title: Automating tasks with Copilot CLI and GitHub Actions +shortTitle: Automate with Actions +intro: Integrate {% data variables.copilot.copilot_cli %} into your {% data variables.product.prodname_actions %} workflows. +product: '{% data reusables.gated-features.copilot-cli %}' +versions: + feature: copilot +contentType: how-tos +category: + - Build with Copilot CLI + - Author and optimize with Copilot +redirect_from: + - /copilot/how-tos/copilot-cli/automate-with-actions +--- + +You can run {% data variables.copilot.copilot_cli %} in a {% data variables.product.prodname_actions %} workflow to automate AI-powered tasks as part of your CI/CD process. For example, you can summarize recent repository activity, generate reports, or scaffold project content. {% data variables.copilot.copilot_cli %} runs on the Actions runner like any other CLI tool, so you can install it during a job and invoke it from workflow steps. + +## Using {% data variables.copilot.copilot_cli_short %} in an Actions workflow + +You can define a job in a {% data variables.product.prodname_actions %} workflow that: installs {% data variables.copilot.copilot_cli_short %} on the runner, authenticates it, runs it in programmatic mode, and then handles the results. Programmatic mode is designed for scripts and automation and lets you pass a prompt non-interactively. + +Workflows can follow this pattern: +1. **Trigger**: Start the workflow on a schedule, in response to repository events, or manually. +1. **Setup**: Checkout code, set up environment. +1. **Install**: Install {% data variables.copilot.copilot_cli %} on the runner. +1. **Authenticate**: Ensure the CLI has the necessary permissions to access the repository and make changes. +1. **Run {% data variables.copilot.copilot_cli_short %}**: Invoke {% data variables.copilot.copilot_cli_short %} with a prompt describing the task you want to automate. + +### Example workflow + +The following workflow generates details of changes made today in the default branch of the repository and displays these details as the summary for the workflow run. + +```yaml copy +name: Daily summary +on: + workflow_dispatch: + # Run this workflow daily at 5:30pm UTC + schedule: + - cron: '30 17 * * *' +permissions: + contents: read +jobs: + daily-summary: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: {% data reusables.actions.action-checkout %} + with: + fetch-depth: 0 + + - name: Set up Node.js environment + uses: {% data reusables.actions.action-setup-node %} + + - name: Install Copilot CLI + run: npm install -g @github/copilot + + - name: Run Copilot CLI + env: + {% raw %}COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}{% endraw %} + run: | + copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today, with links to the relevant commit on GitHub. Above the bullet list give a description (max 100 words) summarizing the changes made. Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user + cat summary.md >> "$GITHUB_STEP_SUMMARY" +``` + +The following sections explain each part of this workflow. + +## Trigger + +In this example, the workflow runs on a daily schedule and can also be triggered manually. + +The `workflow_dispatch` trigger lets you run the workflow manually from the **Actions** tab of your repository on {% data variables.product.github %}, which is useful when testing changes to your prompt or workflow configuration. + +The `schedule` trigger runs the workflow automatically at a specified time using cron syntax. + +```yaml copy +on: + # Allows manual triggering of this workflow + workflow_dispatch: + # Run this workflow daily at 11:55pm UTC + schedule: + - cron: '55 23 * * *' +``` + +## Setup + +Set up the job so {% data variables.copilot.copilot_cli_short %} can access your repository and run on the Actions runner. This allows {% data variables.copilot.copilot_cli_short %} to analyze the repository context, when generating the daily summary. + +The `permissions` block defines the scope granted to the built-in `GITHUB_TOKEN`. Because this workflow reads repository data and prints a summary to the logs, it requires `contents: read`. + +```yaml copy +permissions: + contents: read +jobs: + daily-summary: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: {% data reusables.actions.action-checkout %} + with: + fetch-depth: 0 +``` + +## Install + +Install {% data variables.copilot.copilot_cli_short %} on the runner so your workflow can invoke it as a command. You can install {% data variables.copilot.copilot_cli %} using any supported installation method. For a full list of installation options, see [AUTOTITLE](/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli). + +In this example, the workflow installs {% data variables.copilot.copilot_cli %} globally with npm. + +```yaml copy +- name: Set up Node.js environment + uses: {% data reusables.actions.action-setup-node %} + +- name: Install Copilot CLI + run: npm install -g @github/copilot +``` + +## Authenticate + +To allow {% data variables.copilot.copilot_cli_short %} to run on an Actions runner, you need to authenticate a {% data variables.product.github %} user account with a valid {% data variables.product.prodname_copilot_short %} license. + +**Step 1: Create a {% data variables.product.pat_generic %} (PAT) with the "Copilot Requests" permission:** +1. Go to your personal settings for creating a {% data variables.product.pat_v2 %}: [github.com/settings/personal-access-tokens/new](https://github.com/settings/personal-access-tokens/new?ref_product=copilot&ref_type=engagement&ref_style=text). +1. Create a new PAT with the "Copilot Requests" permission. +1. Copy the token value. + +**Step 2: Store the PAT as an Actions repository secret:** +1. In your repository, go to **Settings** > **Secrets and variables** > **Actions** and click **New repository secret**. +1. Give the secret a name that you will use in the workflow. In this example we're using `PERSONAL_ACCESS_TOKEN` as the name of the secret. +1. Paste the token value into the "Secret" field and click **Add secret**. + +The workflow sets a special environment variable with the value of the repository secret. {% data variables.copilot.copilot_cli_short %} supports several special environment variables for authentication. In this example, the workflow uses `COPILOT_GITHUB_TOKEN`, which is specific to {% data variables.copilot.copilot_cli_short %} and allows you to set different permissions for {% data variables.product.prodname_copilot_short %} than you might use elsewhere with the built-in `GITHUB_TOKEN` environment variable. + +```yaml copy +- name: Run Copilot CLI + env: + {% raw %}COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}{% endraw %} +``` + +## Run {% data variables.copilot.copilot_cli_short %} + +Use `copilot -p PROMPT [OPTIONS]` to run the CLI programmatically and exit when the command completes. + +The CLI prints its response to standard output, which is recorded in the log for the Actions workflow run. However, to make the details of changes easier to access, this example adds this information to the summary for the workflow run. + +```yaml copy + run: | + copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today, with links to the relevant commit on GitHub. Above the bullet list give a description (max 100 words) summarizing the changes made. Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user + cat summary.md >> "$GITHUB_STEP_SUMMARY" +``` + +This example uses several options after the CLI prompt: + +* `--allow-tool='shell(git:*)'` allows {% data variables.product.prodname_copilot_short %} to run Git commands to analyze the repository history. This is necessary to generate the summary of recent changes. +* `--allow-tool='write'` allows {% data variables.product.prodname_copilot_short %} to write the generated summary to a file on the runner. +* `--no-ask-user` prevents the CLI from prompting for user input, which is important when running in an automated workflow where there is no user to respond to requests for additional input. + +## Next steps + +After you confirm the workflow generates a summary of changes, you can adapt the same pattern to other automation tasks. Start by changing the prompt you pass to `copilot -p PROMPT`, then decide what you want to do with the output. For example, you could: + +* Create a pull request to update a changelog file in the repository with the day's changes. +* Email the summary to the repository maintainers. + +## Further reading + +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) +* [AUTOTITLE](/actions) +* [AUTOTITLE](/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically) diff --git a/content/copilot/how-tos/copilot-cli/automate-copilot-cli/index.md b/content/copilot/how-tos/copilot-cli/automate-copilot-cli/index.md new file mode 100644 index 000000000000..7affae6ec93d --- /dev/null +++ b/content/copilot/how-tos/copilot-cli/automate-copilot-cli/index.md @@ -0,0 +1,12 @@ +--- +title: Automate with GitHub Copilot CLI +shortTitle: Automate with Copilot CLI +intro: 'Learn how to use {% data variables.copilot.copilot_cli_short %} in the terminal, in scripts, or in Actions workflows.' +versions: + feature: copilot +contentType: how-tos +children: + - /quickstart + - /run-cli-programmatically + - /automate-with-actions +--- diff --git a/content/copilot/how-tos/copilot-cli/automate-copilot-cli/quickstart.md b/content/copilot/how-tos/copilot-cli/automate-copilot-cli/quickstart.md new file mode 100644 index 000000000000..9013e0fa8dc6 --- /dev/null +++ b/content/copilot/how-tos/copilot-cli/automate-copilot-cli/quickstart.md @@ -0,0 +1,87 @@ +--- +title: Quickstart for automating with {% data variables.copilot.copilot_cli %} +shortTitle: Quickstart +allowTitleToDifferFromFilename: true +intro: "Build an automation with {% data variables.copilot.copilot_cli_short %} in minutes." +versions: + feature: copilot +redirect_from: + - /copilot/how-tos/copilot-cli/automate-copilot-cli/overview +contentType: how-tos +category: + - Author and optimize with Copilot # Copilot discovery page + - Build with Copilot CLI # Copilot CLI bespoke page + - Quickstarts +--- + +## Overview + +You can use {% data variables.copilot.copilot_cli %} to programmatically run Copilot prompts. There are two main ways to do this: + +* Run a {% data variables.copilot.copilot_cli_short %} prompt directly from your terminal. +* Write a script or automation that leverages {% data variables.copilot.copilot_cli_short %}. + +This guide will walk you through a simple use case for each option. + +## Run a prompt from the command line + +When you want to pass {% data variables.copilot.copilot_cli_short %} a prompt without initiating an interactive session, use the `-p` flag. + +```shell copy +copilot -p "Summarize what this file does: ./README.md" +``` + +Any prompt you would type in an interactive session works with `-p`. + +## Use {% data variables.copilot.copilot_cli_short %} in a script + +The real power of programmatic mode comes from writing scripts to automate AI-powered tasks. Within a script, you can generate the prompt, or replace parts of a prompt with dynamic content, and then capture the output or pass it to another part of the script. + +Let's create a script that finds all files larger than 10 MB in the current directory, uses {% data variables.copilot.copilot_cli_short %} to generate a brief description of each file, and then emails a summary report. + +1. In your repository, create a new file called `find_large_files.sh` and add the following content. + + ```bash copy + #!/bin/bash + # Find files over 10 MB, use Copilot CLI to describe them, and email a summary + + EMAIL_TO="user@example.com" + SUBJECT="Large file found" + BODY="" + + while IFS= read -r -d '' file; do + size=$(du -h "$file" | cut -f1) + description=$(copilot -p "Describe this file briefly: $file" -s 2>/dev/null) + BODY+="File: $file"$'\n'"Size: $size"$'\n'"Description: $description"$'\n\n' + done < <(find . -type f -size +10M -print0) + + if [ -z "$BODY" ]; then + echo "No files over 10MB found." + exit 0 + fi + + echo -e "To: $EMAIL_TO\nSubject: $SUBJECT\n\n$BODY" | sendmail "$EMAIL_TO" + echo "Email sent to $EMAIL_TO with large file details." + ``` + +1. Make the script executable. + + ```shell copy + chmod +x find_large_files.sh + ``` + +1. Run the script. + + ```shell copy + ./find_large_files.sh + ``` + +This script leverages {% data variables.copilot.copilot_cli_short %} to generate descriptions of the files you are searching for, so you can quickly understand the contents of large files without opening them. + +You can also automatically trigger these scripts in response to events, such as a new file being added to a directory, or on a schedule using cron jobs or CI/CD pipelines. + +## Further reading + +* [AUTOTITLE](/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically) +* [AUTOTITLE](/copilot/how-tos/copilot-cli/automate-copilot-cli/automate-with-actions) +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-programmatic-reference) diff --git a/content/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically.md b/content/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically.md new file mode 100644 index 000000000000..35feb33747a1 --- /dev/null +++ b/content/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically.md @@ -0,0 +1,168 @@ +--- +title: Running {% data variables.copilot.copilot_cli %} programmatically +shortTitle: Run the CLI programmatically +allowTitleToDifferFromFilename: true +intro: "Use {% data variables.copilot.copilot_cli_short %} in the terminal, in scripts, or in Actions workflows." +versions: + feature: copilot +contentType: how-tos +category: + - Author and optimize with Copilot # Copilot discovery page + - Build with Copilot CLI # Copilot CLI bespoke page +--- + +## Introduction + +You can pass a prompt directly to {% data variables.copilot.copilot_cli_short %} in a single command, without entering an interactive session. This allows you to use {% data variables.product.prodname_copilot_short %} directly from the terminal, but also allows you to use the CLI programmatically in scripts, CI/CD pipelines, and automation workflows. + +To use {% data variables.copilot.copilot_cli_short %} programmatically you can do either of the following. + +* Use the `copilot` command with the `-p` or `--prompt` command-line option, followed by your prompt: + + ```shell copy + copilot -p "Explain this file: ./complex.ts" + ``` + +* Pipe a prompt to the `copilot` command: + + ```shell copy + echo "Explain this file: ./complex.ts" | copilot + ``` + + > [!NOTE] + > Piped input is ignored if you also provide a prompt with the `-p` or `--prompt` option. + +## Tips for using {% data variables.copilot.copilot_cli_short %} programmatically + +* **Provide precise prompts** — clear, unambiguous instructions produce better results than vague requests. The more context you give—file names, function names, the exact change—the less guesswork {% data variables.product.prodname_copilot_short %} has to do. +* **Quote prompts carefully** — use single quotes around your prompt if you want to avoid shell interpretation of special characters. +* **Always give minimal permissions** — use the `--allow-tool=[TOOLS...]` and `--allow-url=[URLs...]` command-line options to give {% data variables.product.prodname_copilot_short %} permission to use only the tools and access that are necessary to complete the task. Avoid using overly permissive options (such as `--allow-all`) unless you are working in a sandbox environment. +* **Use `-s` (silent)** when capturing output. This suppresses session metadata so you get clean text. +* **Use `--no-ask-user`** to prevent the agent from attempting to ask clarifying questions. +* **Set a model explicitly** with `--model` for consistent behavior across environments. + +See [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-programmatic-reference) for options that are particularly useful when running {% data variables.copilot.copilot_cli_short %} programmatically. + +## CI/CD integration + +A common use case for running {% data variables.copilot.copilot_cli_short %} programmatically is to include a CLI command in a CI/CD workflow step. + +This extract from a {% data variables.product.prodname_actions %} workflow shows a simple example of running a {% data variables.copilot.copilot_cli_short %} command. + +```yaml +# Workflow step using Copilot CLI +- name: Generate test coverage report + env: + {% raw %}COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}{% endraw %} + run: | + copilot -p "Run the test suite and produce a coverage summary" \ + -s --allow-tool='shell(npm:*), write' --no-ask-user +``` + +For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/automate-copilot-cli/automate-with-actions). + +## Examples of programmatic usage + +### Generate a commit message + +```bash copy +copilot -p 'Write a commit message in plain text for the staged changes' -s \ + --allow-tool='shell(git:*)' +``` + +### Summarize a file + +```bash copy +copilot -p 'Summarize what src/auth/login.ts does in no more than 100 words' -s +``` + +### Write tests for a module + +```bash copy +copilot -p 'Write unit tests for src/utils/validators.ts' \ + --allow-tool='write, shell(npm:*), shell(npx:*)' +``` + +### Fix lint errors + +```bash copy +copilot -p 'Fix all ESLint errors in this project' \ + --allow-tool='write, shell(npm:*), shell(npx:*), shell(git:*)' +``` + +### Explain a diff + +```bash copy +copilot -p 'Explain the changes in the latest commit on this branch and flag any potential issues' -s +``` + +### Code review a branch + +Use `/review` slash command to have the built-in `code-review` agent review the code changes on the current branch. + +```bash copy +copilot -p '/review the changes on this branch compared to main. Focus on bugs and security issues.' \ + -s --allow-tool='shell(git:*)' +``` + +### Generate documentation + +```bash copy +copilot -p 'Generate JSDoc comments for all exported functions in src/api/' \ + --allow-tool=write +``` + +### Export a session + +Save the full session transcript to a Markdown file on the local filesystem. + +```bash copy +copilot -p "Audit this project's dependencies for vulnerabilities" \ + --allow-tool='shell(npm:*), shell(npx:*)' \ + --share='./audit-report.md' +``` + +Save the session transcript to a gist on {% data variables.product.prodname_dotcom_the_website %} for easy sharing. + +```bash copy +copilot -p 'Summarize the architecture of this project' --share-gist +``` + +> [!NOTE] +> Gists are not available to {% data variables.product.prodname_emus %}, or if you use {% data variables.product.prodname_ghe_cloud %} with data residency (*.ghe.com). + +## Shell scripting patterns + +### Capture {% data variables.product.prodname_copilot_short %}'s output in a variable + +```bash copy +result=$(copilot -p 'What version of Node.js does this project require? \ + Give the number only. No other text.' -s) +echo "Required Node version: $result" +``` + +### Use in a conditional + +```bash copy +if copilot -p 'Does this project have any TypeScript errors? Reply only YES or NO.' -s \ + | grep -qi "no"; then + echo "No type errors found." +else + echo "Type errors detected." +fi +``` + +### Process multiple files + +```bash copy +for file in src/api/*.ts; do + echo "--- Reviewing $file ---" | tee -a review-results.md + copilot -p "Review $file for error handling issues" -s --allow-all-tools | tee -a review-results.md +done +``` + +## Further reading + +* [AUTOTITLE](/copilot/how-tos/copilot-cli) +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-programmatic-reference) +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options) diff --git a/content/copilot/how-tos/copilot-cli/automate-with-actions.md b/content/copilot/how-tos/copilot-cli/automate-with-actions.md deleted file mode 100644 index a344cc1e43df..000000000000 --- a/content/copilot/how-tos/copilot-cli/automate-with-actions.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -title: Automating tasks with Copilot CLI and GitHub Actions -shortTitle: Automate with Actions -intro: Integrate {% data variables.copilot.copilot_cli %} into your {% data variables.product.prodname_actions %} workflows. -product: '{% data reusables.gated-features.copilot-cli %}' -versions: - feature: copilot -contentType: how-tos -category: - - Build with Copilot CLI - - Author and optimize with Copilot ---- - -You can run {% data variables.copilot.copilot_cli %} in a {% data variables.product.prodname_actions %} workflow to automate AI-powered tasks as part of your CI/CD process. For example, you can summarize recent repository activity, generate reports, or scaffold project content. {% data variables.copilot.copilot_cli %} runs on the Actions runner like any other CLI tool, so you can install it during a job and invoke it from workflow steps. - -## Understanding the workflow - -You can define a job in a {% data variables.product.prodname_actions %} workflow that: installs {% data variables.copilot.copilot_cli_short %} on the runner, authenticates it, runs it in programmatic mode, and then handles the results. Programmatic mode is designed for scripts and automation and lets you pass a prompt non-interactively. - -Workflows can follow this pattern: -1. **Trigger**: Start the workflow on a schedule, in response to repository events, or manually. -1. **Setup**: Checkout code, set up environment. -1. **Install**: Install {% data variables.copilot.copilot_cli %} on the runner. -1. **Authenticate**: Ensure the CLI has the necessary permissions to access the repository and make changes. -1. **Run {% data variables.copilot.copilot_cli_short %}**: Invoke {% data variables.copilot.copilot_cli_short %} with a prompt describing the task you want to automate. - -The following workflow generates a daily summary of repository changes and prints the summary to the workflow logs. - -```yaml copy -name: Daily summary -on: - workflow_dispatch: - # Daily at 8:25 UTC - schedule: - - cron: '25 8 * * *' -permissions: - contents: read -jobs: - daily-summary: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: {% data reusables.actions.action-checkout %} - - - name: Set up Node.js environment - uses: {% data reusables.actions.action-setup-node %} - - - name: Install Copilot CLI - run: npm install -g @github/copilot - - - name: Run Copilot CLI - env: - {% raw %}COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}{% endraw %} - run: | - TODAY=$(date +%Y-%m-%d) - copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today ($TODAY). Include a brief description of what was changed." -``` - -## Trigger - -In this example, the workflow runs on a daily schedule and can also be triggered manually. - -`The workflow_dispatch` trigger lets you run the workflow manually from the Actions tab, which is useful when testing changes to your prompt or workflow configuration. - -The `schedule` trigger runs the workflow automatically at a specified time using cron syntax. - -```yaml copy -on: - # Allows manual triggering of this workflow. - workflow_dispatch: - # Daily at 8:30 UTC - schedule: - - cron: '30 8 * * *' -``` - -## Setup - -Set up the job so {% data variables.copilot.copilot_cli_short %} can access your repository and run on the runner. This allows {% data variables.copilot.copilot_cli_short %} to analyze the repository context, when generating the daily summary. - -The `permissions` block defines the scope granted to the built-in `GITHUB_TOKEN`. Because this workflow reads repository data and prints a summary to the logs, it requires `contents: read`. - -```yaml copy -permissions: - contents: read -jobs: - daily-summary: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: {% data reusables.actions.action-checkout %} -``` - -## Install - -Install {% data variables.copilot.copilot_cli_short %} on the runner so your workflow can invoke it as a command. You can install {% data variables.copilot.copilot_cli %} using any supported installation method. For a full list of installation options, see [AUTOTITLE](/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli). - -In this example, the workflow installs {% data variables.copilot.copilot_cli %} globally with npm. - -```yaml copy -- name: Set up Node.js environment - uses: {% data reusables.actions.action-setup-node %} - -- name: Install Copilot CLI - run: npm install -g @github/copilot -``` - -## Authenticate - -To authenticate {% data variables.copilot.copilot_cli_short %} in a workflow, create a {% data variables.product.pat_v2 %} (PAT) with the **Copilot Requests** permission. Store the PAT as a repository secret, then pass it to the CLI using an environment variable. For more information on creating a PAT for the CLI, see [Authenticating with a {% data variables.product.pat_generic %}](/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli#authenticating-with-a-personal-access-token). - -{% data variables.copilot.copilot_cli_short %} supports multiple authentication environment variables. In this example, the workflow uses `COPILOT_GITHUB_TOKEN`, which is specific to {% data variables.copilot.copilot_cli_short %} and avoids confusion for the built-in `GITHUB_TOKEN` environment variable. - -```yaml copy -- name: Run Copilot CLI - env: - {% raw %}COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}{% endraw %} -``` - - -## Run {% data variables.copilot.copilot_cli_short %} - -Run {% data variables.copilot.copilot_cli_short %} in programmatic mode when you want to use it in automation. -`copilot -p PROMPT` executes a prompt programmatically and exits when the command completes. - -In this workflow, {% data variables.copilot.copilot_cli_short %} references the repository content that is available in the job workspace. The command prints its response to standard output and the summary appears in the workflow logs. - -```yaml copy -- name: Run Copilot CLI - env: - {% raw %}COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}{% endraw %} - run: | - TODAY=$(date +%Y-%m-%d) - copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today ($TODAY). Include a brief description of what was changed." -``` - -## Next steps - -After you confirm the workflow prints a summary to the logs, you can adapt the same pattern to other automation tasks. Start by changing the prompt you pass to `copilot -p PROMPT`, then decide what you want to do with the output. - -* Write the summary to a file so later steps can use it as input. -* Post the summary as a comment on an issue or a message in a team chat. -* Summarize requests and output a draft changelog. - -## Further reading - -* [AUTOTITLE](/copilot/reference/cli-command-reference) -* [AUTOTITLE](/copilot/reference/cli-plugin-reference) - diff --git a/content/copilot/how-tos/copilot-cli/cli-best-practices.md b/content/copilot/how-tos/copilot-cli/cli-best-practices.md index b73b1490ff9f..d5e67da78429 100644 --- a/content/copilot/how-tos/copilot-cli/cli-best-practices.md +++ b/content/copilot/how-tos/copilot-cli/cli-best-practices.md @@ -496,5 +496,5 @@ Here is what you will learn: * [AUTOTITLE](/copilot/concepts/agents/about-copilot-cli) * [AUTOTITLE](/copilot/how-tos/use-copilot-agents/use-copilot-cli) -* [AUTOTITLE](/copilot/reference/cli-command-reference) +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) * [{% data variables.product.prodname_copilot_short %} plans and pricing](https://github.com/features/copilot/plans) diff --git a/content/copilot/how-tos/copilot-cli/customize-copilot/create-custom-agents-for-cli.md b/content/copilot/how-tos/copilot-cli/customize-copilot/create-custom-agents-for-cli.md index 60636e1be089..2fbb6f8c3c30 100644 --- a/content/copilot/how-tos/copilot-cli/customize-copilot/create-custom-agents-for-cli.md +++ b/content/copilot/how-tos/copilot-cli/customize-copilot/create-custom-agents-for-cli.md @@ -136,5 +136,5 @@ Each {% data variables.copilot.copilot_custom_agent_short %} is defined by a Mar * [AUTOTITLE](/copilot/concepts/agents/copilot-cli/comparing-cli-features) * [AUTOTITLE](/copilot/reference/custom-agents-configuration) -* [AUTOTITLE](/copilot/reference/cli-command-reference#custom-agents-reference) +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#custom-agents-reference) * [AUTOTITLE](/copilot/tutorials/customization-library/custom-agents)—a curated collection of examples diff --git a/content/copilot/how-tos/copilot-cli/customize-copilot/index.md b/content/copilot/how-tos/copilot-cli/customize-copilot/index.md index 04488fa17204..4111b25508f3 100644 --- a/content/copilot/how-tos/copilot-cli/customize-copilot/index.md +++ b/content/copilot/how-tos/copilot-cli/customize-copilot/index.md @@ -6,7 +6,7 @@ versions: feature: copilot contentType: how-tos children: - - /quickstart-for-customizing + - /overview - /add-custom-instructions - /use-hooks - /create-skills diff --git a/content/copilot/how-tos/copilot-cli/customize-copilot/quickstart-for-customizing.md b/content/copilot/how-tos/copilot-cli/customize-copilot/overview.md similarity index 97% rename from content/copilot/how-tos/copilot-cli/customize-copilot/quickstart-for-customizing.md rename to content/copilot/how-tos/copilot-cli/customize-copilot/overview.md index 26dec4cb4e70..775815824c7b 100644 --- a/content/copilot/how-tos/copilot-cli/customize-copilot/quickstart-for-customizing.md +++ b/content/copilot/how-tos/copilot-cli/customize-copilot/overview.md @@ -9,6 +9,8 @@ contentType: how-tos category: - Configure Copilot # Copilot discovery page - Configure Copilot CLI # Copilot CLI bespoke page +redirect_from: + - /copilot/how-tos/copilot-cli/customize-copilot/quickstart-for-customizing --- You can download and install {% data variables.copilot.copilot_cli_short %}, and start using it straight away, without any additional configuration. However, you'll find that you can improve {% data variables.product.prodname_copilot_short %}'s responses if you spend a little time providing it with guidelines and context, and giving it access to tools that are relevant to your project. This article introduces the various ways in which you can customize {% data variables.copilot.copilot_cli_short %}. diff --git a/content/copilot/how-tos/copilot-cli/index.md b/content/copilot/how-tos/copilot-cli/index.md index 27c388e84887..99b3ce8dd338 100644 --- a/content/copilot/how-tos/copilot-cli/index.md +++ b/content/copilot/how-tos/copilot-cli/index.md @@ -20,10 +20,10 @@ children: - /cli-getting-started - /cli-best-practices - /set-up-copilot-cli + - /automate-copilot-cli - /customize-copilot - /use-copilot-cli-agents - /administer-copilot-cli-for-your-enterprise - - /automate-with-actions - /speeding-up-task-completion - /content/copilot/concepts/agents/copilot-cli/about-copilot-cli - /content/copilot/concepts/agents/copilot-cli/comparing-cli-features @@ -33,26 +33,30 @@ children: - /content/copilot/concepts/agents/copilot-cli/research - /set-up-copilot-cli/install-copilot-cli - /set-up-copilot-cli/configure-copilot-cli + - /automate-copilot-cli/quickstart + - /automate-copilot-cli/automate-with-actions + - /automate-copilot-cli/run-cli-programmatically - /customize-copilot/add-custom-instructions - /customize-copilot/create-custom-agents-for-cli - /customize-copilot/create-skills - /customize-copilot/plugins-creating - /customize-copilot/plugins-finding-installing - /customize-copilot/plugins-marketplace - - /customize-copilot/quickstart-for-customizing + - /customize-copilot/overview - /customize-copilot/use-hooks - /content/copilot/concepts/agents/about-agent-skills - - /content/copilot/reference/cli-command-reference + - /content/copilot/reference/copilot-cli-reference/cli-command-reference + - /content/copilot/reference/copilot-cli-reference/cli-plugin-reference + - /content/copilot/reference/copilot-cli-reference/cli-programmatic-reference + - /content/copilot/reference/copilot-cli-reference/acp-server - /content/copilot/reference/hooks-configuration - - /content/copilot/reference/cli-plugin-reference - - /content/copilot/reference/acp-server - /content/copilot/tutorials/copilot-cli-hooks - /content/copilot/responsible-use/copilot-cli carousels: recommended: - /copilot/how-tos/copilot-cli/use-copilot-cli-agents/overview - /copilot/how-tos/copilot-cli/cli-best-practices - - /copilot/reference/cli-command-reference + - /copilot/reference/copilot-cli-reference/cli-command-reference includedCategories: - Quickstarts - Learn about Copilot CLI @@ -60,4 +64,3 @@ includedCategories: - Build with Copilot CLI - Administer Copilot CLI --- - diff --git a/content/copilot/how-tos/copilot-cli/speeding-up-task-completion.md b/content/copilot/how-tos/copilot-cli/speeding-up-task-completion.md index 24ff0ee492f5..19a108275a9e 100644 --- a/content/copilot/how-tos/copilot-cli/speeding-up-task-completion.md +++ b/content/copilot/how-tos/copilot-cli/speeding-up-task-completion.md @@ -44,4 +44,4 @@ Press Esc to exit the task list and return to the main CLI prompt. ## Further reading -* [AUTOTITLE](/copilot/reference/cli-command-reference#slash-commands-in-the-interactive-interface) +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#slash-commands-in-the-interactive-interface) diff --git a/content/copilot/how-tos/copilot-cli/use-copilot-cli-agents/overview.md b/content/copilot/how-tos/copilot-cli/use-copilot-cli-agents/overview.md index 5162d1f29528..2604fc55d4ae 100644 --- a/content/copilot/how-tos/copilot-cli/use-copilot-cli-agents/overview.md +++ b/content/copilot/how-tos/copilot-cli/use-copilot-cli-agents/overview.md @@ -299,5 +299,5 @@ You can work with agents in {% data variables.copilot.copilot_cli_short %} to su ## Further reading * [AUTOTITLE](/copilot/how-tos/copilot-cli/cli-best-practices) -* [AUTOTITLE](/copilot/reference/cli-command-reference) -* [AUTOTITLE](/copilot/reference/acp-server) +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/acp-server) diff --git a/content/copilot/reference/acp-server.md b/content/copilot/reference/copilot-cli-reference/acp-server.md similarity index 98% rename from content/copilot/reference/acp-server.md rename to content/copilot/reference/copilot-cli-reference/acp-server.md index 76daf9ce6f41..5ab1eb525a11 100644 --- a/content/copilot/reference/acp-server.md +++ b/content/copilot/reference/copilot-cli-reference/acp-server.md @@ -8,6 +8,8 @@ category: - Configure Copilot # Copilot discovery page - Configure Copilot CLI # Copilot CLI bespoke page contentType: reference +redirect_from: + - /copilot/reference/acp-server --- > [!NOTE] diff --git a/content/copilot/reference/cli-command-reference.md b/content/copilot/reference/copilot-cli-reference/cli-command-reference.md similarity index 95% rename from content/copilot/reference/cli-command-reference.md rename to content/copilot/reference/copilot-cli-reference/cli-command-reference.md index 48df2064051d..95eb5d9a72d0 100644 --- a/content/copilot/reference/cli-command-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-command-reference.md @@ -8,6 +8,8 @@ category: - Author and optimize with Copilot # Copilot discovery page - Build with Copilot CLI # Copilot CLI bespoke landing page contentType: reference +redirect_from: + - /copilot/reference/cli-command-reference --- ## Command-line commands @@ -112,39 +114,39 @@ For a complete list of available slash commands enter `/help` in the CLI's inter | Option | Purpose | |------------------------------------|------------------------------------------| | `--acp` | Start the Agent Client Protocol server. | -| `--add-dir PATH` | Add a directory to the allowed list for file access (can be used multiple times). | -| `--add-github-mcp-tool TOOL` | Add a tool to enable for the {% data variables.product.github %} MCP server, instead of the default CLI subset (can be used multiple times). Use `*` for all tools. | -| `--add-github-mcp-toolset TOOLSET` | Add a toolset to enable for the {% data variables.product.github %} MCP server, instead of the default CLI subset (can be used multiple times). Use `all` for all toolsets. | -| `--additional-mcp-config JSON` | Add an MCP server for this session only. The server configuration can be supplied as a JSON string or a file path (prefix with `@`). Augments the configuration from `~/.copilot/mcp-config.json`. Overrides any installed MCP server configuration with the same name. | -| `--agent AGENT` | Specify a {% data variables.copilot.copilot_custom_agent_short %} to use. | +| `--add-dir=PATH` | Add a directory to the allowed list for file access (can be used multiple times). | +| `--add-github-mcp-tool=TOOL` | Add a tool to enable for the {% data variables.product.github %} MCP server, instead of the default CLI subset (can be used multiple times). Use `*` for all tools. | +| `--add-github-mcp-toolset=TOOLSET` | Add a toolset to enable for the {% data variables.product.github %} MCP server, instead of the default CLI subset (can be used multiple times). Use `all` for all toolsets. | +| `--additional-mcp-config=JSON` | Add an MCP server for this session only. The server configuration can be supplied as a JSON string or a file path (prefix with `@`). Augments the configuration from `~/.copilot/mcp-config.json`. Overrides any installed MCP server configuration with the same name. | +| `--agent=AGENT` | Specify a {% data variables.copilot.copilot_custom_agent_short %} to use. | | `--allow-all` | Enable all permissions (equivalent to `--allow-all-tools --allow-all-paths --allow-all-urls`). | | `--allow-all-paths` | Disable file path verification and allow access to any path. | | `--allow-all-tools` | Allow all tools to run automatically without confirmation. Required when using the CLI programmatically (env: `COPILOT_ALLOW_ALL`). | | `--allow-all-urls` | Allow access to all URLs without confirmation. | | `--allow-tool=TOOL ...` | Tools the CLI has permission to use. Will not prompt for permission. For multiple tools, use a quoted, comma-separated list. | | `--allow-url=URL ...` | Allow access to specific URLs or domains. For multiple URLs, use a quoted, comma-separated list. | -| `--alt-screen [VALUE]` | Use the terminal alternate screen buffer (`on` or `off`). | +| `--alt-screen=VALUE` | Use the terminal alternate screen buffer (`on` or `off`). | | `--autopilot` | Enable autopilot continuation in prompt mode. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/autopilot). | | `--available-tools=TOOL ...` | Only these tools will be available to the model. For multiple tools, use a quoted, comma-separated list. | | `--banner` | Show the startup banner. | | `--bash-env` | Enable `BASH_ENV` support for bash shells. | -| `--config-dir PATH` | Set the configuration directory (default: `~/.copilot`). | +| `--config-dir=PATH` | Set the configuration directory (default: `~/.copilot`). | | `--continue` | Resume the most recent session. | | `--deny-tool=TOOL ...` | Tools the CLI does not have permission to use. Will not prompt for permission. For multiple tools, use a quoted, comma-separated list. | | `--deny-url=URL ...` | Deny access to specific URLs or domains, takes precedence over `--allow-url`. For multiple URLs, use a quoted, comma-separated list. | | `--disable-builtin-mcps` | Disable all built-in MCP servers (currently: `github-mcp-server`). | -| `--disable-mcp-server SERVER-NAME` | Disable a specific MCP server (can be used multiple times). | +| `--disable-mcp-server=SERVER-NAME` | Disable a specific MCP server (can be used multiple times). | | `--disable-parallel-tools-execution` | Disable parallel execution of tools (LLM can still make parallel tool calls, but they will be executed sequentially). | | `--disallow-temp-dir` | Prevent automatic access to the system temporary directory. | | `--enable-all-github-mcp-tools` | Enable all {% data variables.product.github %} MCP server tools, instead of the default CLI subset. Overrides the `--add-github-mcp-toolset` and `--add-github-mcp-tool` options. | | `--excluded-tools=TOOL ...` | These tools will not be available to the model. For multiple tools, use a quoted, comma-separated list. | | `--experimental` | Enable experimental features (use `--no-experimental` to disable). | | `-h`, `--help` | Display help. | -| `-i PROMPT`, `--interactive PROMPT` | Start an interactive session and automatically execute this prompt. | -| `--log-dir DIRECTORY` | Set the log file directory (default: `~/.copilot/logs/`). | -| `--log-level LEVEL` | Set the log level (choices: `none`, `error`, `warning`, `info`, `debug`, `all`, `default`). | -| `--max-autopilot-continues COUNT` | Maximum number of continuation messages in autopilot mode (default: unlimited). See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/autopilot). | -| `--model MODEL` | Set the AI model you want to use. | +| `-i PROMPT`, `--interactive=PROMPT` | Start an interactive session and automatically execute this prompt. | +| `--log-dir=DIRECTORY` | Set the log file directory (default: `~/.copilot/logs/`). | +| `--log-level=LEVEL` | Set the log level (choices: `none`, `error`, `warning`, `info`, `debug`, `all`, `default`). | +| `--max-autopilot-continues=COUNT` | Maximum number of continuation messages in autopilot mode (default: unlimited). See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/autopilot). | +| `--model=MODEL` | Set the AI model you want to use. | | `--no-alt-screen` | Disable the terminal alternate screen buffer. | | `--no-ask-user` | Disable the `ask_user` tool (the agent works autonomously without asking questions). | | `--no-auto-update` | Disable downloading CLI updates automatically. | @@ -152,15 +154,16 @@ For a complete list of available slash commands enter `/help` in the CLI's inter | `--no-color` | Disable all color output. | | `--no-custom-instructions` | Disable loading of custom instructions from `AGENTS.md` and related files. | | `--no-experimental` | Disable experimental features. | -| `--output-format FORMAT` | FORMAT can be `text` (default) or `json` (outputs JSONL: one JSON object per line). | -| `-p PROMPT`, `--prompt PROMPT` | Execute a prompt programmatically (exits after completion). | +| `--output-format=FORMAT` | FORMAT can be `text` (default) or `json` (outputs JSONL: one JSON object per line). | +| `-p PROMPT`, `--prompt=PROMPT` | Execute a prompt programmatically (exits after completion). | | `--plain-diff` | Disable rich diff rendering (syntax highlighting via the diff tool specified by your git config). | -| `--resume[=SESSION-ID]` | Resume a previous interactive session by choosing from a list (optionally specify a session ID). | +| `--resume=SESSION-ID` | Resume a previous interactive session by choosing from a list (optionally specify a session ID). | | `-s`, `--silent` | Output only the agent response (without usage statistics), useful for scripting with `-p`. | | `--screen-reader` | Enable screen reader optimizations. | -| `--share[=PATH]` | Share a session to a Markdown file after completion of a programmatic session (default path: `./copilot-session-.md`). | +| `--secret-env-vars=VAR ...` | An environment variable whose value you want redacted in output. For multiple variables, use a quoted, comma-separated list. The values in the `GITHUB_TOKEN` and `COPILOT_GITHUB_TOKEN` environment variables are redacted by default. | +| `--share=PATH` | Share a session to a Markdown file after completion of a programmatic session (default path: `./copilot-session-.md`). | | `--share-gist` | Share a session to a secret {% data variables.product.github %} gist after completion of a programmatic session. | -| `--stream MODE` | Enable or disable streaming mode (mode choices: `on` or `off`). | +| `--stream=MODE` | Enable or disable streaming mode (mode choices: `on` or `off`). | | `-v`, `--version` | Show version information. | | `--yolo` | Enable all permissions (equivalent to `--allow-all`). | @@ -261,7 +264,7 @@ Repository settings apply to everyone who works in the repository. Only a subset | `companyAnnouncements` | `string[]` | Replaced—repository takes precedence | Messages shown randomly on startup. | | `enabledPlugins` | `Record` | Merged—repository overrides user for same key | Declarative plugin auto-install. | | `extraKnownMarketplaces` | `Record` | Merged—repository overrides user for same key | Plugin marketplaces available in this repository. | -| `marketplaces` | `Record` | Merged—repository overrides user for same key | Plugin marketplaces (deprecated—use `extraKnownMarketplaces`). | +| `marketplaces` | `Record` | Merged—repository overrides user for same key | Plugin marketplaces (deprecated—use `extraKnownMarketplaces`). | ### Local settings (`.github/copilot/settings.local.json`) @@ -709,3 +712,9 @@ When content capture is enabled, the following attributes are populated. | `gen_ai.tool.definitions` | Tool schemas (JSON) | | `gen_ai.tool.call.arguments` | Tool input arguments | | `gen_ai.tool.call.result` | Tool output | + +## Further reading + +* [AUTOTITLE](/copilot/how-tos/copilot-cli) +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-plugin-reference) +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-programmatic-reference) diff --git a/content/copilot/reference/cli-plugin-reference.md b/content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md similarity index 97% rename from content/copilot/reference/cli-plugin-reference.md rename to content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md index b15ce684b1dd..5d6261a2a668 100644 --- a/content/copilot/reference/cli-plugin-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md @@ -8,6 +8,8 @@ category: - Author and optimize with Copilot # Copilot discovery page - Configure Copilot CLI # Copilot CLI bespoke page contentType: reference +redirect_from: + - /copilot/reference/cli-plugin-reference --- {% data reusables.copilot.cli-help-note %} @@ -205,3 +207,9 @@ The following diagram illustrates the loading order and precedence rules. │ 4. --additional-mcp-config flag (highest priority) │ └─────────────────────────────────────────────────────────────────────┘ ``` + +## Further reading + +* [AUTOTITLE](/copilot/how-tos/copilot-cli) +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-programmatic-reference) diff --git a/content/copilot/reference/copilot-cli-reference/cli-programmatic-reference.md b/content/copilot/reference/copilot-cli-reference/cli-programmatic-reference.md new file mode 100644 index 000000000000..4c34a92d58c4 --- /dev/null +++ b/content/copilot/reference/copilot-cli-reference/cli-programmatic-reference.md @@ -0,0 +1,158 @@ +--- +title: GitHub Copilot CLI programmatic reference +shortTitle: CLI programmatic reference +intro: 'Find options for running {% data variables.copilot.copilot_cli_short %} programmatically.' +versions: + feature: copilot +category: + - Author and optimize with Copilot # Copilot discovery page + - Configure Copilot CLI # Copilot CLI bespoke page +contentType: reference +--- + +In addition to running {% data variables.copilot.copilot_cli_short %} interactively, you can also pass a prompt directly to the CLI in a single command, without entering an interactive session. This allows you to use {% data variables.product.prodname_copilot_short %} programmatically in scripts, CI/CD pipelines, and automation workflows. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically). + +This article describes command-line options and environment variables that are particularly relevant when running {% data variables.copilot.copilot_cli_short %} programmatically. + +To see a complete list of the available options, see [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options) or enter the following command in your terminal: + +```shell copy +copilot help +``` + +## Command line options + +There are a number of command-line options that are particularly useful when running {% data variables.copilot.copilot_cli_short %} programmatically. + +| Option | Description | +|--------|-------------| +| `-p PROMPT` | Execute a prompt in non-interactive mode. The CLI runs the prompt and exits when done. | +| `-s` | Suppress stats and decoration, outputting only the agent's response. Ideal for piping output in scripts. | +| `--add-dir=DIRECTORY` | Add a directory to the allowed-paths list. This can be used multiple times to add multiple directories. Useful when the agent needs to read/write outside the current working directory. | +| `--agent=AGENT` | Specify a {% data variables.copilot.copilot_custom_agent_short %} to use. | +| `--allow-all` (or `--yolo`) | Allow the CLI all permissions. Equivalent to `--allow-all-tools --allow-all-paths --allow-all-urls`. | +| `--allow-all-paths` | Disable file-path verification entirely. Simpler alternative to `--add-dir` when path restrictions aren't needed. | +| `--allow-all-tools` | Allow every tool to run without explicit permission for each tool. | +| `--allow-all-urls` | Allow access to all URLs without explicit permission for each URL. | +| `--allow-tool=TOOL ...` | Selectively grant permission for a specific tool. For multiple tools, use a quoted, comma-separated list. | +| `--allow-url=URL ...` | Allow the agent to fetch a specific URL or domain. Useful when a workflow needs web access to known endpoints. For multiple URLs, use a quoted, comma-separated list. | +| `--deny-tool=TOOL ...` | Deny a specific tool. Useful for restricting what the agent can do in a locked-down workflow. For multiple tools, use a quoted, comma-separated list. | +| `--model=MODEL` | Choose the AI model (for example, `gpt-5.2` or `claude-sonnet-4.6`). Useful for pinning a model in reproducible workflows. See [Choosing a model](#choosing-a-model) below. | +| `--no-ask-user` | Prevent the agent from pausing to seek additional user input. | +| `--secret-env-vars=VAR ...` | An environment variable whose value you want redacted in output. For multiple variables, use a quoted, comma-separated list. Essential for preventing secrets being exposed in logs. The values in the `GITHUB_TOKEN` and `COPILOT_GITHUB_TOKEN` environment variables are redacted by default. | +| `--share=PATH` | Export the session transcript to a markdown file after non-interactive completion (defaults to `./copilot-session-.md`). Useful for auditing or archiving what the agent did. Note that session transcripts may contain sensitive information. | +| `--share-gist` | Publish the session transcript as a secret GitHub gist after completion. Convenient for sharing results from CI. Note that session transcripts may contain sensitive information. | + +## Tools for the `--allow-tool` option + +You can specify various kinds of tools with the `--allow-tool` option. + +| Kind of tool | What it controls | +|---------------|------------------| +| shell | Executing shell commands. | +| write | Creating or modifying files. | +| read | Reading files or directories. | +| url | Fetching content from a URL. | +| memory | Storing new facts to the agent's persistent memory. This does not affect using existing memories. See [AUTOTITLE](/copilot/concepts/agents/copilot-memory). | +| MCP-SERVER | Invoking tools from a specific MCP server. Use the server's configured name as the identifier—for example, `github`. See [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers). | + +### Tool filters + +The `shell`, `write`, `url`, and MCP server tool kinds allow you to specify a filter, in parentheses, to control which specific tools are allowed. + + +| Kind of tool | Example | Explanation of the example | +|------|---------|---------| +| **shell** | `shell(git:*)` | Allow all Git subcommands (`git push`, `git status`, etc.). | +| | `shell(npm test)` | Allow the exact command `npm test`. | +| **write** | `write(.github/copilot-instructions.md)` | Allow the CLI to write to this specific path. | +| | `write(README.md)` | Allow the CLI to write to any file whose path ends with `/README.md`. | +| **url** | `url(github.com)` | Allow the CLI to access HTTPS URLs on github.com. | +| | `url(http://localhost:3000)` | Allow the CLI to access the local dev server with explicit protocol and port. | +| | `url(https://*.github.com)` | Allow the CLI to access any {% data variables.product.github %} subdomain (for example, `api.github.com`). | +| | `url(https://docs.github.com/copilot/*)` | Allow access to {% data variables.product.prodname_copilot_short %} documentation at this site. | +| **MCP-SERVER** | `github(create_issue)` | Allow only the `create_issue` tool from the `github` MCP server. | + + +> [!NOTE] +> Wildcards are only supported for `shell` to match all subcommands of a specified tool, and for `url` at the start of the host name to match any subdomain, or at the end of a path to match any path suffix—as shown in the preceding table. + +## Environment variables + +You can use environment variables to configure various aspects of the CLI's behavior when running programmatically. This is particularly useful for setting configuration in CI/CD workflows or other automated environments where you may not want to specify certain options directly in the command line. + +| Variable | Description | +| --------------------- | ------------- | +| `COPILOT_ALLOW_ALL` | Set to `true` for full permissions | +| `COPILOT_MODEL` | Set the model (for example, `gpt-5.2`, `claude-sonnet-4.5`) | +| `COPILOT_HOME` | Set the directory for the CLI configuration file (`~/.copilot` by default) | +| `COPILOT_GITHUB_TOKEN`| Authentication token (highest precedence) | +| `GH_TOKEN` | Authentication token (second precedence) | +| `GITHUB_TOKEN` | Authentication token (third precedence) | + +For full details of environment variables for {% data variables.copilot.copilot_cli_short %}, use the command `copilot help environment` in your terminal. + +## Choosing a model + +When you send a prompt to {% data variables.copilot.copilot_cli_short %} in non-interactive mode, the model that the CLI uses to generate a response is shown in the response output (if the `-s`, or `--silent`, option is not used). + +You can use the `--model` option to specify which AI model the CLI should use. This allows you to choose a model that is best suited to your prompt, balancing factors like speed, cost, and capability. + +For example, for straightforward tasks, such as explaining some code or generating a summary, you might choose a fast, lower cost model such as a Claude Haiku model: + +```bash copy +copilot -p "What does this project do?" -s --model claude-haiku-4.5 +``` + +For more complex tasks that require deeper reasoning—such as debugging or refactoring code—you might choose a more powerful model, such as a GPT Codex model: + +```bash copy +copilot -p "Fix the race condition in the worker pool" \ + --model gpt-5.3-codex \ + --allow-tool='write, shell' +``` + +> [!NOTE] +> You can find the model strings for all available models in the description of the `--model` option when you enter `copilot help` in your terminal. + +Alternatively, you can set the `COPILOT_MODEL` environment variable to specify a model for the duration of the shell session. + +To persist a model selection across shell sessions, you can set the `model` key in the CLI configuration file. This file is located at `~/.copilot/config.json` (or `$COPILOT_HOME/.copilot/config.json` if you have set the `COPILOT_HOME` environment variable). Some models also allow you to set a reasoning effort level, which controls how much time the model spends thinking before responding. + +```json copy +{ + "model": "gpt-5.3-codex", + "reasoning_effort": "low" +} +``` + +> [!TIP] +> The easiest way to set a model persistently in the configuration file is with the `/model` slash command in an interactive session. The choice you make with this command is written to the configuration file. + +### Model precedence + +When determining which model to use for a given prompt, the CLI checks for model specifications in the following order of precedence (from highest to lowest): + +* Where a custom agent is used: the model specified in the custom agent definition (if any). +* The `--model` command line option. +* The `COPILOT_MODEL` environment variable. +* The `model` key in the configuration file (`~/.copilot/config.json` or `$COPILOT_HOME/.copilot/config.json`). +* The CLI's default model. + +## Using custom agents + +You can delegate work to a specialized agent by using the `--agent` option. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/create-custom-agents-for-cli). + +In this example, the `code-review` agent is used. This requires that a custom agent has been created with this name. + +```bash +copilot -p "Review the latest commit" \ + --allow-tool='shell' \ + --agent code-review +``` + +## Further reading + +* [AUTOTITLE](/copilot/how-tos/copilot-cli) +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-plugin-reference) diff --git a/content/copilot/reference/copilot-cli-reference/index.md b/content/copilot/reference/copilot-cli-reference/index.md new file mode 100644 index 000000000000..8d4f643888e0 --- /dev/null +++ b/content/copilot/reference/copilot-cli-reference/index.md @@ -0,0 +1,12 @@ +--- +title: '{% data variables.copilot.copilot_cli_short %} reference' +shortTitle: '{% data variables.copilot.copilot_cli_short %} reference' +intro: 'Find information on options and settings for {% data variables.copilot.copilot_cli_short %}.' +versions: + feature: copilot +children: + - /cli-command-reference + - /cli-plugin-reference + - /cli-programmatic-reference + - /acp-server +--- diff --git a/content/copilot/reference/custom-agents-configuration.md b/content/copilot/reference/custom-agents-configuration.md index 8379d1428710..f2f8f0df2f7e 100644 --- a/content/copilot/reference/custom-agents-configuration.md +++ b/content/copilot/reference/custom-agents-configuration.md @@ -158,5 +158,4 @@ For MCP server configurations, there is a specific processing order that ensures ## Further reading * [AUTOTITLE](/copilot/how-tos/copilot-cli) -* [AUTOTITLE](/copilot/reference/cli-command-reference#custom-agents-reference) - +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#custom-agents-reference) diff --git a/content/copilot/reference/hooks-configuration.md b/content/copilot/reference/hooks-configuration.md index b5ca01d0336e..6621bf88d326 100644 --- a/content/copilot/reference/hooks-configuration.md +++ b/content/copilot/reference/hooks-configuration.md @@ -549,3 +549,9 @@ if echo "$PROMPT" | grep -iq "production"; then echo "ALERT: Production-related prompt: $PROMPT" | mail -s "Agent Alert" team@example.com fi ``` + +## Further reading + +* [AUTOTITLE](/copilot/concepts/agents/coding-agent) +* [AUTOTITLE](/copilot/how-tos/copilot-cli) +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) diff --git a/content/copilot/reference/index.md b/content/copilot/reference/index.md index 5a14cd5f461a..e456fb0c7a7c 100644 --- a/content/copilot/reference/index.md +++ b/content/copilot/reference/index.md @@ -10,12 +10,10 @@ children: - /ai-models - /copilot-feature-matrix - /keyboard-shortcuts - - /cli-command-reference - - /cli-plugin-reference + - /copilot-cli-reference - /custom-agents-configuration - - /acp-server - - /hooks-configuration - /custom-instructions-support + - /hooks-configuration - /policy-conflicts - /copilot-allowlist-reference - /mcp-allowlist-enforcement diff --git a/src/content-pipelines/config.yml b/src/content-pipelines/config.yml index f93ed5e59d89..60cabb4efc67 100644 --- a/src/content-pipelines/config.yml +++ b/src/content-pipelines/config.yml @@ -20,9 +20,9 @@ copilot-cli: source-repo: github/copilot-agent-runtime source-path: docs/cli target-articles: - - content/copilot/reference/cli-command-reference.md - - content/copilot/reference/cli-plugin-reference.md - - content/copilot/reference/acp-server.md + - content/copilot/reference/copilot-cli-reference/cli-command-reference.md + - content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md + - content/copilot/reference/copilot-cli-reference/acp-server.md exclusions: [] content-mapping: | cli-plugin-reference.md covers only plugin-specific content. From acceeee0e08d6d749107b80138f19624707d0dff Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Thu, 12 Mar 2026 08:15:53 -0700 Subject: [PATCH 15/29] Article API: deduplicate REST response schemas and simplify curl (#60073) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../templates/rest-page.template.md | 12 +++---- src/article-api/tests/rest-transformer.ts | 32 ++++++++++++------- .../transformers/rest-transformer.ts | 25 +++++++++++++++ 3 files changed, 50 insertions(+), 19 deletions(-) diff --git a/src/article-api/templates/rest-page.template.md b/src/article-api/templates/rest-page.template.md index 73e7e4311149..b1fb09d29ad0 100644 --- a/src/article-api/templates/rest-page.template.md +++ b/src/article-api/templates/rest-page.template.md @@ -4,6 +4,9 @@ {{ manualContent }} +> [!NOTE] +> Most endpoints use `Authorization: Bearer ` and `Accept: application/vnd.github+json` headers{% if apiVersion %}, plus `X-GitHub-Api-Version: {{ apiVersion }}`{% endif %}. Curl examples below omit these standard headers for brevity. + {% for operation in restOperations %} ## {{ operation.title }} @@ -81,13 +84,8 @@ ```curl curl -L \ -X {{ operation.verb | upcase }} \ - {{ example.request.url }} \ -{%- if example.request.acceptHeader %} - -H "Accept: {{ example.request.acceptHeader }}" \ -{%- endif %} - -H "Authorization: Bearer "{% if apiVersion %} \ - -H "X-GitHub-Api-Version: {{ apiVersion }}"{% endif -%} -{%- if example.request.bodyParameters %} \ + {{ example.request.url }}{% if example.request.acceptHeader and example.request.acceptHeader != 'application/vnd.github+json' and example.request.acceptHeader != 'application/vnd.github.v3+json' %} \ + -H "Accept: {{ example.request.acceptHeader }}"{% endif %}{% if example.request.bodyParameters %} \ -d '{{ example.request.bodyParameters }}'{% endif %} ``` diff --git a/src/article-api/tests/rest-transformer.ts b/src/article-api/tests/rest-transformer.ts index 928b26a3e26c..cee19cf3a62c 100644 --- a/src/article-api/tests/rest-transformer.ts +++ b/src/article-api/tests/rest-transformer.ts @@ -113,25 +113,33 @@ describe('REST transformer', () => { expect(res.body).toContain('```curl') expect(res.body).toContain('curl -L \\') expect(res.body).toContain('-X GET \\') - expect(res.body).toContain('https://api.github.com/repos/OWNER/REPO/actions/artifacts \\') - expect(res.body).toContain('-H "Accept: application/vnd.github.v3+json" \\') - expect(res.body).toContain('-H "Authorization: Bearer "') + expect(res.body).toContain('https://api.github.com/repos/OWNER/REPO/actions/artifacts') }) - test('Code examples include X-GitHub-Api-Version header by default', async () => { + test('Authentication note is included at top of page', async () => { const res = await get(makeURL('/en/rest/actions/artifacts')) expect(res.statusCode).toBe(200) - // Check for API version header in curl example - expect(res.body).toContain('-H "X-GitHub-Api-Version: 2026-03-10"') + // Check that auth note is at the top using [!NOTE] syntax + expect(res.body).toContain('[!NOTE]') + expect(res.body).toContain('Authorization: Bearer ') + expect(res.body).toContain('application/vnd.github+json') }) - test('Code examples include specified API version', async () => { + test('API version is mentioned in auth note', async () => { + const res = await get(makeURL('/en/rest/actions/artifacts')) + expect(res.statusCode).toBe(200) + + // Check for API version in the auth note (any valid date format) + expect(res.body).toMatch(/X-GitHub-Api-Version: \d{4}-\d{2}-\d{2}/) + }) + + test('Code examples include specified API version in auth note', async () => { const res = await get(makeURL('/en/rest/actions/artifacts', '2022-11-28')) expect(res.statusCode).toBe(200) - // Check for the specified API version header - expect(res.body).toContain('-H "X-GitHub-Api-Version: 2022-11-28"') + // Check for the specified API version in auth note + expect(res.body).toContain('X-GitHub-Api-Version: 2022-11-28') }) test('Liquid tags are rendered in intro', async () => { @@ -224,7 +232,7 @@ describe('REST transformer', () => { const res = await get(makeURL('/en/rest/actions/artifacts', '2022-11-28')) expect(res.statusCode).toBe(200) - expect(res.body).toContain('-H "X-GitHub-Api-Version: 2022-11-28"') + expect(res.body).toContain('X-GitHub-Api-Version: 2022-11-28') }) test('Missing apiVersion defaults to latest', async () => { @@ -232,8 +240,8 @@ describe('REST transformer', () => { const res = await get(makeURL('/en/rest/actions/artifacts')) expect(res.statusCode).toBe(200) - // Should include the default API version header - expect(res.body).toContain('-H "X-GitHub-Api-Version: 2026-03-10"') + // Should include the default API version in auth note (any valid date format) + expect(res.body).toMatch(/X-GitHub-Api-Version: \d{4}-\d{2}-\d{2}/) }) test('Multiple operations on a page are all rendered', async () => { diff --git a/src/article-api/transformers/rest-transformer.ts b/src/article-api/transformers/rest-transformer.ts index ee279da11bb9..cd44543973a8 100644 --- a/src/article-api/transformers/rest-transformer.ts +++ b/src/article-api/transformers/rest-transformer.ts @@ -6,6 +6,7 @@ import { loadTemplate } from '@/article-api/lib/load-template' import { summarizeSchema } from '@/article-api/lib/summarize-schema' import matter from '@gr2m/gray-matter' import { fastTextOnly } from '@/content-render/unified/text-only' +import GithubSlugger from 'github-slugger' const DEBUG = process.env.RUNNER_DEBUG === '1' || process.env.DEBUG === '1' @@ -134,6 +135,30 @@ export class RestTransformer implements PageTransformer { operations.map(async (operation) => await this.prepareOperation(operation)), ) + // Deduplicate identical response schemas across operations on the same page. + // When multiple endpoints share the same schema, render it once and reference it. + const slugger = new GithubSlugger() + const titleToSlug = new Map() + for (const op of preparedOperations) { + titleToSlug.set(op.title, slugger.slug(op.title)) + } + const schemaMap = new Map() + for (const op of preparedOperations) { + if (!op.codeExamples) continue + for (const example of op.codeExamples as any[]) { + const schema = example.response?.schema + if (!schema || typeof schema !== 'string') continue + + const existing = schemaMap.get(schema) + if (existing && existing !== op.title) { + const slug = titleToSlug.get(existing) || '' + example.response.schema = `Same response schema as [${existing}](#${slug}).` + } else if (!existing) { + schemaMap.set(schema, op.title) + } + } + } + return { page: { title: page.title, From 267b25bb5a9263b61719c9963e51c11d96da67bb Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Thu, 12 Mar 2026 15:19:19 +0000 Subject: [PATCH 16/29] docs(actions): Add OIDC repository custom properties claims (Public Preview) (#60122) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Steve-Glass <84886334+Steve-Glass@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: hubwriter --- .../help/actions/actions-oidc-settings.png | Bin 0 -> 383547 bytes .../concepts/security/openid-connect.md | 47 +++++++++++- content/actions/reference/security/oidc.md | 72 ++++++++++++++++++ data/features/oidc-custom-properties.yml | 3 + 4 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 assets/images/help/actions/actions-oidc-settings.png create mode 100644 data/features/oidc-custom-properties.yml diff --git a/assets/images/help/actions/actions-oidc-settings.png b/assets/images/help/actions/actions-oidc-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..5bfd4d4a94a1a949563377da6f0996f8d8d4e679 GIT binary patch literal 383547 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�$D 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�Fy1l9%39Pye^ZjbMkuAUBB(T* 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 ld+7f+xorO*#uBm5Gk1pF_voMa|9c^QtY`E9b? [!NOTE] +> This feature is currently in public preview and is subject to change. + +Organization and enterprise admins can include repository custom properties as claims in OIDC tokens. Once added, every repository in the organization or enterprise that has a value set for that custom property will automatically include it in its OIDC tokens, prefixed with `repo_property_`. + +This allows you to create granular access policies that bind directly to your repository metadata, reducing configuration drift and eliminating the need to duplicate governance information across multiple systems. + +### Prerequisites + +* Custom properties must already be defined at the organization or enterprise level. +* You must be an organization admin or enterprise admin. + +### Adding a custom property to OIDC token claims + +To include a custom property in OIDC tokens, use the REST API or the settings UI for your organization or enterprise. + +**Using the settings UI:** Navigate to your organization or enterprise's Actions OIDC settings page to view and manage which custom properties are included in OIDC tokens. + +![Screenshot of the OIDC settings for an organization or enterprise.](/assets/images/help/actions/actions-oidc-settings.png) + + +* **Using the REST API:** Send a `POST` request to add a custom property to the OIDC token claims for your organization: + +### Example OIDC token with a custom property + +The following example shows an OIDC token that includes the `workspace_id` custom property: + +```json +{ + "sub": "repo:my-org/my-repo:ref:refs/heads/main", + "aud": "https://github.com/my-org", + "repository": "my-org/my-repo", + "repo_property_workspace_id": "ws-abc123" +} +``` + +You can use the `repo_property_*` claims in your cloud provider's trust conditions to create flexible, attribute-based access control policies. For more information, see [AUTOTITLE](/actions/reference/openid-connect-reference#including-repository-custom-properties-in-oidc-tokens). + +{% endif %} + ## OIDC support for {% data variables.product.prodname_dependabot %} {% data variables.product.prodname_dependabot %} can use OIDC to authenticate with private registries, eliminating the need to store long-lived credentials as repository secrets. With OIDC-based authentication, {% data variables.product.prodname_dependabot %} update jobs can dynamically obtain short-lived credentials from your cloud identity provider. diff --git a/content/actions/reference/security/oidc.md b/content/actions/reference/security/oidc.md index b5a6b5f904ec..7566adc7c384 100644 --- a/content/actions/reference/security/oidc.md +++ b/content/actions/reference/security/oidc.md @@ -68,6 +68,9 @@ The OIDC token includes the following claims. | `repository_id`| The ID of the repository from where the workflow is running. | | `repository_owner`| The name of the organization in which the `repository` is stored. | | `repository_owner_id`| The ID of the organization in which the `repository` is stored. | +| {% ifversion oidc-custom-properties %} | +| `repo_property_*`| Custom properties defined at the organization or enterprise level that are included as claims in the OIDC token, prefixed with `repo_property_`. For more information, see [AUTOTITLE](#including-repository-custom-properties-in-oidc-tokens). | +| {% endif %} | | `run_id`| The ID of the workflow run that triggered the workflow. | | `run_number`| The number of times this workflow has been run. | | `run_attempt`| The number of times this workflow run has been retried. | @@ -177,6 +180,9 @@ You can security harden your OIDC configuration by customizing the claims that a * You can customize values for {% ifversion ghec %}`issuer` or {% endif %}`audience` claims. See {% ifversion ghec %}[Customizing the `issuer` value for an enterprise](#customizing-the-issuer-value-for-an-enterprise) and {% endif %}[Customizing the `audience` value](#customizing-the-audience-value). * You can customize the format of your OIDC configuration by setting conditions on the subject (`sub`) claim that require JWT tokens to originate from a specific repository, reusable workflow, or other source. * You can define granular OIDC policies by using additional OIDC token claims, such as `repository_id` and `repository_visibility`. See [AUTOTITLE](/actions/concepts/security/openid-connect#understanding-the-oidc-token). +{% ifversion oidc-custom-properties %} +* You can include repository custom properties as claims in OIDC tokens, enabling attribute-based access control policies. See [AUTOTITLE](#including-repository-custom-properties-in-oidc-tokens). +{% endif %} ### Customizing the `audience` value @@ -214,6 +220,52 @@ After this setting is applied, the JWT will contain the updated `iss` value. In {% endif %} +{% ifversion oidc-custom-properties %} + +### Including repository custom properties in OIDC tokens + +> [!NOTE] +> This feature is currently in public preview and is subject to change. + +Organization and enterprise admins can select repository custom properties to include as claims in Actions OIDC tokens. Once a custom property is added to the OIDC configuration, every repository in the organization or enterprise that has a value set for that property will automatically include it in its OIDC tokens. The property name appears in the token prefixed with `repo_property_`. + +This allows you to create attribute-based access control (ABAC) policies in your cloud provider that bind directly to your repository metadata, reducing configuration drift and eliminating the need to manage separate access configuration for each repository. + +#### Prerequisites for including custom properties + +* Custom properties must already be defined at the organization or enterprise level. +* You must be an organization admin or enterprise admin. +* After adding a custom property to the OIDC configuration, all repositories in the organization or enterprise that have a value set for that property will automatically include it in their OIDC tokens. + +#### Adding a custom property to OIDC token claims + +You can manage which custom properties are included in OIDC tokens using the settings UI or the REST API. + +* **Using the settings UI:** + + Navigate to your organization's or enterprise's Actions OIDC settings to view and configure which custom properties are included in OIDC tokens. + +* **Using the REST API:** + + To add a custom property to your organization's OIDC token claims, send a `POST` request to: + +#### Example token with a custom property + +After a custom property is added to the OIDC configuration, repositories with a value set for that property will include it in their tokens. In the following example, the `workspace_id` custom property appears as `repo_property_workspace_id` in the token: + +```json +{ + "sub": "repo:my-org/my-repo:ref:refs/heads/main", + "aud": "https://github.com/my-org", + "repository": "my-org/my-repo", + "repo_property_workspace_id": "ws-abc123" +} +``` + +You can use these `repo_property_*` claims as conditions in your cloud provider's trust policy. For an example, see [Example: Filtering on a repository custom property](#example-filtering-on-a-repository-custom-property). + +{% endif %} + ### Customizing the subject claims for an organization or repository To help improve security, compliance, and standardization, you can customize the standard claims to suit your required access conditions. If your cloud provider supports conditions on subject claims, you can create a condition that checks whether the `sub` value matches the path of the reusable workflow, such as `"job_workflow_ref:octo-org/octo-automation/.github/workflows/oidc.yml@refs/heads/main"`. The exact format will vary depending on your cloud provider's OIDC configuration. To configure the matching condition on {% data variables.product.prodname_dotcom %}, you can use the REST API to require that the `sub` claim must always include a specific custom claim, such as `job_workflow_ref`. You can use the REST API to apply a customization template for the OIDC subject claim; for example, you can require that the `sub` claim within the OIDC token must always include a specific custom claim, such as `job_workflow_ref`. For more information, see [AUTOTITLE](/rest/actions/oidc). @@ -368,6 +420,26 @@ This example demonstrates how to handle context value with `:`. For example, whe In your cloud provider's OIDC configuration, configure the `sub` condition to require that claims must include a specific value for `environment` and `repository_owner`. For example: `"sub": "environment:production%3Aeastus:repository_owner:octo-org"`. {% endif %} +{% ifversion oidc-custom-properties %} + +#### Example: Filtering on a repository custom property + +This example template allows the `sub` claim to include a repository custom property claim. Custom properties included in OIDC tokens appear prefixed with `repo_property_` in the token, but the `include_claim_keys` value uses the full claim name as it appears in the token. + +{% data reusables.actions.use-request-body-api %} + +```json +{ + "include_claim_keys": [ + "repo_property_workspace_id" + ] +} +``` + +In your cloud provider's OIDC configuration, configure the `sub` condition to require that claims must include a specific value for `repo_property_workspace_id`. For example: `"sub": "repo_property_workspace_id:ws-abc123"`. + +{% endif %} + #### Resetting organization template customizations This example template resets the subject claims to the default format. This template effectively opts out of any organization-level customization policy. diff --git a/data/features/oidc-custom-properties.yml b/data/features/oidc-custom-properties.yml new file mode 100644 index 000000000000..14ba8f5e2d5b --- /dev/null +++ b/data/features/oidc-custom-properties.yml @@ -0,0 +1,3 @@ +versions: + fpt: '*' + ghec: '*' From e1e311c18ac1a6c67c8bd655acd502c8f9b410a4 Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Thu, 12 Mar 2026 08:16:10 -0700 Subject: [PATCH 17/29] Fix REST API broken anchor and skip auto-generated page anchor checks (#60169) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- content/rest/git/blobs.md | 2 +- src/links/scripts/check-links-internal.ts | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/content/rest/git/blobs.md b/content/rest/git/blobs.md index 07463e62c8e7..ed4dda17dbf7 100644 --- a/content/rest/git/blobs.md +++ b/content/rest/git/blobs.md @@ -15,6 +15,6 @@ autogenerated: rest ## About Git blobs A Git blob (binary large object) is the object type used to store the contents of each file in a repository. The file's SHA-1 hash is computed and stored in the blob object. These endpoints allow you to read and write [blob objects](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects) -to your Git database on {% data variables.product.github %}. Blobs leverage [these custom media types](#custom-media-types-for-blobs). For more information about the use of media types in the API, see [AUTOTITLE](/rest/overview/media-types). +to your Git database on {% data variables.product.github %}. Blobs leverage custom media types. For more information about the use of media types in the API, see [AUTOTITLE](/rest/overview/media-types). diff --git a/src/links/scripts/check-links-internal.ts b/src/links/scripts/check-links-internal.ts index a7a1b9c0da28..54e3aa8f5882 100644 --- a/src/links/scripts/check-links-internal.ts +++ b/src/links/scripts/check-links-internal.ts @@ -101,6 +101,14 @@ async function checkAnchorsOnPage( ): Promise { const brokenAnchors: BrokenLink[] = [] + // Skip anchor checking on auto-generated pages (e.g., REST, GraphQL, webhooks). + // These pages have headings generated from OpenAPI/schema data at render time + // by transformers that aren't run during link checking, so same-page anchor + // links to those headings would always appear broken. + if (page.autogenerated) { + return brokenAnchors + } + try { const html = await renderContent(page.markdown, context) const $ = load(html) From ca626ff8cf1231bcc855bb7e28e22265b972131a Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Thu, 12 Mar 2026 09:18:29 -0700 Subject: [PATCH 18/29] Fix broken external links and add false positives to exclusion list (#60166) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../configure-custom-protection-rules.md | 1 - .../using-webhooks-with-github-apps.md | 2 +- .../building-ci-checks-with-a-github-app.md | 4 ++-- .../filtering-alerts-in-security-overview.md | 2 +- .../how-tos/chat-with-copilot/chat-in-ide.md | 2 +- content/rest/guides/delivering-deployments.md | 6 ++--- .../rest/guides/rendering-data-as-graphs.md | 2 +- ...-against-modern-slavery-and-child-labor.md | 2 +- src/links/lib/excluded-links.yml | 23 +++++++++++++++++++ 9 files changed, 33 insertions(+), 11 deletions(-) diff --git a/content/actions/how-tos/deploy/configure-and-manage-deployments/configure-custom-protection-rules.md b/content/actions/how-tos/deploy/configure-and-manage-deployments/configure-custom-protection-rules.md index 64b82d53c0ad..01ea3a559f5b 100644 --- a/content/actions/how-tos/deploy/configure-and-manage-deployments/configure-custom-protection-rules.md +++ b/content/actions/how-tos/deploy/configure-and-manage-deployments/configure-custom-protection-rules.md @@ -37,7 +37,6 @@ The following is a list of official partner implementations for deployment prote * Honeycomb: you can define thresholds to reject or approve deployments based on data you are sending to Honeycomb. For more information, see [the Honeycomb app](https://github.com/apps/honeycomb-io) in the {% data variables.product.prodname_marketplace %}. * New Relic: for more information, see [the New Relic app](https://github.com/apps/new-relic-gate) in the {% data variables.product.prodname_marketplace %}. * NCM NodeSource: for more information, see [the NCM NodeSource app](https://github.com/apps/ncm-nodesource) in the {% data variables.product.prodname_marketplace %}. -* Sentry: for more information, see [the Sentry Deployment Gate app](https://github.com/apps/sentry-deployment-gate) in the {% data variables.product.prodname_marketplace %}. * ServiceNow: for more information, see [GitHub integration with DevOps Change Velocity](https://www.servicenow.com/docs/bundle/utah-devops/page/product/enterprise-dev-ops/concept/github-integration-dev-ops.html) in the ServiceNow documentation. ## Prerequisites diff --git a/content/apps/creating-github-apps/registering-a-github-app/using-webhooks-with-github-apps.md b/content/apps/creating-github-apps/registering-a-github-app/using-webhooks-with-github-apps.md index bc4d00d955f9..a489202efcda 100644 --- a/content/apps/creating-github-apps/registering-a-github-app/using-webhooks-with-github-apps.md +++ b/content/apps/creating-github-apps/registering-a-github-app/using-webhooks-with-github-apps.md @@ -31,7 +31,7 @@ When you activate webhooks for your {% data variables.product.prodname_github_ap ### Choosing a webhook URL for development and testing -While you develop and test your app, you can use a webhook payload delivery service like [Smee](https://smee.io/) to capture and forward webhook payloads to your local development environment. Never use Smee for an application in production, because Smee channels are not authenticated or secure. Alternatively, you can use a tool like [ngrok](https://ngrok.com/docs/guides/developer-preview/getting-started/), [localtunnel](https://localtunnel.github.io/www/), or the [Hookdeck Console](https://console.hookdeck.com?provider=github) that exposes your local machine to the internet to receive the payloads. +While you develop and test your app, you can use a webhook payload delivery service like [Smee](https://smee.io/) to capture and forward webhook payloads to your local development environment. Never use Smee for an application in production, because Smee channels are not authenticated or secure. Alternatively, you can use a tool like [ngrok](https://ngrok.com/docs/getting-started/), [localtunnel](https://localtunnel.github.io/www/), or the [Hookdeck Console](https://console.hookdeck.com?provider=github) that exposes your local machine to the internet to receive the payloads. #### Creating a webhook URL with Smee diff --git a/content/apps/creating-github-apps/writing-code-for-a-github-app/building-ci-checks-with-a-github-app.md b/content/apps/creating-github-apps/writing-code-for-a-github-app/building-ci-checks-with-a-github-app.md index a6a5431e644a..b3b15b766520 100644 --- a/content/apps/creating-github-apps/writing-code-for-a-github-app/building-ci-checks-with-a-github-app.md +++ b/content/apps/creating-github-apps/writing-code-for-a-github-app/building-ci-checks-with-a-github-app.md @@ -902,7 +902,7 @@ The code above gets the full repository name and the head SHA of the commit from ## Step 2.3. Run RuboCop -So far, your code clones the repository and creates check runs using your CI server. Now you'll get into the details of the [RuboCop linter](https://docs.rubocop.org/rubocop/usage/basic_usage.html#code-style-checker) and [checks annotations](/rest/checks/runs#create-a-check-run). +So far, your code clones the repository and creates check runs using your CI server. Now you'll get into the details of the [RuboCop linter](https://docs.rubocop.org/rubocop/latest/usage/getting_started.html) and [checks annotations](/rest/checks/runs#create-a-check-run). First, you'll add code to run RuboCop and save the style code errors in JSON format. @@ -1144,7 +1144,7 @@ The following steps will show you how to test that the code works and view the C So far you've created a CI test. In this section, you'll add one more feature that uses RuboCop to automatically fix the errors it finds. You already added the "Fix this" button in [Step 2.5. Update the check run with CI test results](#step-25-update-the-check-run-with-ci-test-results). Now you'll add the code to handle the `requested_action` check run event that's triggered when someone clicks the "Fix this" button. -The RuboCop tool offers the `--auto-correct` command-line option to automatically fix the errors it finds. For more information, see [Autocorrecting offenses](https://docs.rubocop.org/rubocop/usage/basic_usage.html#autocorrecting-offenses) in the RuboCop documentation. When you use the `--auto-correct` feature, the updates are applied to the local files on the server. You'll need to push the changes to {% data variables.product.prodname_dotcom %} after RuboCop makes the fixes. +The RuboCop tool offers the `--auto-correct` command-line option to automatically fix the errors it finds. For more information, see [Autocorrecting offenses](https://docs.rubocop.org/rubocop/latest/usage/autocorrect.html) in the RuboCop documentation. When you use the `--auto-correct` feature, the updates are applied to the local files on the server. You'll need to push the changes to {% data variables.product.prodname_dotcom %} after RuboCop makes the fixes. To push to a repository, your app must have write permissions for "Contents" in a repository. You already set that permission to **Read & write** back in [Step 2.2. Allow RuboCop to clone the test repository](#step-22-allow-rubocop-to-clone-the-test-repository). diff --git a/content/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/filtering-alerts-in-security-overview.md b/content/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/filtering-alerts-in-security-overview.md index 1d5ef12c875a..ed6394fdd7d9 100644 --- a/content/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/filtering-alerts-in-security-overview.md +++ b/content/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/filtering-alerts-in-security-overview.md @@ -52,7 +52,7 @@ All security views have features to help you define filters. These provide an ea ## Applying simple filters -1. In security overview, select the view of your choice on the left navigation panel. For instructions about how to access security overview, see [Accessing security overview for your organization](#accessing-ecurity-overview-for-your-organization) or [Accessing security overview for your enterprise](#accessing-ecurity-overview-for-your-enterprise). +1. In security overview, select the view of your choice on the left navigation panel. For instructions about how to access security overview, see [Accessing security overview for your organization](#accessing-security-overview-for-your-organization) or [Accessing security overview for your enterprise](#accessing-security-overview-for-your-enterprise). 1. Click in the box adjacent to the **{% octicon "filter" aria-hidden="true" aria-label="filter" %} Filter** control. If there is text in the box, delete it. A popup shows available filters for the current view. 1. Select a filter and a value for the filter. 1. Press Enter. diff --git a/content/copilot/how-tos/chat-with-copilot/chat-in-ide.md b/content/copilot/how-tos/chat-with-copilot/chat-in-ide.md index c34ecc34aace..a8dcbc5bc260 100644 --- a/content/copilot/how-tos/chat-with-copilot/chat-in-ide.md +++ b/content/copilot/how-tos/chat-with-copilot/chat-in-ide.md @@ -232,7 +232,7 @@ To leave feedback about the {% data variables.copilot.copilot_chat %} extension, ## Further reading * [AUTOTITLE](/copilot/using-github-copilot/prompt-engineering-for-github-copilot) -* [Using {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/docs/copilot/copilot-chat) and [Getting started with {% data variables.copilot.copilot_chat %} in {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/docs/copilot/getting-started-chat) in the {% data variables.product.prodname_vscode %} documentation +* [Using {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/docs/copilot/copilot-chat) and [Getting started with {% data variables.product.prodname_copilot %} in {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/docs/copilot/getting-started) in the {% data variables.product.prodname_vscode %} documentation * [AUTOTITLE](/copilot/github-copilot-enterprise/copilot-chat-in-github/using-github-copilot-chat-in-githubcom) * [AUTOTITLE](/copilot/github-copilot-chat/about-github-copilot-chat) * [AUTOTITLE](/free-pro-team@latest/site-policy/github-terms/github-terms-for-additional-products-and-features#github-copilot) diff --git a/content/rest/guides/delivering-deployments.md b/content/rest/guides/delivering-deployments.md index 5fadf4973616..4342f0a924f2 100644 --- a/content/rest/guides/delivering-deployments.md +++ b/content/rest/guides/delivering-deployments.md @@ -173,14 +173,14 @@ After the deployment is finished, we set the status to `success`. ## Conclusion -At GitHub, we've used a version of [Heaven](https://github.com/atmos/heaven) to manage +At GitHub, we've used a version of `Heaven` to manage our deployments for years. A common flow is essentially the same as the server we've built above: * Wait for a response on the state of the CI checks (success or failure) * If the required checks succeed, merge the pull request -* Heaven takes the merged code, and deploys it to staging and production servers -* In the meantime, Heaven also notifies everyone about the build, via [Hubot](https://github.com/github/hubot) sitting in our chat rooms +* `Heaven` takes the merged code, and deploys it to staging and production servers +* In the meantime, `Heaven` also notifies everyone about the build, via [Hubot](https://github.com/github/hubot) sitting in our chat rooms That's it! You don't need to build your own deployment setup to use this example. You can always rely on [GitHub integrations](https://github.com/integrations). diff --git a/content/rest/guides/rendering-data-as-graphs.md b/content/rest/guides/rendering-data-as-graphs.md index 93ff3d396f65..463586f1dae2 100644 --- a/content/rest/guides/rendering-data-as-graphs.md +++ b/content/rest/guides/rendering-data-as-graphs.md @@ -26,7 +26,7 @@ Let's jump right in! First, [register a new application](https://github.com/settings/applications/new) on {% data variables.product.github %}. Set the main and callback URLs to `http://localhost:4567/`. As [before](/apps/oauth-apps/building-oauth-apps/authenticating-to-the-rest-api-with-an-oauth-app), we're going to handle authentication for the API by -implementing a Rack middleware using [sinatra-auth-github](https://github.com/atmos/sinatra_auth_github): +implementing a Rack middleware using [sinatra-auth-github](https://rubygems.org/gems/sinatra_auth_github): ``` ruby require 'sinatra/auth/github' diff --git a/content/site-policy/github-company-policies/github-statement-against-modern-slavery-and-child-labor.md b/content/site-policy/github-company-policies/github-statement-against-modern-slavery-and-child-labor.md index 7d10679733e6..548ea6476735 100644 --- a/content/site-policy/github-company-policies/github-statement-against-modern-slavery-and-child-labor.md +++ b/content/site-policy/github-company-policies/github-statement-against-modern-slavery-and-child-labor.md @@ -15,7 +15,7 @@ According to the International Labour Organization (ILO), [40 million people wer GitHub deplores the presence and persistence of modern slavery and child labor, and takes seriously its responsibility to ensure that neither modern slavery nor child labor takes place in its supply chain or in any part of its business. ("Modern slavery" in this statement refers to slavery, forced or compulsory labor, trafficking, servitude, and workers who are imprisoned, indentured, or bonded. "Child labor" refers to work performed by someone under 16 years of age, or under 14 for light work, provided it is not confined to periods that interfere with the child's schooling and not in conditions that interfere with the child's health or well-being.) -In accordance with the [UK Modern Slavery Act](https://www.legislation.gov.uk/ukpga/2015/30/section/54/enacted), and in alignment with the [ILO 2014 Protocol to its Forced Labour Convention](https://www.ilo.org/dyn/normlex/en/f?p=NORMLEXPUB:12100:0::NO::P12100_ILO_CODE:P029), [ILO Declaration on Fundamental Principles and Rights at Work](https://www.ilo.org/ilo-declaration-fundamental-principles-and-rights-work), and [United Nations Sustainable Development Goals target 8.7](https://www.unodc.org/roseap/en/sustainable-development-goals.html#:~:text=Target%208.7%20%2D%20Take%20immediate%20and,labour%20in%20all%20its%20forms), this 2018 Statement Against Modern Slavery and Child Labor ("the Statement") describes the steps GitHub has taken to prevent modern slavery and child labor from occurring in its business or supply chain. +In accordance with the [UK Modern Slavery Act](https://www.legislation.gov.uk/ukpga/2015/30/section/54/enacted), and in alignment with the [ILO 2014 Protocol to its Forced Labour Convention](https://www.ilo.org/dyn/normlex/en/f?p=NORMLEXPUB:12100:0::NO::P12100_ILO_CODE:P029), [ILO Declaration on Fundamental Principles and Rights at Work](https://www.ilo.org/ilo-declaration-fundamental-principles-and-rights-work), and [United Nations Sustainable Development Goals target 8.7](https://sdgs.un.org/goals/goal8), this 2018 Statement Against Modern Slavery and Child Labor ("the Statement") describes the steps GitHub has taken to prevent modern slavery and child labor from occurring in its business or supply chain. ## GitHub's structure, business, and supply chains diff --git a/src/links/lib/excluded-links.yml b/src/links/lib/excluded-links.yml index f606031cd003..e51881630d9a 100644 --- a/src/links/lib/excluded-links.yml +++ b/src/links/lib/excluded-links.yml @@ -113,6 +113,29 @@ - is: https://mywiki.wooledge.org/BashPitfalls - startsWith: https://code.visualstudio.com/docs/configure/telemetry +# AppSource blocks automated link checkers with 403. +- startsWith: https://appsource.microsoft.com + +# gist.github.com search can return transient 500 errors. +- startsWith: https://gist.github.com/search + +# enterprise.github.com returns transient errors. Many paths are used +# across docs (/contact, /download, /releases, /login, /license, /support, /trial). +- startsWith: https://enterprise.github.com/releases +- startsWith: https://enterprise.github.com/contact +- startsWith: https://enterprise.github.com/download +- startsWith: https://enterprise.github.com/login +- startsWith: https://enterprise.github.com/license +- startsWith: https://enterprise.github.com/support +- startsWith: https://enterprise.github.com/trial + +# developer.github.com can return transient 503 errors. +- startsWith: https://developer.github.com/changes/ +- startsWith: https://developer.github.com/enterprise/ + +# ed25519.cr.yp.to has intermittent connectivity issues. +- is: https://ed25519.cr.yp.to + # npmjs.com blocks automated link checkers with 403. - startsWith: https://www.npmjs.com From 255375fe5975b699eab87d6aefa8b4f192385154 Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Thu, 12 Mar 2026 09:18:42 -0700 Subject: [PATCH 19/29] Fix broken internal links: anchors, stale paths, and unversioned links (#60167) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- content/README.md | 3 +-- .../workflows-and-actions/events-that-trigger-workflows.md | 2 +- .../configuring-scim-provisioning-for-users.md | 2 +- .../troubleshooting-resource-allocation-problems.md | 2 +- .../concepts/code-scanning/codeql/codeql-query-packs.md | 2 +- .../scan-from-the-command-line/publish-and-use-packs.md | 3 +-- .../configuring-access-to-private-registries-for-dependabot.md | 2 +- .../reference/code-scanning/workflow-configuration-options.md | 2 +- .../customizing-analysis-with-codeql-packs.md | 2 +- .../contributing/style-guide-and-content-model/style-guide.md | 2 +- .../writing-for-github-docs/using-yaml-frontmatter.md | 3 +-- ...ing-security-and-analysis-settings-for-your-organization.md | 2 +- content/rest/authentication/authenticating-to-the-rest-api.md | 2 +- .../using-the-rest-api/getting-started-with-the-rest-api.md | 2 +- 14 files changed, 14 insertions(+), 17 deletions(-) diff --git a/content/README.md b/content/README.md index 10253b843958..8a308e132625 100644 --- a/content/README.md +++ b/content/README.md @@ -27,7 +27,6 @@ See the [contributing docs](https://docs.github.com/en/contributing) for general - [`includeGuides`](#includeguides) - [`journeyTracks`](#journeytracks) - [`type`](#type) - - [`topics`](#topics) - [`communityRedirect`](#communityRedirect) - [`effectiveDate`](#effectiveDate) - [Escaping single quotes](#escaping-single-quotes) @@ -443,4 +442,4 @@ To create a product guides page (e.g. [Actions' Guide page](https://docs.github. 1. (optional) Define which articles to include with [`includeGuides`](#includeGuides). If using learning tracks, they need to be defined in [`data/learning-tracks/*.yml`](../data/learning-tracks/README.md). -If using `includeGuides`, make sure each of the articles in this list has [`topics`](#topics) and [`type`](#type) in its frontmatter. +If using `includeGuides`, make sure each of the articles in this list has [`type`](#type) in its frontmatter. 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 6217d19e7fe3..8addf2f0384f 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 @@ -997,7 +997,7 @@ jobs: > * {% data reusables.actions.schedule-delay %} > * {% data reusables.actions.branch-requirement %} > * Scheduled workflows will only run on the default branch. -> * In a public repository, scheduled workflows are automatically disabled when no repository activity has occurred in 60 days. For information on re-enabling a disabled workflow, see [AUTOTITLE](/enterprise-server/actions/using-workflows/disabling-and-enabling-a-workflow#enabling-a-workflow). +> * In a public repository, scheduled workflows are automatically disabled when no repository activity has occurred in 60 days. For information on re-enabling a disabled workflow, see [AUTOTITLE](/actions/how-tos/manage-workflow-runs/disable-and-enable-workflows#enabling-a-workflow). The `schedule` event allows you to trigger a workflow at a scheduled time. diff --git a/content/admin/managing-iam/provisioning-user-accounts-with-scim/configuring-scim-provisioning-for-users.md b/content/admin/managing-iam/provisioning-user-accounts-with-scim/configuring-scim-provisioning-for-users.md index ed5026d872a9..87defe609ce9 100644 --- a/content/admin/managing-iam/provisioning-user-accounts-with-scim/configuring-scim-provisioning-for-users.md +++ b/content/admin/managing-iam/provisioning-user-accounts-with-scim/configuring-scim-provisioning-for-users.md @@ -60,7 +60,7 @@ This table contains the network requirements to configure GHES SCIM with an IdP: | System | Direction | Purpose | Protocol / Port | Notes | |------------|------------|----------|------------------|-------| -| GitHub Enterprise Server | Inbound | Receives SCIM API requests from IdP for users and groups | TCP 443 (HTTPS) | [AUTOTITLE](/enterprise-server/rest/enterprise-admin/scim) must be reachable from IdP | +| GitHub Enterprise Server | Inbound | Receives SCIM API requests from IdP for users and groups | TCP 443 (HTTPS) | [AUTOTITLE](/rest/enterprise-admin/scim) must be reachable from IdP | | Identity Provider (IdP) | Outbound | Sends SCIM provisioning requests to GitHub for users and groups | TCP 443 (HTTPS) | IdP acts as SCIM client, initiating outbound HTTPS connections to GitHub's SCIM API endpoints. | * For authentication, your instance must use SAML SSO, or a mix of SAML and built-in authentication. diff --git a/content/admin/monitoring-and-managing-your-instance/monitoring-your-instance/troubleshooting-resource-allocation-problems.md b/content/admin/monitoring-and-managing-your-instance/monitoring-your-instance/troubleshooting-resource-allocation-problems.md index f58bab07456f..44279fae9fa7 100644 --- a/content/admin/monitoring-and-managing-your-instance/monitoring-your-instance/troubleshooting-resource-allocation-problems.md +++ b/content/admin/monitoring-and-managing-your-instance/monitoring-your-instance/troubleshooting-resource-allocation-problems.md @@ -20,7 +20,7 @@ shortTitle: Troubleshooting resource allocation problems We recommend using the monitor dashboard to stay informed on your appliance's resource health and make decisions on how to fix high usage issues, such as the ones outlined on this page. -For system-critical issues, and prior to making modifications to your appliance, we highly recommend contacting us by visiting {% data variables.contact.contact_ent_support %} and including your support bundle. For more information, see [Providing data to {% data variables.product.prodname_enterprise %} Support](/enterprise/{{ currentVersion}}/admin/guides/enterprise-support/providing-data-to-github-support#creating-and-sharing-support-bundles). +For system-critical issues, and prior to making modifications to your appliance, we highly recommend contacting us by visiting {% data variables.contact.contact_ent_support %} and including your support bundle. For more information, see [AUTOTITLE](/enterprise/{{ currentVersion}}/support/contacting-github-support/providing-data-to-github-support#creating-and-sharing-support-bundles). ## High CPU usage diff --git a/content/code-security/concepts/code-scanning/codeql/codeql-query-packs.md b/content/code-security/concepts/code-scanning/codeql/codeql-query-packs.md index 9dafa674093b..e2dc349ca4fc 100644 --- a/content/code-security/concepts/code-scanning/codeql/codeql-query-packs.md +++ b/content/code-security/concepts/code-scanning/codeql/codeql-query-packs.md @@ -58,7 +58,7 @@ The standard {% data variables.product.prodname_codeql %} packs for all supporte * `codeql/ruby-queries` * `codeql/swift-queries` -For more information about compatibility between published query packs and different {% data variables.product.prodname_codeql %} releases, see [AUTOTITLE](/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/publishing-and-using-codeql-packs#about-codeql-pack-compatibility). +For more information about compatibility between published query packs and different {% data variables.product.prodname_codeql %} releases, see [AUTOTITLE](/code-security/reference/code-scanning/codeql/codeql-cli/codeql-query-packs#codeql-pack-compatibility). You can also use the {% data variables.product.prodname_codeql_cli %} to create your own {% data variables.product.prodname_codeql %} packs, add dependencies to packs, and install or update dependencies. diff --git a/content/code-security/how-tos/scan-code-for-vulnerabilities/scan-from-the-command-line/publish-and-use-packs.md b/content/code-security/how-tos/scan-code-for-vulnerabilities/scan-from-the-command-line/publish-and-use-packs.md index 7e9b01ec9b37..7493c0c5b056 100644 --- a/content/code-security/how-tos/scan-code-for-vulnerabilities/scan-from-the-command-line/publish-and-use-packs.md +++ b/content/code-security/how-tos/scan-code-for-vulnerabilities/scan-from-the-command-line/publish-and-use-packs.md @@ -146,8 +146,7 @@ query pack to download, keep in mind that when you update your version of also need to switch to a newer version of the query pack. Newer versions of {% data variables.product.prodname_codeql %} _may_ provide degraded performance when used with query packs that have been pinned -to a very old version. For more information, see [About {% data variables.product.prodname_codeql %} -pack compatibility](#about-codeql-pack-compatibility). +to a very old version. For more information, see [AUTOTITLE](/code-security/reference/code-scanning/codeql/codeql-cli/codeql-query-packs#codeql-pack-compatibility). ## Using a {% data variables.product.prodname_codeql %} pack to analyze a {% data variables.product.prodname_codeql %} database diff --git a/content/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configuring-access-to-private-registries-for-dependabot.md b/content/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configuring-access-to-private-registries-for-dependabot.md index 2a83cde15799..1236af9c8b4c 100644 --- a/content/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configuring-access-to-private-registries-for-dependabot.md +++ b/content/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configuring-access-to-private-registries-for-dependabot.md @@ -47,7 +47,7 @@ The top-level `registries` key is optional and specifies authentication details. {% data reusables.dependabot.dependabot-updates-registries-options %} -For more information about the configuration options that are available and about the supported types, see [AUTOTITLE](/code-security/dependabot/working-with-dependabot/dependabot-options-reference#top-level-registries-key). +For more information about the configuration options that are available and about the supported types, see [AUTOTITLE](/code-security/reference/supply-chain-security/dependabot-options-reference#top-level-registries-key). ## Storing credentials for Dependabot to use diff --git a/content/code-security/reference/code-scanning/workflow-configuration-options.md b/content/code-security/reference/code-scanning/workflow-configuration-options.md index cb80fa84e090..d97af96fa9b2 100644 --- a/content/code-security/reference/code-scanning/workflow-configuration-options.md +++ b/content/code-security/reference/code-scanning/workflow-configuration-options.md @@ -294,7 +294,7 @@ In the example below, `scope` is the organization or personal account that publi > [!NOTE] > If you specify a particular version of a query pack to use, beware that the version you specify may eventually become too old to be used efficiently by the default {% data variables.product.prodname_codeql %} engine used by the {% data variables.product.prodname_codeql %} action. To ensure optimal performance, if you need to specify exact query pack versions, you should consider reviewing periodically whether the pinned version of the query pack needs to be moved forward. > -> For more information about pack compatibility, see [AUTOTITLE](/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/publishing-and-using-codeql-packs#about-codeql-pack-compatibility). +> For more information about pack compatibility, see [AUTOTITLE](/code-security/reference/code-scanning/codeql/codeql-cli/codeql-query-packs#codeql-pack-compatibility). ### Downloading {% data variables.product.prodname_codeql %} packs from {% data variables.product.prodname_ghe_server %} diff --git a/content/code-security/tutorials/customize-code-scanning/customizing-analysis-with-codeql-packs.md b/content/code-security/tutorials/customize-code-scanning/customizing-analysis-with-codeql-packs.md index 5e00cd146905..93e0a7864f0d 100644 --- a/content/code-security/tutorials/customize-code-scanning/customizing-analysis-with-codeql-packs.md +++ b/content/code-security/tutorials/customize-code-scanning/customizing-analysis-with-codeql-packs.md @@ -32,7 +32,7 @@ Before you can use a {% data variables.product.prodname_codeql %} query pack to > [!NOTE] > If you specify a particular version of a query pack to use, be aware that the version you specify may eventually become too old for the latest version of {% data variables.product.prodname_codeql %} to make efficient use of. To ensure optimal performance, if you need to specify exact query pack versions, you should reevaluate which versions you pin to whenever you upgrade the {% data variables.product.prodname_codeql_cli %} you're using. > -> For more information about pack compatibility, see [AUTOTITLE](/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/publishing-and-using-codeql-packs#about-codeql-pack-compatibility). +> For more information about pack compatibility, see [AUTOTITLE](/code-security/reference/code-scanning/codeql/codeql-cli/codeql-query-packs#codeql-pack-compatibility). ### Basic example of downloading and using query packs diff --git a/content/contributing/style-guide-and-content-model/style-guide.md b/content/contributing/style-guide-and-content-model/style-guide.md index 55328e1b6cc2..40475487708c 100644 --- a/content/contributing/style-guide-and-content-model/style-guide.md +++ b/content/contributing/style-guide-and-content-model/style-guide.md @@ -1659,7 +1659,7 @@ Unless the content is about administering an enterprise product, describe an ind With {% data variables.product.company_short %}'s enterprise products, administrators manage an enterprise account. An enterprise account can own multiple organizations, and people's user accounts can be members of the organizations. For more information, see the "Roles in an enterprise" article for each product. * [{% data variables.product.prodname_ghe_cloud %}](/enterprise-cloud@latest/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise) -* [{% data variables.product.prodname_ghe_server %}](/enterprise-server/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise) +* [{% data variables.product.prodname_ghe_server %}](/enterprise-server@latest/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise) If the reader manages an enterprise account, and you're describing the people's accounts that they manage, use "user account." This applies to the following products. diff --git a/content/contributing/writing-for-github-docs/using-yaml-frontmatter.md b/content/contributing/writing-for-github-docs/using-yaml-frontmatter.md index 28bf0b6298d3..5b93dea57065 100644 --- a/content/contributing/writing-for-github-docs/using-yaml-frontmatter.md +++ b/content/contributing/writing-for-github-docs/using-yaml-frontmatter.md @@ -41,7 +41,6 @@ For more information, see [`lib/frontmatter.ts`](https://github.com/github/docs/ * [`includeGuides`](#includeguides) * [`journeyTracks`](#journeytracks) * [`type`](#type) -* [`topics`](#topics) * [`communityRedirect`](#communityredirect) * [`effectiveDate`](#effectivedate) @@ -346,4 +345,4 @@ To create a product guides page (e.g. [{% data variables.product.prodname_action * Define which articles to include with [`includeGuides`](#includeguides). Optional. If using learning tracks, they need to be defined in [`data/learning-tracks/*.yml`](https://github.com/github/docs/tree/main/data/learning-tracks). -If using `includeGuides`, make sure each of the articles in this list has [`topics`](#topics) and [`type`](#type) in its frontmatter. +If using `includeGuides`, make sure each of the articles in this list has [`type`](#type) in its frontmatter. diff --git a/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization.md b/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization.md index ea8ec814d80f..dd1b5b1c4243 100644 --- a/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization.md +++ b/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization.md @@ -85,7 +85,7 @@ You can use security overview to find a set of repositories and enable or disabl By default, {% data variables.product.prodname_dependabot %} can't update dependencies that are located in private{% ifversion ghec or ghes %} or internal{% endif %} repositories, or private{% ifversion ghec or ghes %} or internal{% endif %} package registries. However, if a dependency is in a private{% ifversion ghec or ghes %} or internal{% endif %} {% data variables.product.prodname_dotcom %} repository within the same organization as the project that uses that dependency, you can allow {% data variables.product.prodname_dependabot %} to update the version successfully by giving it access to the host repository. -If your code depends on packages in a private{% ifversion ghec or ghes %} or internal{% endif %} registry, you can allow {% data variables.product.prodname_dependabot %} to update the versions of these dependencies by configuring this at the repository level. You do this by adding authentication details to the `dependabot.yml` file for the repository. For more information, see [Top-level `registries` key](/code-security/dependabot/working-with-dependabot/dependabot-options-reference#top-level-registries-key). +If your code depends on packages in a private{% ifversion ghec or ghes %} or internal{% endif %} registry, you can allow {% data variables.product.prodname_dependabot %} to update the versions of these dependencies by configuring this at the repository level. You do this by adding authentication details to the `dependabot.yml` file for the repository. For more information, see [Top-level `registries` key](/code-security/reference/supply-chain-security/dependabot-options-reference#top-level-registries-key). {% ifversion ghec %} diff --git a/content/rest/authentication/authenticating-to-the-rest-api.md b/content/rest/authentication/authenticating-to-the-rest-api.md index 8062f92fd342..608b50ca863f 100644 --- a/content/rest/authentication/authenticating-to-the-rest-api.md +++ b/content/rest/authentication/authenticating-to-the-rest-api.md @@ -169,4 +169,4 @@ Authentication with username and password is not supported. If you try to authen ## Further reading * [AUTOTITLE](/rest/overview/keeping-your-api-credentials-secure) -* [AUTOTITLE](/rest/guides/getting-started-with-the-rest-api#authenticating) +* [AUTOTITLE](/rest/guides/getting-started-with-the-rest-api#authentication) diff --git a/content/rest/using-the-rest-api/getting-started-with-the-rest-api.md b/content/rest/using-the-rest-api/getting-started-with-the-rest-api.md index c55e7fe4bbf1..651efd4ed47a 100644 --- a/content/rest/using-the-rest-api/getting-started-with-the-rest-api.md +++ b/content/rest/using-the-rest-api/getting-started-with-the-rest-api.md @@ -177,7 +177,7 @@ Body parameters allow you to pass additional data to the API. These parameters c For example, the ["Create an issue" endpoint](/rest/issues/issues#create-an-issue) requires that you specify a title for the new issue in your request. It also allows you to optionally specify other information, such as text to put in the issue body, users to assign to the new issue, or labels to apply to the new issue. For an example of a request that uses body parameters, see [Making a request](#making-a-request). -You must authenticate your request to pass body parameters. For more information, see [Authenticating](#authenticating). +You must authenticate your request to pass body parameters. For more information, see [Authentication](#authentication). #### Query parameters From ac2064f8828fcf13ea155cb689360037288fdc69 Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Thu, 12 Mar 2026 09:18:51 -0700 Subject: [PATCH 20/29] Standardize cookie names to snake_case with central constants (#60140) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/color-schemes/components/useTheme.ts | 3 +- src/events/components/events.ts | 20 ++++---- src/events/middleware.ts | 7 ++- src/frame/components/hooks/useHasAccount.ts | 5 +- .../components/lib/toggle-annotations.ts | 5 +- src/frame/lib/constants.ts | 46 +++++++++++-------- src/frame/middleware/api.ts | 3 +- src/rest/components/ApiVersionPicker.tsx | 2 +- src/rest/components/RestCodeSamples.tsx | 5 +- src/rest/components/RestRedirect.tsx | 3 +- src/tools/components/PlatformPicker.tsx | 3 +- src/tools/components/ToolPicker.tsx | 3 +- 12 files changed, 63 insertions(+), 42 deletions(-) diff --git a/src/color-schemes/components/useTheme.ts b/src/color-schemes/components/useTheme.ts index e240440b9b9a..b5e9fea3aa3e 100644 --- a/src/color-schemes/components/useTheme.ts +++ b/src/color-schemes/components/useTheme.ts @@ -1,5 +1,6 @@ import { useState, useEffect } from 'react' import Cookies from '../../frame/components/lib/cookies' +import { COLOR_MODE_COOKIE_NAME } from '@/frame/lib/constants' enum CssColorMode { auto = 'auto', @@ -118,7 +119,7 @@ export function useTheme() { // under the hood, which Primer is planning to do in the next couple quarters. // Reference: https://github.com/primer/react/issues/2229 setTimeout(() => { - const cookieValue = Cookies.get('color_mode') + const cookieValue = Cookies.get(COLOR_MODE_COOKIE_NAME) const css = getCssTheme(cookieValue) const component = getComponentTheme(cookieValue) setTheme({ css, component }) diff --git a/src/events/components/events.ts b/src/events/components/events.ts index 988ed0d6fc4f..6a1260095ca4 100644 --- a/src/events/components/events.ts +++ b/src/events/components/events.ts @@ -1,5 +1,11 @@ import Cookies from '@/frame/components/lib/cookies' -import { ANALYTICS_ENABLED } from '@/frame/lib/constants' +import { + ANALYTICS_ENABLED, + ANNOTATE_MODE_COOKIE_NAME, + DOCS_EVENTS_COOKIE_NAME, + TOOL_PREFERRED_COOKIE_NAME, + OS_PREFERRED_COOKIE_NAME, +} from '@/frame/lib/constants' import { parseUserAgent } from './user-agent' import { Router } from 'next/router' import { isLoggedIn } from '@/frame/components/hooks/useHasAccount' @@ -8,8 +14,6 @@ import { EventType, EventPropsByType } from '../types' import { isHeadless } from './is-headless' import { sendHydroAnalyticsEvent, getOctoClientId } from './hydro-analytics' -const COOKIE_NAME = '_docs-events' - const startVisitTime = Date.now() const BATCH_INTERVAL = 5000 // 5 seconds @@ -66,10 +70,10 @@ export function uuidv4(): string { export function getUserEventsId() { if (cookieValue) return cookieValue - cookieValue = Cookies.get(COOKIE_NAME) + cookieValue = Cookies.get(DOCS_EVENTS_COOKIE_NAME) if (cookieValue) return cookieValue cookieValue = uuidv4() - Cookies.set(COOKIE_NAME, cookieValue) + Cookies.set(DOCS_EVENTS_COOKIE_NAME, cookieValue) return cookieValue } @@ -136,10 +140,10 @@ export function sendEvent({ user_language: navigator.language, // Preference information - application_preference: Cookies.get('toolPreferred'), + application_preference: Cookies.get(TOOL_PREFERRED_COOKIE_NAME), color_mode_preference: getColorModePreference(), - os_preference: Cookies.get('osPreferred'), - code_display_preference: Cookies.get('annotate-mode'), + os_preference: Cookies.get(OS_PREFERRED_COOKIE_NAME), + code_display_preference: Cookies.get(ANNOTATE_MODE_COOKIE_NAME), experiment_variation: getExperimentVariationForContext( diff --git a/src/events/middleware.ts b/src/events/middleware.ts index 5b777cdf3f40..6a7ae9ebe06a 100644 --- a/src/events/middleware.ts +++ b/src/events/middleware.ts @@ -13,6 +13,7 @@ import { noCacheControl } from '@/frame/middleware/cache-control' import { getJsonValidator } from '@/tests/lib/validate-json-schema' import { formatErrors } from './lib/middleware-errors' import { publish as _publish } from './lib/hydro' +import { DOTCOM_USER_COOKIE_NAME, STAFFONLY_COOKIE_NAME } from '@/frame/lib/constants' import { analyzeComment, getGuessedLanguage } from './lib/analyze-comment' import { EventType, EventProps, EventPropsByType } from './types' @@ -77,8 +78,10 @@ router.post( if (body.context) { // Add dotcom_user to the context if it's available // JSON.stringify removes `undefined` values but not `null`, and we don't want to send `null` to Hydro - body.context.dotcom_user = req.cookies?.dotcom_user ? req.cookies.dotcom_user : undefined - body.context.is_staff = Boolean(req.cookies?.staffonly) + body.context.dotcom_user = req.cookies?.[DOTCOM_USER_COOKIE_NAME] + ? req.cookies[DOTCOM_USER_COOKIE_NAME] + : undefined + body.context.is_staff = Boolean(req.cookies?.[STAFFONLY_COOKIE_NAME]) // Add IP address and user agent from request // Moda forwards the client's IP using the `fastly-client-ip` header body.context.ip = req.headers['fastly-client-ip'] as string | undefined diff --git a/src/frame/components/hooks/useHasAccount.ts b/src/frame/components/hooks/useHasAccount.ts index 339101823c5e..589eaf4997b1 100644 --- a/src/frame/components/hooks/useHasAccount.ts +++ b/src/frame/components/hooks/useHasAccount.ts @@ -1,5 +1,6 @@ import { useState, useEffect } from 'react' import Cookies from '@/frame/components/lib/cookies' +import { COLOR_MODE_COOKIE_NAME, PREFERRED_COLOR_MODE_COOKIE_NAME } from '@/frame/lib/constants' // Measure if the user has a github.com account and signed in during this session. // The github.com sends the color_mode cookie every request when you sign in, @@ -21,7 +22,7 @@ export function useHasAccount() { } export function isLoggedIn() { - const cookieValue = Cookies.get('color_mode') - const altCookieValue = Cookies.get('preferred_color_mode') + const cookieValue = Cookies.get(COLOR_MODE_COOKIE_NAME) + const altCookieValue = Cookies.get(PREFERRED_COLOR_MODE_COOKIE_NAME) return Boolean(cookieValue || altCookieValue) } diff --git a/src/frame/components/lib/toggle-annotations.ts b/src/frame/components/lib/toggle-annotations.ts index e78ac3fed452..cdce002b7821 100644 --- a/src/frame/components/lib/toggle-annotations.ts +++ b/src/frame/components/lib/toggle-annotations.ts @@ -1,6 +1,7 @@ import Cookies from '@/frame/components/lib/cookies' import { sendEvent } from '@/events/components/events' import { EventType } from '@/events/types' +import { ANNOTATE_MODE_COOKIE_NAME } from '@/frame/lib/constants' enum annotationMode { Beside = 'beside', @@ -23,7 +24,7 @@ export default function toggleAnnotation() { const annotationButtons = Array.from(document.querySelectorAll('.annotate-toggle button')) if (!annotationButtons.length) return - const cookie = validateMode(Cookies.get('annotate-mode')) // will default to beside + const cookie = validateMode(Cookies.get(ANNOTATE_MODE_COOKIE_NAME)) // will default to beside displayAnnotationMode(annotationButtons, cookie) // this loop adds event listeners for both the annotation buttons @@ -33,7 +34,7 @@ export default function toggleAnnotation() { // validate the annotation mode and set the cookie with the valid mode const validMode = validateMode(annotationBtn.getAttribute('value')!) - Cookies.set('annotate-mode', validMode!) + Cookies.set(ANNOTATE_MODE_COOKIE_NAME, validMode!) sendEvent({ type: EventType.preference, preference_name: 'code_display', diff --git a/src/frame/lib/constants.ts b/src/frame/lib/constants.ts index 7b0fae90fedf..9abea2cbf59c 100644 --- a/src/frame/lib/constants.ts +++ b/src/frame/lib/constants.ts @@ -1,24 +1,35 @@ -const isDev = process.env.NODE_ENV === 'development' - -// 10 seconds, by default in production and tests. -// 15 seconds, by default in development. -// Why more in development? Because Next.js compilation is JIT (Just-In-Time) -// so that starting `npm start` and viewing your first page on localhost:4000 -// can, these days, take more than 10 seconds when the computer isn't -// very fast. That first compilation can take long even of fast hardware -// if the local contributor is running several other resource-intensive -// applications at the same time. -const DEFAULT_MAX_REQUEST_TIMEOUT = isDev ? 15_000 : 10_000 - export const ROOT = process.env.ROOT || '.' -export const USER_LANGUAGE_COOKIE_NAME = 'user_language' -export const MACHINE_TRANSLATION_BANNER_COOKIE_NAME = 'machine_translation_banner_seen' -export const USER_VERSION_COOKIE_NAME = 'user_version' export const TRANSLATIONS_ROOT = process.env.TRANSLATIONS_ROOT || 'translations' +export const TRANSLATIONS_FIXTURE_ROOT = process.env.TRANSLATIONS_FIXTURE_ROOT + +const isDev = process.env.NODE_ENV === 'development' +// Higher in development to account for JIT compilation on first page load. +const DEFAULT_MAX_REQUEST_TIMEOUT = isDev ? 15_000 : 10_000 export const MAX_REQUEST_TIMEOUT = process.env.REQUEST_TIMEOUT ? parseInt(process.env.REQUEST_TIMEOUT, 10) : DEFAULT_MAX_REQUEST_TIMEOUT -export const TRANSLATIONS_FIXTURE_ROOT = process.env.TRANSLATIONS_FIXTURE_ROOT + +// Docs cookies — we own these and use snake_case naming. +export const USER_LANGUAGE_COOKIE_NAME = 'user_language' // Also referenced in Fastly VCL +export const USER_VERSION_COOKIE_NAME = 'user_version' // Also referenced in Fastly VCL +export const API_VERSION_COOKIE_NAME = 'api_version_preferred' +export const ANNOTATE_MODE_COOKIE_NAME = 'annotate_mode' +export const CODE_SAMPLE_LANGUAGE_COOKIE_NAME = 'code_sample_language_preferred' +export const TOOL_PREFERRED_COOKIE_NAME = 'tool_preferred' +export const OS_PREFERRED_COOKIE_NAME = 'os_preferred' +export const DOCS_EVENTS_COOKIE_NAME = 'docs_events' +export const MACHINE_TRANSLATION_BANNER_COOKIE_NAME = 'machine_translation_banner_seen' + +// Monolith cookies — set by github.com, read-only for us. Names are not +// ours to change so they don't follow our snake_case convention. +export const COLOR_MODE_COOKIE_NAME = 'color_mode' +export const PREFERRED_COLOR_MODE_COOKIE_NAME = 'preferred_color_mode' +export const DOTCOM_USER_COOKIE_NAME = 'dotcom_user' +export const STAFFONLY_COOKIE_NAME = 'staffonly' + +// Feature flags +export const ANALYTICS_ENABLED = true +export const HOVERCARDS_ENABLED = true // Minimum required HTML for 404: W3C valid, no external, legal. export const minimumNotFoundHtml = ` @@ -36,6 +47,3 @@ export const minimumNotFoundHtml = ` • Privacy `.replace(/\n/g, '') - -export const ANALYTICS_ENABLED = true -export const HOVERCARDS_ENABLED = true diff --git a/src/frame/middleware/api.ts b/src/frame/middleware/api.ts index 1c460344f4f6..22c2986de9f5 100644 --- a/src/frame/middleware/api.ts +++ b/src/frame/middleware/api.ts @@ -11,6 +11,7 @@ import article from '@/article-api/middleware/article' import webhooks from '@/webhooks/middleware/webhooks' import { ExtendedRequest } from '@/types' import { noCacheControl } from './cache-control' +import { STAFFONLY_COOKIE_NAME } from '@/frame/lib/constants' const router = express.Router() @@ -55,7 +56,7 @@ if (process.env.ELASTICSEARCH_URL) { router.get('/cookies', (req, res) => { noCacheControl(res) const cookies = { - isStaff: Boolean(req.cookies?.staffonly?.startsWith('yes')) || false, + isStaff: Boolean(req.cookies?.[STAFFONLY_COOKIE_NAME]?.startsWith('yes')) || false, } res.json(cookies) }) diff --git a/src/rest/components/ApiVersionPicker.tsx b/src/rest/components/ApiVersionPicker.tsx index 030cecadd76a..173cefb55a43 100644 --- a/src/rest/components/ApiVersionPicker.tsx +++ b/src/rest/components/ApiVersionPicker.tsx @@ -6,7 +6,7 @@ import { useMainContext } from '@/frame/components/context/MainContext' import { DEFAULT_VERSION, useVersion } from '@/versions/components/useVersion' import { Picker } from '@/tools/components/Picker' import { useTranslation } from '@/languages/components/useTranslation' -import { API_VERSION_COOKIE_NAME } from '@/rest/components/RestRedirect' +import { API_VERSION_COOKIE_NAME } from '@/frame/lib/constants' import { apiVersionPath } from '@/rest/lib/config' const API_VERSION_SUFFIX = ' (latest)' diff --git a/src/rest/components/RestCodeSamples.tsx b/src/rest/components/RestCodeSamples.tsx index f3568e6f1003..f0e3e8203dd3 100644 --- a/src/rest/components/RestCodeSamples.tsx +++ b/src/rest/components/RestCodeSamples.tsx @@ -13,6 +13,7 @@ import hljsCurl from 'highlightjs-curl' import { useTranslation } from '@/languages/components/useTranslation' import useClipboard from '@/rest/components/useClipboard' +import { CODE_SAMPLE_LANGUAGE_COOKIE_NAME } from '@/frame/lib/constants' import { getShellExample, getGHExample, @@ -114,14 +115,14 @@ export function RestCodeSamples({ operation, slug, heading }: Props) { const handleLanguageSelection = (languageKey: CodeSampleKeys) => { setSelectedLanguage(languageKey) - Cookies.set('codeSampleLanguagePreferred', languageKey) + Cookies.set(CODE_SAMPLE_LANGUAGE_COOKIE_NAME, languageKey) } // Change the language based on cookies useEffect(() => { // If the user previously selected a language preference and the language // is available in this component set it as the selected language - const cookieValue = Cookies.get('codeSampleLanguagePreferred') + const cookieValue = Cookies.get(CODE_SAMPLE_LANGUAGE_COOKIE_NAME) const preferredCodeLanguage = languageSelectOptions.find((item) => item === cookieValue) if (cookieValue && preferredCodeLanguage) { setSelectedLanguage(cookieValue as CodeSampleKeys) diff --git a/src/rest/components/RestRedirect.tsx b/src/rest/components/RestRedirect.tsx index cb6829bd5507..1cb50cbf5d03 100644 --- a/src/rest/components/RestRedirect.tsx +++ b/src/rest/components/RestRedirect.tsx @@ -4,8 +4,7 @@ import Cookies from '@/frame/components/lib/cookies' import { useVersion } from '@/versions/components/useVersion' import { useMainContext } from '@/frame/components/context/MainContext' - -export const API_VERSION_COOKIE_NAME = 'apiVersionPreferred' +import { API_VERSION_COOKIE_NAME } from '@/frame/lib/constants' // This component allows us to set the URL Param for the REST API Calendar Date version // We set a cookie as well to remember what calendar date version the user is on diff --git a/src/tools/components/PlatformPicker.tsx b/src/tools/components/PlatformPicker.tsx index 4db0120bf0a7..016b96d4d638 100644 --- a/src/tools/components/PlatformPicker.tsx +++ b/src/tools/components/PlatformPicker.tsx @@ -3,6 +3,7 @@ import { useEffect, useState } from 'react' import { useArticleContext } from '@/frame/components/context/ArticleContext' import { parseUserAgent } from '@/events/components/user-agent' import { InArticlePicker } from './InArticlePicker' +import { OS_PREFERRED_COOKIE_NAME } from '@/frame/lib/constants' const platformQueryKey = 'platform' const platforms = [ @@ -72,7 +73,7 @@ export const PlatformPicker = () => { ? defaultUA : detectedPlatforms[detectedPlatforms.length - 1] } - cookieKey="osPreferred" + cookieKey={OS_PREFERRED_COOKIE_NAME} queryStringKey={platformQueryKey} onValue={showPlatformSpecificContent} preferenceName="os" diff --git a/src/tools/components/ToolPicker.tsx b/src/tools/components/ToolPicker.tsx index ecc8818eeeec..083e08b0c87a 100644 --- a/src/tools/components/ToolPicker.tsx +++ b/src/tools/components/ToolPicker.tsx @@ -2,6 +2,7 @@ import { preserveAnchorNodePosition } from 'scroll-anchoring' import { useArticleContext } from '@/frame/components/context/ArticleContext' import { InArticlePicker } from './InArticlePicker' +import { TOOL_PREFERRED_COOKIE_NAME } from '@/frame/lib/constants' // example: http://localhost:4000/en/codespaces/developing-in-codespaces/creating-a-codespace @@ -68,7 +69,7 @@ export const ToolPicker = () => { return ( { preserveAnchorNodePosition(document, () => { From 8b2e2d40968f13fb9e4516bbddbaccefd9f0b256 Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Thu, 12 Mar 2026 09:19:00 -0700 Subject: [PATCH 21/29] Article API: compact GraphQL reference output for LLM consumers (#60072) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../templates/graphql-reference.template.md | 50 +++++------ src/article-api/tests/graphql-transformer.ts | 88 ++++++++++--------- .../graphql-reference-transformer.ts | 35 ++++++++ 3 files changed, 104 insertions(+), 69 deletions(-) diff --git a/src/article-api/templates/graphql-reference.template.md b/src/article-api/templates/graphql-reference.template.md index 955db8e5f295..76244d1d25de 100644 --- a/src/article-api/templates/graphql-reference.template.md +++ b/src/article-api/templates/graphql-reference.template.md @@ -4,6 +4,14 @@ {{ manualContent }} +{% if connectionEdgeSummary %} +## Connection and Edge types + +Connection types with only the standard pagination fields (`edges`, `nodes`, `pageInfo`, `totalCount`) and Edge types with only `cursor` and `node` are summarized here. Connection and Edge types with additional fields are documented individually below. + +{% for name in connectionEdgeSummary %}`{{ name }}`{% unless forloop.last %}, {% endunless %}{% endfor %} + +{% endif %} {% for item in items %} ## {{ item.name }} @@ -17,15 +25,13 @@ {% endif %} {% if pageType == 'queries' %} -**Type:** [{{ item.type }}]({{ item.href }}) +**Type:** {{ item.type }} {% if item.args.size > 0 %} ### Arguments for `{{ item.name }}` -| Name | Type | Description | -| --- | --- | --- | -{% for arg in item.args %}| `{{ arg.name }}` | [`{{ arg.type }}`]({{ arg.href }}) | {{ arg.description }} | +{% for arg in item.args %}* `{{ arg.name }}` ({{ arg.type }}): {{ arg.description }} {% endfor %} {% endif %} @@ -34,9 +40,7 @@ ### Input fields for `{{ item.name }}` -| Name | Type | Description | -| --- | --- | --- | -{% for field in item.inputFields %}| `{{ field.name }}` | [`{{ field.type }}`]({{ field.href }}) | {{ field.description }}{% if field.defaultValue %} Default: `{{ field.defaultValue }}`.{% endif %} | +{% for field in item.inputFields %}* `{{ field.name }}` ({{ field.type }}): {{ field.description }}{% if field.defaultValue %} Default: `{{ field.defaultValue }}`.{% endif %} {% endfor %} {% endif %} @@ -44,28 +48,23 @@ ### Return fields for `{{ item.name }}` -| Name | Type | Description | -| --- | --- | --- | -{% for field in item.returnFields %}| `{{ field.name }}` | [`{{ field.type }}`]({{ field.href }}) | {{ field.description }}{% if field.defaultValue %} Default: `{{ field.defaultValue }}`.{% endif %}{% if field.isDeprecated %} **Deprecated:** {{ field.deprecationReason }}{% endif %} | +{% for field in item.returnFields %}* `{{ field.name }}` ({{ field.type }}): {{ field.description }}{% if field.defaultValue %} Default: `{{ field.defaultValue }}`.{% endif %}{% if field.isDeprecated %} **Deprecated:** {{ field.deprecationReason }}{% endif %} {% endfor %} {% endif %} {% elsif pageType == 'objects' %} {% if item.implements.size > 0 %} +**Implements:** {% for impl in item.implements %}{{ impl.name }}{% unless forloop.last %}, {% endunless %}{% endfor %} -### Implements - -{% for impl in item.implements %}- [`{{ impl.name }}`]({{ impl.href }}) -{% endfor %} {% endif %} {% if item.fields.size > 0 %} ### Fields for `{{ item.name }}` -| Name | Type | Description | -| --- | --- | --- | -{% for field in item.fields %}| `{{ field.name }}` | [`{{ field.type }}`]({{ field.href }}) | {{ field.description }}{% if field.defaultValue %} Default: `{{ field.defaultValue }}`.{% endif %}{% if field.isDeprecated %} **Deprecated:** {{ field.deprecationReason }}{% endif %}{% if field.arguments.size > 0 %}

**Arguments:**
{% for arg in field.arguments %}- `{{ arg.name }}` ([`{{ arg.type.name }}`]({{ arg.type.href }})): {{ arg.description }}{% if arg.defaultValue %} Default: `{{ arg.defaultValue }}`.{% endif %}
{% endfor %}{% endif %} | +{% for field in item.fields %}* `{{ field.name }}` ({{ field.type }}): {{ field.description }}{% if field.defaultValue %} Default: `{{ field.defaultValue }}`.{% endif %}{% if field.isDeprecated %} **Deprecated:** {{ field.deprecationReason }}{% endif %}{% if field.arguments.size > 0 %} +{% for arg in field.arguments %} * `{{ arg.name }}` ({{ arg.type.name }}): {{ arg.description }}{% if arg.defaultValue %} Default: `{{ arg.defaultValue }}`.{% endif %} +{% endfor %}{% endif %} {% endfor %} {% endif %} @@ -74,9 +73,9 @@ ### Fields for `{{ item.name }}` -| Name | Type | Description | -| --- | --- | --- | -{% for field in item.fields %}| `{{ field.name }}` | [`{{ field.type }}`]({{ field.href }}) | {{ field.description }}{% if field.defaultValue %} Default: `{{ field.defaultValue }}`.{% endif %}{% if field.isDeprecated %} **Deprecated:** {{ field.deprecationReason }}{% endif %}{% if field.arguments.size > 0 %}

**Arguments:**
{% for arg in field.arguments %}- `{{ arg.name }}` ([`{{ arg.type.name }}`]({{ arg.type.href }})): {{ arg.description }}{% if arg.defaultValue %} Default: `{{ arg.defaultValue }}`.{% endif %}
{% endfor %}{% endif %} | +{% for field in item.fields %}* `{{ field.name }}` ({{ field.type }}): {{ field.description }}{% if field.defaultValue %} Default: `{{ field.defaultValue }}`.{% endif %}{% if field.isDeprecated %} **Deprecated:** {{ field.deprecationReason }}{% endif %}{% if field.arguments.size > 0 %} +{% for arg in field.arguments %} * `{{ arg.name }}` ({{ arg.type.name }}): {{ arg.description }}{% if arg.defaultValue %} Default: `{{ arg.defaultValue }}`.{% endif %} +{% endfor %}{% endif %} {% endfor %} {% endif %} @@ -85,10 +84,7 @@ ### Values for `{{ item.name }}` -{% for value in item.values %}**`{{ value.name }}`** - -{{ value.description }} - +{% for value in item.values %}* `{{ value.name }}`: {{ value.description }} {% endfor %} {% endif %} @@ -97,7 +93,7 @@ ### Possible types for `{{ item.name }}` -{% for type in item.possibleTypes %}- [`{{ type.name }}`]({{ type.href }}) +{% for type in item.possibleTypes %}* {{ type.name }} {% endfor %} {% endif %} @@ -106,9 +102,7 @@ ### Input fields for `{{ item.name }}` -| Name | Type | Description | -| --- | --- | --- | -{% for field in item.inputFields %}| `{{ field.name }}` | [`{{ field.type }}`]({{ field.href }}) | {{ field.description }}{% if field.defaultValue %} Default: `{{ field.defaultValue }}`.{% endif %}{% if field.isDeprecated %} **Deprecated:** {{ field.deprecationReason }}{% endif %} | +{% for field in item.inputFields %}* `{{ field.name }}` ({{ field.type }}): {{ field.description }}{% if field.defaultValue %} Default: `{{ field.defaultValue }}`.{% endif %}{% if field.isDeprecated %} **Deprecated:** {{ field.deprecationReason }}{% endif %} {% endfor %} {% endif %} diff --git a/src/article-api/tests/graphql-transformer.ts b/src/article-api/tests/graphql-transformer.ts index 8b2dda536253..d418bec102cd 100644 --- a/src/article-api/tests/graphql-transformer.ts +++ b/src/article-api/tests/graphql-transformer.ts @@ -55,22 +55,19 @@ describe('GraphQL transformer', { timeout: 10000 }, () => { // Check for query description expect(res.body).toContain('Lookup a given repository by the owner and repository name.') - // Check for type link - expect(res.body).toContain('**Type:** [Repository](/en/graphql/reference/objects#repository)') + // Check for type (without link) + expect(res.body).toContain('**Type:** Repository') }) - test('query arguments are listed in table format', async () => { + test('query arguments are listed in bullet format', async () => { const res = await getCached('/en/graphql/reference/queries') expect(res.statusCode).toBe(200) - // Check for arguments table for codeOfConduct query + // Check for arguments section for codeOfConduct query expect(res.body).toContain('### Arguments for `codeOfConduct`') - expect(res.body).toMatch(/\|\s*Name\s*\|\s*Type\s*\|\s*Description\s*\|/) - expect(res.body).toMatch(/\|\s*-+\s*\|\s*-+\s*\|\s*-+\s*\|/) - // Check for specific arguments - expect(res.body).toMatch(/\|\s*`key`\s*\|/) - expect(res.body).toContain('[`String!`](/en/graphql/reference/scalars#string)') + // Check for specific arguments in bullet format + expect(res.body).toContain('`key` (String!)') expect(res.body).toContain("The code of conduct's key.") }) @@ -84,13 +81,13 @@ describe('GraphQL transformer', { timeout: 10000 }, () => { // Check for mutation description expect(res.body).toContain('Create a new repository.') - // Check for input fields table + // Check for input fields in bullet format expect(res.body).toContain('### Input fields for `createRepository`') - expect(res.body).toContain('| `input` |') + expect(res.body).toContain('`input`') - // Check for return fields table + // Check for return fields in bullet format expect(res.body).toContain('### Return fields for `createRepository`') - expect(res.body).toMatch(/\|\s*`repository`\s*\|/) + expect(res.body).toContain('`repository`') expect(res.body).toContain('The new repository.') }) @@ -101,30 +98,42 @@ describe('GraphQL transformer', { timeout: 10000 }, () => { // Check for object heading - AddedToMergeQueueEvent has implements expect(res.body).toContain('## AddedToMergeQueueEvent') - // Check for implements section - expect(res.body).toContain('### Implements') - expect(res.body).toMatch(/[*-]\s*\[`Node`\]\(\/.*graphql\/reference\/interfaces#node\)/) + // Check for implements inline + expect(res.body).toContain('**Implements:** Node') - // Check for fields table + // Check for fields in bullet format expect(res.body).toContain('### Fields for `AddedToMergeQueueEvent`') - expect(res.body).toMatch(/\|\s*`id`\s*\|/) - expect(res.body).toMatch(/\|\s*`actor`\s*\|/) - expect(res.body).toMatch(/\|\s*`createdAt`\s*\|/) + expect(res.body).toContain('`id`') + expect(res.body).toContain('`actor`') + expect(res.body).toContain('`createdAt`') }) - test('objects page shows field arguments inline', async () => { + test('objects page shows field arguments as nested bullets', async () => { const res = await getCached('/en/graphql/reference/objects') expect(res.statusCode).toBe(200) // Check for User object with repositories field that has arguments expect(res.body).toContain('## User') - expect(res.body).toContain('| `repositories` |') + expect(res.body).toContain('`repositories`') - // Check for inline arguments formatting - expect(res.body).toContain('**Arguments:**') - expect(res.body).toContain('- `first`') + // Check for nested argument bullets + expect(res.body).toContain('`first`') expect(res.body).toContain('Returns the first n elements from the list.') - expect(res.body).toContain('- `orderBy`') + expect(res.body).toContain('`orderBy`') + }) + + test('objects page collapses boilerplate Connection and Edge types', async () => { + const res = await getCached('/en/graphql/reference/objects') + expect(res.statusCode).toBe(200) + + // Check for Connection/Edge summary section + expect(res.body).toContain('## Connection and Edge types') + expect(res.body).toContain('standard pagination fields') + + // Boilerplate Connection/Edge types should be in the summary, not as H2 sections + // ActorConnection has only standard fields (edges, nodes, pageInfo, totalCount) + expect(res.body).toContain('`ActorConnection`') + expect(res.body).not.toMatch(/^## ActorConnection$/m) }) test('interfaces page renders correctly', async () => { @@ -137,9 +146,9 @@ describe('GraphQL transformer', { timeout: 10000 }, () => { // Check for interface description expect(res.body).toContain('An object with an ID.') - // Check for fields table + // Check for fields in bullet format expect(res.body).toContain('### Fields for `Node`') - expect(res.body).toContain('| `id` |') + expect(res.body).toContain('`id`') expect(res.body).toContain('ID of the object.') }) @@ -153,13 +162,13 @@ describe('GraphQL transformer', { timeout: 10000 }, () => { // Check for enum description expect(res.body).toContain("The repository's visibility level.") - // Check for values section + // Check for values in bullet format expect(res.body).toContain('### Values for `RepositoryVisibility`') - expect(res.body).toContain('**`PUBLIC`**') + expect(res.body).toContain('`PUBLIC`') expect(res.body).toContain('The repository is visible to everyone.') - expect(res.body).toContain('**`PRIVATE`**') + expect(res.body).toContain('`PRIVATE`') expect(res.body).toContain('The repository is visible only to those with explicit access.') - expect(res.body).toContain('**`INTERNAL`**') + expect(res.body).toContain('`INTERNAL`') }) test('unions page renders with possible types', async () => { @@ -172,13 +181,11 @@ describe('GraphQL transformer', { timeout: 10000 }, () => { // Check for union description expect(res.body).toContain('The results of a search.') - // Check for possible types + // Check for possible types in bullet format (without links) expect(res.body).toContain('### Possible types for `SearchResultItem`') - expect(res.body).toMatch(/[*-]\s*\[`Bot`\]\(\/.*graphql\/reference\/objects#bot\)/) - expect(res.body).toMatch( - /[*-]\s*\[`PullRequest`\]\(\/.*graphql\/reference\/objects#pullrequest\)/, - ) - expect(res.body).toMatch(/[*-]\s*\[`User`\]\(\/.*graphql\/reference\/objects#user\)/) + expect(res.body).toMatch(/\*\s*Bot/) + expect(res.body).toMatch(/\*\s*PullRequest/) + expect(res.body).toMatch(/\*\s*User/) }) test('input-objects page renders correctly', async () => { @@ -191,9 +198,9 @@ describe('GraphQL transformer', { timeout: 10000 }, () => { // Check for input object description expect(res.body).toContain('Autogenerated input type of CreateRepository.') - // Check for input fields table + // Check for input fields in bullet format expect(res.body).toContain('### Input fields for `AbortQueuedMigrationsInput`') - expect(res.body).toMatch(/\|\s*`ownerId`\s*\|/) + expect(res.body).toContain('`ownerId`') expect(res.body).toContain('The ID of the organization that is running the migrations.') }) @@ -314,7 +321,6 @@ describe('GraphQL transformer', { timeout: 10000 }, () => { // Check that AUTOTITLE has been resolved expect(res.body).toMatch(/(Forming calls with GraphQL|Hello World)/) - expect(res.body).toContain('(/en/get-started/start-your-journey/hello-world)') // Make sure the raw AUTOTITLE tag is not present expect(res.body).not.toContain('[AUTOTITLE]') diff --git a/src/article-api/transformers/graphql-reference-transformer.ts b/src/article-api/transformers/graphql-reference-transformer.ts index 418ad9ef5ff9..9f18ba4bc518 100644 --- a/src/article-api/transformers/graphql-reference-transformer.ts +++ b/src/article-api/transformers/graphql-reference-transformer.ts @@ -97,12 +97,47 @@ export class GraphQLReferenceTransformer implements PageTransformer { break } + // For objects pages, collapse Connection/Edge types that have only standard + // boilerplate fields into a summary. Types with additional fields are kept. + let connectionEdgeSummary: string[] | null = null + if (schemaKey === 'objects') { + const BOILERPLATE_CONNECTION_FIELDS = new Set(['edges', 'nodes', 'pageInfo', 'totalCount']) + const BOILERPLATE_EDGE_FIELDS = new Set(['cursor', 'node']) + const connEdgeNames: string[] = [] + const filteredItems: Array> = [] + for (const item of preparedItems) { + const name = item.name as string + const fields = item.fields as Array> | undefined + const fieldNames = new Set((fields || []).map((f) => f.name as string)) + + const isBoilerplateConnection = + name.endsWith('Connection') && + fieldNames.size === BOILERPLATE_CONNECTION_FIELDS.size && + [...fieldNames].every((f) => BOILERPLATE_CONNECTION_FIELDS.has(f)) + const isBoilerplateEdge = + name.endsWith('Edge') && + fieldNames.size === BOILERPLATE_EDGE_FIELDS.size && + [...fieldNames].every((f) => BOILERPLATE_EDGE_FIELDS.has(f)) + + if (isBoilerplateConnection || isBoilerplateEdge) { + connEdgeNames.push(name) + } else { + filteredItems.push(item) + } + } + if (connEdgeNames.length > 0) { + connectionEdgeSummary = connEdgeNames.sort() + preparedItems = filteredItems + } + } + const templateData: Record = { pageTitle: page.title, pageIntro: intro, manualContent, items: preparedItems, pageType: schemaKey, + connectionEdgeSummary, } const templateContent = loadTemplate(this.templateName) From cce0dc7bc525595d6fe2dab2d77539566df197de Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Thu, 12 Mar 2026 09:19:09 -0700 Subject: [PATCH 22/29] Article API: extract common base fields in audit log events (#60074) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../templates/audit-logs-page.template.md | 10 ++++++- .../tests/audit-logs-transformer.ts | 26 ++++++++++++++-- .../transformers/audit-logs-transformer.ts | 30 ++++++++++++++++++- 3 files changed, 62 insertions(+), 4 deletions(-) diff --git a/src/article-api/templates/audit-logs-page.template.md b/src/article-api/templates/audit-logs-page.template.md index c91df5343cda..32bbd34531c0 100644 --- a/src/article-api/templates/audit-logs-page.template.md +++ b/src/article-api/templates/audit-logs-page.template.md @@ -6,6 +6,14 @@ ## Audit log events +{% if baseFields.size > 0 %} +### Common fields + +The following fields are included in most audit log events: {% for field in baseFields %}`{{ field }}`{% unless forloop.last %}, {% endunless %}{% endfor %} + +Each event below lists only its additional fields beyond these common fields. + +{% endif %} {% for categoryEntry in categorizedEvents %} {% assign categoryName = categoryEntry[0] %} {% assign events = categoryEntry[1] %} @@ -20,7 +28,7 @@ {{ event.description }} -**Fields:** {% if event.fields %}{% for field in event.fields %}`{{ field }}`{% unless forloop.last %}, {% endunless %}{% endfor %}{% else %}No fields available{% endif %} +{% if event.fields.size > 0 %}**Additional fields:** {% for field in event.fields %}`{{ field }}`{% unless forloop.last %}, {% endunless %}{% endfor %}{% endif %} {% if event.docs_reference_links and event.docs_reference_links != 'N/A' %} **Reference:** {{ event.docs_reference_links }} diff --git a/src/article-api/tests/audit-logs-transformer.ts b/src/article-api/tests/audit-logs-transformer.ts index 1bf493c5fc46..d7869a6538ac 100644 --- a/src/article-api/tests/audit-logs-transformer.ts +++ b/src/article-api/tests/audit-logs-transformer.ts @@ -76,8 +76,30 @@ describe('Audit Logs transformer', () => { // #### `action.name` expect(res.body).toMatch(/#### `[\w.]+`/) - // Check for fields section - expect(res.body).toContain('**Fields:**') + // Check for fields section - either common fields summary or additional fields per event + const body = res.body + const hasCommonFields = body.includes('### Common fields') + const hasAdditionalFields = body.includes('**Additional fields:**') + expect(hasCommonFields || hasAdditionalFields).toBe(true) + + // Validate that a known common field is in the common section and not duplicated + if (hasCommonFields) { + const commonFieldsIndex = body.indexOf('### Common fields') + const commonFieldsSection = body.slice( + commonFieldsIndex, + body.indexOf('\n###', commonFieldsIndex + 1), + ) + expect(commonFieldsSection).toContain('`action`') + } + + // Ensure common fields do not appear in any "Additional fields" section + if (hasAdditionalFields) { + const additionalSections = body.split('**Additional fields:**').slice(1) + for (const section of additionalSections) { + const fieldsLine = section.split('\n')[0] + expect(fieldsLine).not.toContain('`action`') + } + } // Check for reference section expect(res.body).toContain('**Reference:**') diff --git a/src/article-api/transformers/audit-logs-transformer.ts b/src/article-api/transformers/audit-logs-transformer.ts index 1da904f694d8..4d04976aeb3d 100644 --- a/src/article-api/transformers/audit-logs-transformer.ts +++ b/src/article-api/transformers/audit-logs-transformer.ts @@ -99,7 +99,8 @@ export class AuditLogsTransformer implements PageTransformer { // Prepare page intro const intro = page.intro ? await page.renderProp('intro', context, { textOnly: true }) : '' - // Sort categories and events + // Sort categories and events, and compute fields shared by most (≥80%) events + const allFieldSets: string[][] = [] const sortedCategorizedEvents: CategorizedEvents = {} const sortedCategories = Object.keys(categorizedEvents).sort((a, b) => a.localeCompare(b)) @@ -117,11 +118,37 @@ export class AuditLogsTransformer implements PageTransformer { context, ) } + if (newEvent.fields) { + allFieldSets.push(newEvent.fields) + } return newEvent }), ) } + // Compute base fields that appear in ≥80% of events + const fieldCounts = new Map() + for (const fields of allFieldSets) { + for (const f of fields) { + fieldCounts.set(f, (fieldCounts.get(f) || 0) + 1) + } + } + const threshold = allFieldSets.length * 0.8 + const baseFields = [...fieldCounts.entries()] + .filter(([, count]) => count >= threshold) + .map(([field]) => field) + .sort() + + // Remove base fields from each event's field list + const baseFieldSet = new Set(baseFields) + for (const category of Object.keys(sortedCategorizedEvents)) { + for (const event of sortedCategorizedEvents[category]) { + if (event.fields) { + event.fields = event.fields.filter((f: string) => !baseFieldSet.has(f)) + } + } + } + return { page: { title: page.title, @@ -130,6 +157,7 @@ export class AuditLogsTransformer implements PageTransformer { manualContent, categorizedEvents: sortedCategorizedEvents, categoryNotes, + baseFields, } } } From a09d27074994998bb27086e80a3516fcae0bec9f Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Thu, 12 Mar 2026 09:19:19 -0700 Subject: [PATCH 23/29] Fix accessibility: Add row headers to premium features table (#60150) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- content/copilot/concepts/billing/copilot-requests.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/copilot/concepts/billing/copilot-requests.md b/content/copilot/concepts/billing/copilot-requests.md index 20545df515a0..938c149c7011 100644 --- a/content/copilot/concepts/billing/copilot-requests.md +++ b/content/copilot/concepts/billing/copilot-requests.md @@ -35,6 +35,8 @@ Some {% data variables.product.prodname_copilot_short %} features use more advan The following {% data variables.product.prodname_copilot_short %} features can use premium requests. +{% rowheaders %} + | Feature | Premium request consumption | SKU Attribution | | ------- | ----------- | ----------- | | [{% data variables.copilot.copilot_chat_short %}](/copilot/using-github-copilot/copilot-chat) | {% data variables.copilot.copilot_chat_short %} uses **one premium request** per user prompt, multiplied by the model's rate. This includes ask, edit, agent, and plan modes in {% data variables.copilot.copilot_chat_short %} in an IDE. | {% data variables.product.prodname_copilot_short %} premium requests | @@ -46,6 +48,8 @@ The following {% data variables.product.prodname_copilot_short %} features can u | [{% data variables.product.prodname_openai_codex %} {% data variables.product.prodname_vscode %} integration](/copilot/concepts/agents/openai-codex) | While in preview, each prompt to {% data variables.product.prodname_openai_codex %} uses **one premium request** multiplied by the model multiplier rates. | {% data variables.product.prodname_copilot_short %} premium requests | | [Third-party coding agents](/free-pro-team@latest/copilot/concepts/agents/about-third-party-agents) | While in preview, each prompt to a third-party coding agent uses **one premium request**. | {% data variables.product.prodname_copilot_short %} premium requests | +{% endrowheaders %} + > [!TIP] > For instructions on viewing how many premium requests you have used and advice on how to optimize usage, see [AUTOTITLE](/copilot/how-tos/manage-and-track-spending/monitor-premium-requests). From b27ca3fa75e535250a74cdb8765a68191282fb76 Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Thu, 12 Mar 2026 09:19:28 -0700 Subject: [PATCH 24/29] Fix accessibility: Focus target element on in-page anchor navigation (#60152) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/frame/components/ClientSideHashFocus.tsx | 25 ++++++++++++++++++++ src/frame/pages/app.tsx | 2 ++ 2 files changed, 27 insertions(+) create mode 100644 src/frame/components/ClientSideHashFocus.tsx diff --git a/src/frame/components/ClientSideHashFocus.tsx b/src/frame/components/ClientSideHashFocus.tsx new file mode 100644 index 000000000000..b832b6fd02fa --- /dev/null +++ b/src/frame/components/ClientSideHashFocus.tsx @@ -0,0 +1,25 @@ +import { useEffect } from 'react' + +// When an in-page anchor link is clicked (e.g. href="#section-id"), +// browsers scroll to the target but may not move keyboard focus to it. +// This component listens for hash changes and programmatically focuses +// the target element so screen reader and keyboard users land at the +// correct position. +export function ClientSideHashFocus() { + useEffect(() => { + const handleHashChange = () => { + const hash = window.location.hash.slice(1) + if (!hash) return + + const target = document.getElementById(hash) + if (target) { + target.focus({ preventScroll: true }) + } + } + + window.addEventListener('hashchange', handleHashChange) + return () => window.removeEventListener('hashchange', handleHashChange) + }, []) + + return null +} diff --git a/src/frame/pages/app.tsx b/src/frame/pages/app.tsx index 2f4aa2e767f5..5286bdc70310 100644 --- a/src/frame/pages/app.tsx +++ b/src/frame/pages/app.tsx @@ -18,6 +18,7 @@ import { import { useTheme } from '@/color-schemes/components/useTheme' import { SharedUIContextProvider } from '@/frame/components/context/SharedUIContext' import { CTAPopoverProvider } from '@/frame/components/context/CTAContext' +import { ClientSideHashFocus } from '@/frame/components/ClientSideHashFocus' import type { ExtendedRequest } from '@/types' type MyAppProps = AppProps & { @@ -146,6 +147,7 @@ const MyApp = ({ Component, pageProps, languagesContext, stagingName }: MyAppPro + From 7ecd7d9bd720bb36c0004b0db56f686dfbc4b05a Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Thu, 12 Mar 2026 09:19:37 -0700 Subject: [PATCH 25/29] Article API: strip HTML spans from secret scanning patterns (#60077) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../tests/secret-scanning-transformer.ts | 6 ++++++ .../transformers/secret-scanning-transformer.ts | 13 +++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/article-api/tests/secret-scanning-transformer.ts b/src/article-api/tests/secret-scanning-transformer.ts index 44b1440fb3be..be236faf377a 100644 --- a/src/article-api/tests/secret-scanning-transformer.ts +++ b/src/article-api/tests/secret-scanning-transformer.ts @@ -20,6 +20,12 @@ describe('secret scanning article body api', () => { // Verify HTML comments are stripped expect(res.body).not.toMatch(//) + // Verify HTML icon spans are not present (would be replaced with ✓/✗) + expect(res.body).not.toMatch(/]*aria-label="Supported"/) + expect(res.body).not.toMatch(/]*aria-label="Unsupported"/) + // Verify no raw HTML span tags remain + expect(res.body).not.toMatch(/]*>/) + // Verify table content is present with providers expect(res.body).toMatch(/|\s*Provider\s*|/) expect(res.body).toMatch(/\| (Adafruit|AWS|Alibaba|Amazon)/) diff --git a/src/article-api/transformers/secret-scanning-transformer.ts b/src/article-api/transformers/secret-scanning-transformer.ts index 8bed61b8e2a5..5cf9be1430df 100644 --- a/src/article-api/transformers/secret-scanning-transformer.ts +++ b/src/article-api/transformers/secret-scanning-transformer.ts @@ -69,6 +69,19 @@ export class SecretScanningTransformer implements PageTransformer { // Strip HTML comments from the rendered content content = content.replace(//gs, '') + // Replace HTML icon spans with plain text equivalents + content = content.replace(/]*aria-label="Supported"[^>]*>[^<]*<\/span>/g, '✓') + content = content.replace(/]*aria-label="Unsupported"[^>]*>[^<]*<\/span>/g, '✗') + // Convert
tags to newlines and text to markdown links + content = content.replace(//gi, '\n') + content = content.replace(/]*>([^<]*)<\/a>/gi, '[$2]($1)') + // Strip any remaining HTML tags (loop to handle nested/malformed tags) + let previous = '' + while (content !== previous) { + previous = content + content = content.replace(/<[^>]+>/g, '') + } + // Normalize whitespace after stripping comments content = content.replace(/\n{3,}/g, '\n\n').trim() From 0719a917c0503f7e4290a10c3f39f450505b498a Mon Sep 17 00:00:00 2001 From: Belal Taher Date: Thu, 12 Mar 2026 12:37:03 -0400 Subject: [PATCH 26/29] Fixing up var sub for MCP in CCA (#60015) Co-authored-by: Joe Clark <31087804+jc-clark@users.noreply.github.com> --- .../extend-coding-agent-with-mcp.md | 39 +++++++++++-------- .../reference/custom-agents-configuration.md | 4 +- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/content/copilot/how-tos/use-copilot-agents/coding-agent/extend-coding-agent-with-mcp.md b/content/copilot/how-tos/use-copilot-agents/coding-agent/extend-coding-agent-with-mcp.md index 171c7166b099..c82a42627adb 100644 --- a/content/copilot/how-tos/use-copilot-agents/coding-agent/extend-coding-agent-with-mcp.md +++ b/content/copilot/how-tos/use-copilot-agents/coding-agent/extend-coding-agent-with-mcp.md @@ -81,18 +81,27 @@ The configuration object can contain the following keys: **Local MCP specific keys** * `command` (`string`): Required. The command to run to start the MCP server. * `args` (`string[]`): Required. The arguments to pass to the `command`. -* `env` (`object`): Optional. The environment variables to pass to the server. This object should map the name of the environment variable that should be exposed to your MCP server to either of the following: - * The name of a secret you have configured in your {% data variables.product.prodname_copilot_short %} environment, beginning with `COPILOT_MCP_`. - * The name of a variable you have configured in your {% data variables.product.prodname_copilot_short %} environment, beginning with `COPILOT_MCP_`. +* `env` (`object`): Optional. The environment variables to pass to the server. This object should map the name of the environment variable that should be exposed to your MCP server to one of the following: + * A substitution reference to a secret or variable in your {% data variables.product.prodname_copilot_short %} environment, such as `$COPILOT_MCP_API_KEY` or `${COPILOT_MCP_API_KEY}`. Referenced names must start with `COPILOT_MCP_`. + * A literal string value. **Remote MCP specific keys** * `url` (`string`): Required. The MCP server's URL. -* `headers` (`object`): Optional. The headers to attach to requests to the server. This object should map the name of header keys to either of the following: - * The name of a secret you have configured in your {% data variables.product.prodname_copilot_short %} environment, beginning with `COPILOT_MCP_` preceded by a `$`. - * The name of a variable you have configured in your {% data variables.product.prodname_copilot_short %} environment, beginning with `COPILOT_MCP_` preceded by a `$`. - * A string value. +* `headers` (`object`): Optional. The headers to attach to requests to the server. This object should map the name of header keys to one of the following: + * A substitution reference to a secret or variable in your {% data variables.product.prodname_copilot_short %} environment, such as `$COPILOT_MCP_API_KEY` or `${COPILOT_MCP_API_KEY}`. Referenced names must start with `COPILOT_MCP_`. + * A literal string value. -Note that all `string` and `string[]` fields besides `tools` & `type` support substitution with a variable or secret you have configured in your {% data variables.product.prodname_copilot_short %} environment, beginning with `COPILOT_MCP_` preceded by a `$`. +Note that all `string` and `string[]` fields besides `tools` & `type` support substitution with a variable or secret you have configured in your {% data variables.product.prodname_copilot_short %} environment. + +### Variable substitution + +The following syntax patterns are supported for referencing environment variables configured in your {% data variables.product.prodname_copilot_short %} environment: + +| Syntax | Example | +| ----------- | ------------ | +| `$VAR` | `$COPILOT_MCP_API_KEY` | +| `${VAR}` | `${COPILOT_MCP_API_KEY}`| +| `${VAR:-default}` | `${COPILOT_MCP_API_KEY:-fallback_value}` | ## Example configurations @@ -121,13 +130,11 @@ The [Sentry MCP server](https://github.com/getsentry/sentry-mcp) gives {% data v "args": ["@sentry/mcp-server@latest", "--host=$SENTRY_HOST"], "tools": ["get_issue_details", "get_issue_summary"], "env": { - // We can specify an environment variable value as - // a variable in your {% data variables.product.prodname_copilot_short %} environment - // where `COPILOT_MCP_SENTRY_HOST` = "https://contoso.sentry.io"... - "SENTRY_HOST": "COPILOT_MCP_SENTRY_HOST", - // or refer to a secret with a name starting with - // `COPILOT_MCP_`. - "SENTRY_ACCESS_TOKEN": "COPILOT_MCP_SENTRY_ACCESS_TOKEN" + // We can specify an environment variable value as a string... + "SENTRY_HOST": "https://contoso.sentry.io", + // or refer to a variable or secret in your {% data variables.product.prodname_copilot_short %} environment + // with a name starting with `COPILOT_MCP_` + "SENTRY_ACCESS_TOKEN": "$COPILOT_MCP_SENTRY_ACCESS_TOKEN" } } } @@ -158,7 +165,7 @@ The [Notion MCP server](https://github.com/makenotion/notion-mcp-server) gives { "env": { // The value of the `COPILOT_MCP_NOTION_API_KEY` secret will be passed to the // server command as an environment variable called `NOTION_API_KEY` - "NOTION_API_KEY": "COPILOT_MCP_NOTION_API_KEY" + "NOTION_API_KEY": "$COPILOT_MCP_NOTION_API_KEY" }, "tools": ["*"] } diff --git a/content/copilot/reference/custom-agents-configuration.md b/content/copilot/reference/custom-agents-configuration.md index f2f8f0df2f7e..5810f610ed82 100644 --- a/content/copilot/reference/custom-agents-configuration.md +++ b/content/copilot/reference/custom-agents-configuration.md @@ -120,14 +120,14 @@ For compatibility, the `stdio` type used by Claude Code and {% data variables.pr Both the repository-level MCP JSON configuration and the {% data variables.copilot.copilot_custom_agent_short %} YAML configuration support the following syntax patterns: -* `COPILOT_MCP_ENV_VAR_VALUE` - Environment variable only (not recommended due to header differences) * `$COPILOT_MCP_ENV_VAR_VALUE` - Environment variable and header * `${COPILOT_MCP_ENV_VAR_VALUE}` - Environment variable and header (Claude Code syntax) +* `${COPILOT_MCP_ENV_VAR_VALUE:-default}` - Environment variable and header with default The {% data variables.copilot.copilot_custom_agent_short %} YAML configuration supports the following additional syntax patterns: * `{% raw %}${{ secrets.COPILOT_MCP_ENV_VAR_VALUE }}{% endraw %}` - Environment variable and header -* `{% raw %}${{ var.COPILOT_MCP_ENV_VAR_VALUE }}{% endraw %}` - Environment variable and header +* `{% raw %}${{ vars.COPILOT_MCP_ENV_VAR_VALUE }}{% endraw %}` - Environment variable and header ## Example {% data variables.copilot.agent_profile %} configurations From 39327a4e496ef7f2eb8458a2bd6fc1b6bf655cdf Mon Sep 17 00:00:00 2001 From: Joe Clark <31087804+jc-clark@users.noreply.github.com> Date: Thu, 12 Mar 2026 09:39:00 -0700 Subject: [PATCH 27/29] Landing page: Pull requests (#60178) --- .../about-merge-conflicts.md | 2 ++ .../resolving-a-merge-conflict-on-github.md | 2 ++ ...a-merge-conflict-using-the-command-line.md | 2 ++ .../about-status-checks.md | 2 ++ .../troubleshooting-required-status-checks.md | 2 ++ .../working-with-pre-receive-hooks.md | 2 ++ .../about-collaborative-development-models.md | 2 ++ .../helping-others-review-your-changes.md | 2 ++ ...anaging-and-standardizing-pull-requests.md | 2 ++ .../about-pull-request-merges.md | 2 ++ .../automatically-merging-a-pull-request.md | 2 ++ .../closing-a-pull-request.md | 2 ++ ...rging-a-pull-request-with-a-merge-queue.md | 2 ++ .../merging-a-pull-request.md | 2 ++ .../reverting-a-pull-request.md | 2 ++ .../about-branches.md | 2 ++ ...out-comparing-branches-in-pull-requests.md | 2 ++ .../about-pull-requests.md | 2 ++ ...nging-the-base-branch-of-a-pull-request.md | 2 ++ .../changing-the-stage-of-a-pull-request.md | 2 ++ ...pull-request-branch-created-from-a-fork.md | 2 ++ .../creating-a-pull-request-from-a-fork.md | 2 ++ .../creating-a-pull-request.md | 2 ++ ...eleting-branches-within-your-repository.md | 2 ++ ...ll-request-in-sync-with-the-base-branch.md | 2 ++ .../requesting-a-pull-request-review.md | 2 ++ ...ery-parameters-to-create-a-pull-request.md | 2 ++ .../about-pull-request-reviews.md | 2 ++ ...ng-a-pull-request-with-required-reviews.md | 2 ++ .../checking-out-pull-requests-locally.md | 2 ++ .../commenting-on-a-pull-request.md | 2 ++ .../dismissing-a-pull-request-review.md | 2 ++ .../filtering-files-in-a-pull-request.md | 2 ++ ...methods-and-functions-in-a-pull-request.md | 2 ++ ...rporating-feedback-in-your-pull-request.md | 2 ++ ...ng-dependency-changes-in-a-pull-request.md | 2 ++ ...wing-proposed-changes-in-a-pull-request.md | 2 ++ .../viewing-a-pull-request-review.md | 2 ++ .../working-with-forks/about-forks.md | 2 ++ ...out-permissions-and-visibility-of-forks.md | 2 ++ ...pull-request-branch-created-from-a-fork.md | 2 ++ ...figuring-a-remote-repository-for-a-fork.md | 2 ++ .../working-with-forks/detaching-a-fork.md | 2 ++ .../working-with-forks/fork-a-repo.md | 2 ++ .../working-with-forks/syncing-a-fork.md | 2 ++ ...sitory-is-deleted-or-changes-visibility.md | 2 ++ .../about-commits.md | 2 ++ .../changing-a-commit-message.md | 2 ++ ...g-a-commit-on-behalf-of-an-organization.md | 2 ++ ...creating-a-commit-with-multiple-authors.md | 2 ++ ...sts-on-github-but-not-in-my-local-clone.md | 2 ++ ...my-commit-is-blocked-by-push-protection.md | 2 ++ ...are-my-commits-linked-to-the-wrong-user.md | 2 ++ .../comparing-commits.md | 2 ++ .../differences-between-commit-views.md | 2 ++ content/pull-requests/index.md | 32 ++++++++++--------- 56 files changed, 127 insertions(+), 15 deletions(-) diff --git a/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts.md b/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts.md index 477d82aaa4fd..6ba63ab97051 100644 --- a/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts.md +++ b/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts.md @@ -11,6 +11,8 @@ versions: fpt: '*' ghec: '*' ghes: '*' +category: + - Merge and close pull requests --- Git can often resolve differences between branches and merge them automatically. Usually, the changes are on different lines, or even in different files, which makes the merge simple for computers to understand. However, sometimes there are competing changes that Git can't resolve without your help. Often, merge conflicts happen when people make different changes to the same line of the same file, or when one person edits a file and another person deletes the same file. diff --git a/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-on-github.md b/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-on-github.md index 3599fb8bd187..85a823e9f384 100644 --- a/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-on-github.md +++ b/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-on-github.md @@ -12,6 +12,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Resolve merge conflicts +category: + - Merge and close pull requests --- You can only resolve merge conflicts on {% data variables.product.github %} that are caused by competing line changes, such as when people make different changes to the same line of the same file on different branches in your Git repository. For all other types of merge conflicts, you must resolve the conflict locally on the command line. For more information, see [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line). diff --git a/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md b/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md index dcdb803acbd3..f7d9e9aa5c88 100644 --- a/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md +++ b/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md @@ -12,6 +12,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Resolve merge conflicts in Git +category: + - Merge and close pull requests --- Merge conflicts occur when competing changes are made to the same line of a file, or when one person edits a file and another person deletes the same file. For more information, see [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts). diff --git a/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks.md b/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks.md index 75c1e438e37b..6f313dcd5c63 100644 --- a/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks.md +++ b/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks.md @@ -11,6 +11,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +category: + - Merge and close pull requests --- Status checks are based on external processes, such as continuous integration builds, which run for each push you make to a repository. You can see the _pending_, _passing_, or _failing_ state of status checks next to individual commits in your pull request. diff --git a/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/troubleshooting-required-status-checks.md b/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/troubleshooting-required-status-checks.md index c7858a8694fa..8ea2fc31d185 100644 --- a/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/troubleshooting-required-status-checks.md +++ b/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/troubleshooting-required-status-checks.md @@ -11,6 +11,8 @@ redirect_from: - /github/administering-a-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks - /repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks shortTitle: Required status checks +category: + - Merge and close pull requests --- If you have a check and a status with the same name, and you select that name as a required status check, both the check and the status are required. For more information, see [AUTOTITLE](/rest/checks). diff --git a/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/working-with-pre-receive-hooks.md b/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/working-with-pre-receive-hooks.md index 5ee2b87e6d60..7f1f1babef16 100644 --- a/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/working-with-pre-receive-hooks.md +++ b/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/working-with-pre-receive-hooks.md @@ -9,6 +9,8 @@ redirect_from: versions: ghes: '*' shortTitle: Pre-receive hooks +category: + - Merge and close pull requests --- Pre-receive hooks run tests on code pushed to a repository to ensure contributions meet repository or organization policy. If the commit contents pass the tests, the push will be accepted into the repository. If the commit contents do not pass the tests, the push will not be accepted. diff --git a/content/pull-requests/collaborating-with-pull-requests/getting-started/about-collaborative-development-models.md b/content/pull-requests/collaborating-with-pull-requests/getting-started/about-collaborative-development-models.md index 5865690c38aa..c0fdda96d586 100644 --- a/content/pull-requests/collaborating-with-pull-requests/getting-started/about-collaborative-development-models.md +++ b/content/pull-requests/collaborating-with-pull-requests/getting-started/about-collaborative-development-models.md @@ -12,6 +12,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Collaborative development +category: + - Create pull requests --- ## Fork and pull model diff --git a/content/pull-requests/collaborating-with-pull-requests/getting-started/helping-others-review-your-changes.md b/content/pull-requests/collaborating-with-pull-requests/getting-started/helping-others-review-your-changes.md index 7a3f208e78c0..3bdb6e290bc6 100644 --- a/content/pull-requests/collaborating-with-pull-requests/getting-started/helping-others-review-your-changes.md +++ b/content/pull-requests/collaborating-with-pull-requests/getting-started/helping-others-review-your-changes.md @@ -8,6 +8,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Help others review your changes +category: + - Create pull requests --- When you create a pull request, you’re asking your team to review your changes and provide feedback. This guide provides best practices for creating pull requests that are easy to review and keep your team informed, so that you can improve collaboration and the quality of reviews. diff --git a/content/pull-requests/collaborating-with-pull-requests/getting-started/managing-and-standardizing-pull-requests.md b/content/pull-requests/collaborating-with-pull-requests/getting-started/managing-and-standardizing-pull-requests.md index 4acb7fc58fea..e07baef0bf4e 100644 --- a/content/pull-requests/collaborating-with-pull-requests/getting-started/managing-and-standardizing-pull-requests.md +++ b/content/pull-requests/collaborating-with-pull-requests/getting-started/managing-and-standardizing-pull-requests.md @@ -6,6 +6,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Manage and standardize pull requests +category: + - Create pull requests --- If you are a repository maintainer, there are several ways that you can manage and standardize the pull requests that contributors create in your repository. These steps can help you ensure that pull requests are reviewed by the right people, and that they meet your repository's standards. diff --git a/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges.md b/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges.md index b7b2313158b4..7c33b631ebc3 100644 --- a/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges.md +++ b/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges.md @@ -11,6 +11,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +category: + - Merge and close pull requests --- ## Merge your commits diff --git a/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request.md index e38507a096f0..06c7d51021c8 100644 --- a/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request.md @@ -11,6 +11,8 @@ redirect_from: - /github/collaborating-with-issues-and-pull-requests/automatically-merging-a-pull-request - /github/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request shortTitle: Merge PR automatically +category: + - Merge and close pull requests --- ## About auto-merge diff --git a/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/closing-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/closing-a-pull-request.md index e411fdfea144..5cfb6a890630 100644 --- a/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/closing-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/closing-a-pull-request.md @@ -10,6 +10,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +category: + - Merge and close pull requests --- > [!TIP] diff --git a/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request-with-a-merge-queue.md b/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request-with-a-merge-queue.md index e0878f9b4e5a..662eba9f8ecc 100644 --- a/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request-with-a-merge-queue.md +++ b/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request-with-a-merge-queue.md @@ -11,6 +11,8 @@ redirect_from: - /github/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/adding-a-pull-request-to-the-merge-queue defaultTool: webui product: '{% data reusables.gated-features.merge-queue %}' +category: + - Merge and close pull requests --- ## About merge queues diff --git a/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md index c0b71f784c90..3367f2ec9bf7 100644 --- a/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md @@ -10,6 +10,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +category: + - Merge and close pull requests --- ## About pull request merges diff --git a/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/reverting-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/reverting-a-pull-request.md index 67a085664060..ac420eb09645 100644 --- a/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/reverting-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/reverting-a-pull-request.md @@ -10,6 +10,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +category: + - Merge and close pull requests --- ## About reverting a pull request diff --git a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches.md b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches.md index 2c73bdd1f13c..0a2476e41dfb 100644 --- a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches.md +++ b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches.md @@ -11,6 +11,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +category: + - Create pull requests --- ## About branches diff --git a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-comparing-branches-in-pull-requests.md b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-comparing-branches-in-pull-requests.md index 8c35c33ced71..b24ce8799018 100644 --- a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-comparing-branches-in-pull-requests.md +++ b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-comparing-branches-in-pull-requests.md @@ -11,6 +11,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Compare branches +category: + - Create pull requests --- > [!NOTE] diff --git a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests.md b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests.md index b3af4e9e1ba1..ddceef8f136e 100644 --- a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests.md +++ b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests.md @@ -11,6 +11,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +category: + - Create pull requests --- Pull requests are proposals to merge code changes into a project. A pull request is {% data variables.product.github %}'s foundational **collaboration feature**, letting you discuss and review changes before merging them. This helps teams work together, catch issues early, and maintain code quality. diff --git a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-base-branch-of-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-base-branch-of-a-pull-request.md index 7159f39a083a..a8c9f85046c6 100644 --- a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-base-branch-of-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-base-branch-of-a-pull-request.md @@ -11,6 +11,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Change the base branch +category: + - Create pull requests --- > [!WARNING] diff --git a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request.md index 8c5790ef5977..c9ade7970c80 100644 --- a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request.md @@ -12,6 +12,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Change the state +category: + - Create pull requests --- ## Marking a pull request as ready for review diff --git a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/committing-changes-to-a-pull-request-branch-created-from-a-fork.md b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/committing-changes-to-a-pull-request-branch-created-from-a-fork.md index 0e4c06800730..37b282b1c1bc 100644 --- a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/committing-changes-to-a-pull-request-branch-created-from-a-fork.md +++ b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/committing-changes-to-a-pull-request-branch-created-from-a-fork.md @@ -11,6 +11,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Commit to PR branch from fork +category: + - Create pull requests --- You can only make commits on pull request branches that: * Are opened in a repository that you have push access to and that were created from a fork of that repository diff --git a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork.md b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork.md index d85e5fedc26c..565d82402dc3 100644 --- a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork.md +++ b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork.md @@ -12,6 +12,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Create a PR from a fork +category: + - Create pull requests --- If your pull request compares your topic branch with a branch in the upstream repository as the base branch, then your topic branch is also called the "compare branch" of the pull request. diff --git a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request.md index 90ff76a4f801..c3a68a1112d2 100644 --- a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request.md @@ -10,6 +10,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +category: + - Create pull requests --- If you want to create a new branch for your pull request and do not have write permissions to the repository, you can fork the repository first. For more information, see [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork) and [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks). diff --git a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository.md b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository.md index 6b93a529b3b8..ae9815947711 100644 --- a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository.md +++ b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository.md @@ -11,6 +11,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Create & delete branches +category: + - Create pull requests --- ## Creating a branch diff --git a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/keeping-your-pull-request-in-sync-with-the-base-branch.md b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/keeping-your-pull-request-in-sync-with-the-base-branch.md index ecbc2d648274..6a3ce11aad7c 100644 --- a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/keeping-your-pull-request-in-sync-with-the-base-branch.md +++ b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/keeping-your-pull-request-in-sync-with-the-base-branch.md @@ -7,6 +7,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Update the head branch +category: + - Create pull requests --- ## About keeping your pull request in sync diff --git a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review.md b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review.md index be9394e0f3b3..b17309e3689b 100644 --- a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review.md +++ b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review.md @@ -12,6 +12,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Request a PR review +category: + - Create pull requests --- Repositories belong to a personal account (a single individual owner) or an organization account (a shared account with numerous collaborators or maintainers). For more information, see [AUTOTITLE](/get-started/learning-about-github/types-of-github-accounts). Owners and collaborators on a repository owned by a personal account can assign pull request reviews. Organization members with triage permissions can also assign a reviewer for a pull request. diff --git a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/using-query-parameters-to-create-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/using-query-parameters-to-create-a-pull-request.md index 846b8667a59f..79a98e51c40b 100644 --- a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/using-query-parameters-to-create-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/using-query-parameters-to-create-a-pull-request.md @@ -7,6 +7,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +category: + - Create pull requests --- You can use query parameters to open pull requests. Query parameters are optional parts of a URL you can customize to share a specific web page view, such as search filter results or a pull request template on {% data variables.product.prodname_dotcom %}. To create your own query parameters, you must match the key and value pair. For more information on creating pull request templates, see [AUTOTITLE](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/creating-a-pull-request-template-for-your-repository). diff --git a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews.md b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews.md index c44d699f91aa..c65c7ffdacd7 100644 --- a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews.md +++ b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews.md @@ -11,6 +11,8 @@ versions: ghes: '*' ghec: '*' shortTitle: About PR reviews +category: + - Review pull requests --- Pull request reviews are one of the primary ways people collaborate on {% data variables.product.github %}. Reviewers can comment on changes, suggest improvements, and approve or request changes before code is merged. This collaborative process enables teams to ensure code quality and share knowledge. diff --git a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/approving-a-pull-request-with-required-reviews.md b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/approving-a-pull-request-with-required-reviews.md index 2037b30cdd24..b1a2ebcc3edc 100644 --- a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/approving-a-pull-request-with-required-reviews.md +++ b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/approving-a-pull-request-with-required-reviews.md @@ -11,6 +11,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Required reviews +category: + - Review pull requests --- For more information about required reviews, see [AUTOTITLE](/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-pull-request-reviews-before-merging). diff --git a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally.md b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally.md index 79e7658cd03a..bdab46bb5fc5 100644 --- a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally.md +++ b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally.md @@ -11,6 +11,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Check out a PR locally +category: + - Review pull requests --- > [!NOTE] diff --git a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request.md index 61a8fb6da749..30fa9ac44b0d 100644 --- a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request.md @@ -14,6 +14,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Comment on a PR +category: + - Review pull requests --- ## About pull request comments diff --git a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/dismissing-a-pull-request-review.md b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/dismissing-a-pull-request-review.md index a31c601f1a6a..77ebac8fb36b 100644 --- a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/dismissing-a-pull-request-review.md +++ b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/dismissing-a-pull-request-review.md @@ -11,6 +11,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Dismiss a PR review +category: + - Review pull requests --- {% data reusables.pull_requests.dismiss_review %} This changes the status of the review to a review comment. When you dismiss a review, you must add a comment explaining why you dismissed it. Your comment will be added to the pull request conversation. diff --git a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md index c1595beceebe..6dd12604a887 100644 --- a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md @@ -12,6 +12,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Filter files +category: + - Review pull requests --- You can filter files in a pull request by file extension type, such as `.html` or `.js`, lack of an extension, code ownership, or dotfiles. You can also use the file tree to filter by file path, navigate between files, or see a high level view of the changed files. diff --git a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/finding-changed-methods-and-functions-in-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/finding-changed-methods-and-functions-in-a-pull-request.md index b17d4bc772dc..de7ca8a610f1 100644 --- a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/finding-changed-methods-and-functions-in-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/finding-changed-methods-and-functions-in-a-pull-request.md @@ -11,6 +11,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Methods & functions +category: + - Review pull requests --- Anyone with read access to a repository can see a summary list of the functions and methods changes in certain files of a pull request. diff --git a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/incorporating-feedback-in-your-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/incorporating-feedback-in-your-pull-request.md index aee3a2ff594c..95ad17acc2d0 100644 --- a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/incorporating-feedback-in-your-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/incorporating-feedback-in-your-pull-request.md @@ -11,6 +11,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Incorporate feedback +category: + - Review pull requests --- ## Applying suggested changes diff --git a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md index 7c75e4bdfb8f..d51d619c4f43 100644 --- a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md @@ -12,6 +12,8 @@ redirect_from: - /github/collaborating-with-issues-and-pull-requests/reviewing-dependency-changes-in-a-pull-request - /github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request shortTitle: Review dependency changes +category: + - Review pull requests --- diff --git a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request.md index 179d44d8b5ba..8da6f061f447 100644 --- a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request.md @@ -11,6 +11,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Review proposed changes +category: + - Review pull requests --- ## About reviewing pull requests diff --git a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/viewing-a-pull-request-review.md b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/viewing-a-pull-request-review.md index 3877e3419e7c..45c51d259868 100644 --- a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/viewing-a-pull-request-review.md +++ b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/viewing-a-pull-request-review.md @@ -11,6 +11,8 @@ versions: ghes: '*' ghec: '*' shortTitle: View a PR review +category: + - Review pull requests --- {% data reusables.search.requested_reviews_search %} diff --git a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks.md b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks.md index f93515f1b8c6..24faad799ea5 100644 --- a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks.md +++ b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks.md @@ -10,6 +10,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +category: + - Work with forks --- ## About forks diff --git a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/about-permissions-and-visibility-of-forks.md b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/about-permissions-and-visibility-of-forks.md index 4af782227b72..cc9f250fec2b 100644 --- a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/about-permissions-and-visibility-of-forks.md +++ b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/about-permissions-and-visibility-of-forks.md @@ -6,6 +6,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +category: + - Work with forks --- ## About permissions for creating forks diff --git a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork.md b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork.md index b49578f26927..9cb5dfb470bf 100644 --- a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork.md +++ b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork.md @@ -12,6 +12,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Allow changes to a branch +category: + - Work with forks --- When a user creates a pull request from their fork, the user generally has the authority to decide if other users can commit to the pull request's compare branch. If the pull request author wants greater collaboration, they can grant maintainers of the upstream repository (that is, anyone with push access to the upstream repository) permission to commit to the pull request's compare branch. To learn more about upstream repositories, see [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks). diff --git a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-repository-for-a-fork.md b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-repository-for-a-fork.md index 0947569c8ec4..37eb7b5395ba 100644 --- a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-repository-for-a-fork.md +++ b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-repository-for-a-fork.md @@ -12,6 +12,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Configure a remote repository +category: + - Work with forks --- {% data reusables.command_line.open_the_multi_os_terminal %} 1. List the current configured remote repository for your fork. diff --git a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/detaching-a-fork.md b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/detaching-a-fork.md index d9a0803022a0..0830fe84ec9a 100644 --- a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/detaching-a-fork.md +++ b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/detaching-a-fork.md @@ -6,6 +6,8 @@ versions: ghes: '*' ghec: '*' permissions: People with admin access for a forked repository can delete the forked repository. +category: + - Work with forks --- {% ifversion ghes > 3.16 %} diff --git a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo.md b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo.md index 327f6fd85e89..9c6d6c1f79bd 100644 --- a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo.md +++ b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo.md @@ -14,6 +14,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +category: + - Work with forks --- ## About forks diff --git a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md index 0b33d8504a71..ae7bc77e8afc 100644 --- a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md +++ b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md @@ -16,6 +16,8 @@ versions: ghes: '*' ghec: '*' permissions: People with write access for a forked repository can sync the fork to the upstream repository. +category: + - Work with forks --- ## Syncing a fork branch from the web UI diff --git a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility.md b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility.md index 8d8c0b3159ce..d5c4da2c6cce 100644 --- a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility.md +++ b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility.md @@ -12,6 +12,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Deleted or changes visibility +category: + - Work with forks --- {% data reusables.repositories.deleted_forks_from_private_repositories_warning %} diff --git a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md index 9a0af64cb18f..deb685c40808 100644 --- a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md +++ b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md @@ -11,6 +11,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +category: + - Commit changes --- ## About commits diff --git a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message.md b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message.md index 4e6dca6f92e7..19a001e3a0e5 100644 --- a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message.md +++ b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message.md @@ -10,6 +10,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +category: + - Commit changes --- ## Rewriting the most recent commit message diff --git a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-on-behalf-of-an-organization.md b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-on-behalf-of-an-organization.md index 83c7b359b7f4..df0e355ef36c 100644 --- a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-on-behalf-of-an-organization.md +++ b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-on-behalf-of-an-organization.md @@ -9,6 +9,8 @@ versions: fpt: '*' ghec: '*' shortTitle: On behalf of an organization +category: + - Commit changes --- To create commits on behalf of an organization: diff --git a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors.md b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors.md index 284cf71e49d7..af1828d926b6 100644 --- a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors.md +++ b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors.md @@ -10,6 +10,8 @@ versions: ghes: '*' ghec: '*' shortTitle: With multiple authors +category: + - Commit changes --- ## Required co-author information diff --git a/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/commit-exists-on-github-but-not-in-my-local-clone.md b/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/commit-exists-on-github-but-not-in-my-local-clone.md index 790fda044ade..473219ac1cc6 100644 --- a/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/commit-exists-on-github-but-not-in-my-local-clone.md +++ b/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/commit-exists-on-github-but-not-in-my-local-clone.md @@ -10,6 +10,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Commit missing in local clone +category: + - Commit changes --- When you use `git show` to view a specific commit on the command line, you may get a fatal error. diff --git a/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/my-commit-is-blocked-by-push-protection.md b/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/my-commit-is-blocked-by-push-protection.md index 37e377b6f4a3..a6fcad2fb217 100644 --- a/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/my-commit-is-blocked-by-push-protection.md +++ b/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/my-commit-is-blocked-by-push-protection.md @@ -6,6 +6,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Commit blocked by push protection +category: + - Commit changes --- ## Understanding why push protection has blocked your commit diff --git a/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/why-are-my-commits-linked-to-the-wrong-user.md b/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/why-are-my-commits-linked-to-the-wrong-user.md index 2e1f02cf0efb..65a07c679a71 100644 --- a/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/why-are-my-commits-linked-to-the-wrong-user.md +++ b/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/why-are-my-commits-linked-to-the-wrong-user.md @@ -11,6 +11,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Linked to wrong user +category: + - Commit changes --- > [!NOTE] diff --git a/content/pull-requests/committing-changes-to-your-project/viewing-and-comparing-commits/comparing-commits.md b/content/pull-requests/committing-changes-to-your-project/viewing-and-comparing-commits/comparing-commits.md index 8979e7ffc4e2..22c3687f4a93 100644 --- a/content/pull-requests/committing-changes-to-your-project/viewing-and-comparing-commits/comparing-commits.md +++ b/content/pull-requests/committing-changes-to-your-project/viewing-and-comparing-commits/comparing-commits.md @@ -10,6 +10,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +category: + - Commit changes --- To compare different versions of your repository, append `/compare` to your repository's path. diff --git a/content/pull-requests/committing-changes-to-your-project/viewing-and-comparing-commits/differences-between-commit-views.md b/content/pull-requests/committing-changes-to-your-project/viewing-and-comparing-commits/differences-between-commit-views.md index 237a068feb1a..3831ff9894ee 100644 --- a/content/pull-requests/committing-changes-to-your-project/viewing-and-comparing-commits/differences-between-commit-views.md +++ b/content/pull-requests/committing-changes-to-your-project/viewing-and-comparing-commits/differences-between-commit-views.md @@ -10,6 +10,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Commit views +category: + - Commit changes --- On {% data variables.product.github %}, you can see the commit history of a repository by: diff --git a/content/pull-requests/index.md b/content/pull-requests/index.md index aa825f992ac8..934e0217c934 100644 --- a/content/pull-requests/index.md +++ b/content/pull-requests/index.md @@ -3,24 +3,26 @@ title: Pull requests documentation intro: 'Learn how to use pull requests to suggest changes to a project, receive suggested changes to your own projects, and address issues in pull requests, such as merge conflicts.' introLinks: overview: /pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests -featuredLinks: - startHere: - - /pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message - - /pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line - - /pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository +changelog: + label: pull-requests +layout: discovery-landing +carousels: + recommended: + - /pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests + - /pull-requests/collaborating-with-pull-requests/getting-started/about-collaborative-development-models - /pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request - popular: - - /pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews + - /pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request + - /pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request - /pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-on-github + - /pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo - /pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork - - /pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request - guideCards: - - /pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/approving-a-pull-request-with-required-reviews - - /pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/reverting-a-pull-request - - /pull-requests/committing-changes-to-your-project/troubleshooting-commits/why-are-my-commits-linked-to-the-wrong-user -changelog: - label: pull-requests -layout: product-landing + - /pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits +includedCategories: + - Create pull requests + - Review pull requests + - Merge and close pull requests + - Work with forks + - Commit changes shortTitle: Pull requests versions: fpt: '*' From d41564f5aa354a007060e2e288d01819716d42a8 Mon Sep 17 00:00:00 2001 From: Jenni C <97056108+dihydroJenoxide@users.noreply.github.com> Date: Thu, 12 Mar 2026 09:41:19 -0700 Subject: [PATCH 28/29] Auto GA in JetBrains IDEs (#59757) Co-authored-by: Nhu Do --- .../copilot/concepts/auto-model-selection.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/content/copilot/concepts/auto-model-selection.md b/content/copilot/concepts/auto-model-selection.md index b7dbce996bc8..871b9440e6a2 100644 --- a/content/copilot/concepts/auto-model-selection.md +++ b/content/copilot/concepts/auto-model-selection.md @@ -13,12 +13,11 @@ category: ## Overview -Experience less rate limiting and reduce the mental load of choosing a model by letting {% data variables.copilot.copilot_auto_model_selection %} automatically choose the best available model on your behalf. +Experience less rate limiting and reduce the mental load of choosing a model by letting {% data variables.copilot.copilot_auto_model_selection %} choose the best available model on your behalf. -{% data variables.copilot.copilot_auto_model_selection %} is currently optimized for model availability, choosing from a list of models that may change over time. - -With {% data variables.copilot.copilot_auto_model_selection %}, you benefit from: - * Reduced chances of rate limiting +{% data variables.copilot.copilot_auto_model_selection %} intelligently chooses models based on real time system health and model performance. You benefit from: + * Reduced rate limiting + * Lower latency and errors * Discounted multipliers for paid plans ({% data variables.copilot.copilot_chat_short %} only) {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} **won't** include these models: @@ -26,17 +25,17 @@ With {% data variables.copilot.copilot_auto_model_selection %}, you benefit from * Models with premium request multipliers greater than one. See [AUTOTITLE](/copilot/reference/ai-models/supported-models#model-multipliers). * Models not available in your plan. See [AUTOTITLE](/copilot/reference/ai-models/supported-models#supported-ai-models-per-copilot-plan). -> [!NOTE] Soon {% data variables.copilot.copilot_auto_model_selection %} will choose the best model for you by taking into account both model availability and your task. +> [!NOTE] Soon {% data variables.copilot.copilot_auto_model_selection %} will choose the best model for you based on your task. ## {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} in {% data variables.copilot.copilot_chat_short %} {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} is generally available in the following IDEs: * {% data variables.product.prodname_vscode_shortname %} + * JetBrains IDEs {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} is in public preview for the following IDEs: * {% data variables.product.prodname_vs %} * Eclipse - * JetBrains IDEs * Xcode When you select **Auto** in {% data variables.copilot.copilot_chat_short %}, {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} may choose from the following list of models, subject to your policies and subscription type. Models may change over time. @@ -50,7 +49,7 @@ When you select **Auto** in {% data variables.copilot.copilot_chat_short %}, {% > [!TIP] To see which model was used for each response, hover over the response in {% data variables.copilot.copilot_chat_short %}. -While {% data variables.copilot.copilot_auto_model_selection_short %} is an option for {% data variables.copilot.copilot_chat_short %}, you can manually choose a different model to override this selection. {% data reusables.copilot.change-the-ai-model %} + {% data reusables.copilot.change-the-ai-model %} ### Multiplier discounts @@ -65,6 +64,4 @@ During the {% data variables.release-phases.public_preview %}, if you're using a When you select **Auto** in {% data variables.copilot.copilot_coding_agent %}, {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} currently chooses from the following list of models, subject to your policies and subscription type: {% data reusables.copilot.copilot-coding-agent-auto-models %} -While {% data variables.copilot.copilot_auto_model_selection_short %} is an option for {% data variables.copilot.copilot_coding_agent %}, you can manually choose a different model to override this selection. - {% data reusables.copilot.change-the-ai-model-copilot-coding-agent %} From 85f35436550ee9843a0e0c3a2b95b0017defb77c Mon Sep 17 00:00:00 2001 From: Joe Clark <31087804+jc-clark@users.noreply.github.com> Date: Thu, 12 Mar 2026 09:50:54 -0700 Subject: [PATCH 29/29] Landing page: account-and-profile (#60154) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../concepts/account-management.md | 2 ++ .../concepts/contributions-on-your-profile.md | 2 ++ .../concepts/email-addresses.md | 2 ++ .../concepts/organization-membership.md | 2 ++ .../concepts/organization-profile.md | 2 ++ .../concepts/personal-profile.md | 2 ++ .../concepts/username-changes.md | 2 ++ .../get-started/account.md | 2 ++ .../personal-dashboard-quickstart.md | 2 ++ .../get-started/profile.md | 2 ++ .../changing-your-username.md | 2 ++ .../converting-a-user-into-an-organization.md | 2 ++ .../deleting-your-personal-account.md | 2 ++ .../managing-multiple-accounts.md | 2 ++ .../merging-multiple-personal-accounts.md | 2 ++ .../moving-your-work-to-an-organization.md | 2 ++ ...our-email-address-from-a-locked-account.md | 2 ++ ...rating-jira-with-your-personal-projects.md | 2 ++ .../manage-cookie-preferences.md | 2 ++ ...o-your-personal-accounts-project-boards.md | 2 ++ .../managing-accessibility-settings.md | 2 ++ ...managing-security-and-analysis-features.md | 2 ++ ...ging-your-tab-size-rendering-preference.md | 2 ++ ...oject-board-owned-by-a-personal-account.md | 2 ++ .../prepare-for-job-change.md | 2 ++ .../set-your-hiring-status.md | 2 ++ ...-private-contributions-and-achievements.md | 2 ++ ...ributions-from-github-enterprise-server.md | 2 ++ ...erview-of-your-activity-on-your-profile.md | 2 ++ .../troubleshooting-missing-contributions.md | 2 ++ ...ewing-commit-details-from-your-timeline.md | 2 ++ .../viewing-contributions-on-your-profile.md | 2 ++ ...an-email-address-to-your-github-account.md | 2 ++ ...that-expose-your-personal-email-address.md | 2 ++ .../changing-your-primary-email-address.md | 2 ++ ...membering-your-github-username-or-email.md | 2 ++ .../setting-a-backup-email-address.md | 2 ++ .../setting-your-commit-email-address.md | 2 ++ .../troubleshooting-adding-an-email.md | 2 ++ .../troubleshooting-email-verification.md | 2 ++ .../verifying-your-email-address.md | 2 ++ .../accessing-an-organization.md | 2 ++ ...izing-or-hiding-organization-membership.md | 2 ++ .../removing-yourself-from-an-enterprise.md | 2 ++ .../removing-yourself-from-an-organization.md | 2 ++ ...ng-organization-approval-for-oauth-apps.md | 2 ++ ...iewing-peoples-roles-in-an-organization.md | 2 ++ .../managing-your-profile-readme.md | 2 ++ .../pinning-items-to-your-profile.md | 2 ++ .../setting-your-profile-to-private.md | 2 ++ content/account-and-profile/index.md | 36 +++++++++++-------- .../reference/email-addresses-reference.md | 2 ++ .../reference/personal-account-reference.md | 2 ++ .../reference/personal-dashboard.md | 2 ++ .../profile-contributions-reference.md | 2 ++ .../reference/profile-reference.md | 2 ++ .../reference/username-reference.md | 2 ++ .../tutorials/personalize-your-profile.md | 2 ++ ...r-github-profile-to-enhance-your-resume.md | 2 ++ 59 files changed, 138 insertions(+), 14 deletions(-) diff --git a/content/account-and-profile/concepts/account-management.md b/content/account-and-profile/concepts/account-management.md index d4654c950f75..a5e899f0ea2b 100644 --- a/content/account-and-profile/concepts/account-management.md +++ b/content/account-and-profile/concepts/account-management.md @@ -9,6 +9,8 @@ shortTitle: Account management contentType: concepts redirect_from: - /account-and-profile/concepts/personal-account-management +category: + - Set up your account --- {% ifversion ghes < 3.21 %} diff --git a/content/account-and-profile/concepts/contributions-on-your-profile.md b/content/account-and-profile/concepts/contributions-on-your-profile.md index 53e4429d0908..1baafffa63be 100644 --- a/content/account-and-profile/concepts/contributions-on-your-profile.md +++ b/content/account-and-profile/concepts/contributions-on-your-profile.md @@ -9,6 +9,8 @@ shortTitle: Profile contributions contentType: concepts redirect_from: - /account-and-profile/concepts/contributions-visible-on-your-profile +category: + - Track your contributions --- ## About your contribution graph diff --git a/content/account-and-profile/concepts/email-addresses.md b/content/account-and-profile/concepts/email-addresses.md index 04764a559752..04f12356db96 100644 --- a/content/account-and-profile/concepts/email-addresses.md +++ b/content/account-and-profile/concepts/email-addresses.md @@ -7,6 +7,8 @@ versions: ghec: '*' shortTitle: Email addresses contentType: concepts +category: + - Manage your email --- ## Adding an email address to your {% data variables.product.github %} account diff --git a/content/account-and-profile/concepts/organization-membership.md b/content/account-and-profile/concepts/organization-membership.md index 03c8a610bd6e..6736a1efa6fa 100644 --- a/content/account-and-profile/concepts/organization-membership.md +++ b/content/account-and-profile/concepts/organization-membership.md @@ -14,6 +14,8 @@ versions: ghec: '*' shortTitle: Organization membership contentType: concepts +category: + - Participate in organizations --- An organization owner can invite you to join their organization as a member, billing manager, or owner. An organization owner or member with admin privileges for a repository can invite you to collaborate in one or more repositories as an outside collaborator. For more information, see [AUTOTITLE](/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization). diff --git a/content/account-and-profile/concepts/organization-profile.md b/content/account-and-profile/concepts/organization-profile.md index 1fe248775508..97b59ef1b1ab 100644 --- a/content/account-and-profile/concepts/organization-profile.md +++ b/content/account-and-profile/concepts/organization-profile.md @@ -15,6 +15,8 @@ versions: ghec: '*' shortTitle: Organization profile contentType: concepts +category: + - Participate in organizations --- You can customize your organization's profile by adding any of the following: diff --git a/content/account-and-profile/concepts/personal-profile.md b/content/account-and-profile/concepts/personal-profile.md index a4ad3a81fd04..b8df38d62281 100644 --- a/content/account-and-profile/concepts/personal-profile.md +++ b/content/account-and-profile/concepts/personal-profile.md @@ -15,6 +15,8 @@ versions: ghes: '*' ghec: '*' contentType: concepts +category: + - Customize your profile --- Your {% data variables.product.github %} profile showcases your work, contributions, and information you choose to share publicly. diff --git a/content/account-and-profile/concepts/username-changes.md b/content/account-and-profile/concepts/username-changes.md index aabf286c18be..8823ae76668e 100644 --- a/content/account-and-profile/concepts/username-changes.md +++ b/content/account-and-profile/concepts/username-changes.md @@ -19,6 +19,8 @@ versions: ghec: '*' shortTitle: Username changes contentType: concepts +category: + - Set up your account --- ## About username changes diff --git a/content/account-and-profile/get-started/account.md b/content/account-and-profile/get-started/account.md index 2e7dbdd96e83..423c27bf404f 100644 --- a/content/account-and-profile/get-started/account.md +++ b/content/account-and-profile/get-started/account.md @@ -7,6 +7,8 @@ versions: ghec: '*' shortTitle: Account contentType: get-started +category: + - Set up your account --- ## About your {% data variables.product.github %} account diff --git a/content/account-and-profile/get-started/personal-dashboard-quickstart.md b/content/account-and-profile/get-started/personal-dashboard-quickstart.md index ffafe2803a77..44d3f1cf0cf5 100644 --- a/content/account-and-profile/get-started/personal-dashboard-quickstart.md +++ b/content/account-and-profile/get-started/personal-dashboard-quickstart.md @@ -17,6 +17,8 @@ versions: ghec: '*' shortTitle: Personal dashboard quickstart contentType: get-started +category: + - Set up your account --- ## Accessing your personal dashboard diff --git a/content/account-and-profile/get-started/profile.md b/content/account-and-profile/get-started/profile.md index 9c66d8873310..a0a8b96961f8 100644 --- a/content/account-and-profile/get-started/profile.md +++ b/content/account-and-profile/get-started/profile.md @@ -7,6 +7,8 @@ versions: ghec: '*' shortTitle: Profile contentType: get-started +category: + - Customize your profile --- ## About your {% data variables.product.github %} profile diff --git a/content/account-and-profile/how-tos/account-management/changing-your-username.md b/content/account-and-profile/how-tos/account-management/changing-your-username.md index 4d0a7e19270e..342f9acc7074 100644 --- a/content/account-and-profile/how-tos/account-management/changing-your-username.md +++ b/content/account-and-profile/how-tos/account-management/changing-your-username.md @@ -10,6 +10,8 @@ permissions: '{% ifversion ghec %}Users with personal accounts can change their contentType: how-tos redirect_from: - /account-and-profile/how-tos/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/changing-your-username +category: + - Change or close your account --- ## Prerequisites diff --git a/content/account-and-profile/how-tos/account-management/converting-a-user-into-an-organization.md b/content/account-and-profile/how-tos/account-management/converting-a-user-into-an-organization.md index e421723b9dcd..4c7e51c73a14 100644 --- a/content/account-and-profile/how-tos/account-management/converting-a-user-into-an-organization.md +++ b/content/account-and-profile/how-tos/account-management/converting-a-user-into-an-organization.md @@ -15,6 +15,8 @@ versions: ghes: '<3.21' shortTitle: Convert your account contentType: how-tos +category: + - Change or close your account --- ## Prerequisites diff --git a/content/account-and-profile/how-tos/account-management/deleting-your-personal-account.md b/content/account-and-profile/how-tos/account-management/deleting-your-personal-account.md index e10ddb452975..57c08f6f3bc6 100644 --- a/content/account-and-profile/how-tos/account-management/deleting-your-personal-account.md +++ b/content/account-and-profile/how-tos/account-management/deleting-your-personal-account.md @@ -16,6 +16,8 @@ versions: ghec: '*' shortTitle: Delete your account contentType: how-tos +category: + - Change or close your account --- {% ifversion ghec %} diff --git a/content/account-and-profile/how-tos/account-management/managing-multiple-accounts.md b/content/account-and-profile/how-tos/account-management/managing-multiple-accounts.md index cb47be94649d..3c7fad43b3f8 100644 --- a/content/account-and-profile/how-tos/account-management/managing-multiple-accounts.md +++ b/content/account-and-profile/how-tos/account-management/managing-multiple-accounts.md @@ -8,6 +8,8 @@ redirect_from: - /account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts - /account-and-profile/how-tos/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts contentType: how-tos +category: + - Change or close your account --- ## Contributing to multiple accounts using HTTPS and {% data variables.product.pat_generic %}s diff --git a/content/account-and-profile/how-tos/account-management/merging-multiple-personal-accounts.md b/content/account-and-profile/how-tos/account-management/merging-multiple-personal-accounts.md index 6bf826fa0844..fb329f5ea57b 100644 --- a/content/account-and-profile/how-tos/account-management/merging-multiple-personal-accounts.md +++ b/content/account-and-profile/how-tos/account-management/merging-multiple-personal-accounts.md @@ -16,6 +16,8 @@ versions: ghec: '*' shortTitle: Merge multiple accounts contentType: how-tos +category: + - Change or close your account --- {% ifversion ghec %} diff --git a/content/account-and-profile/how-tos/account-management/moving-your-work-to-an-organization.md b/content/account-and-profile/how-tos/account-management/moving-your-work-to-an-organization.md index 67dc873c264d..ed51252f51b9 100644 --- a/content/account-and-profile/how-tos/account-management/moving-your-work-to-an-organization.md +++ b/content/account-and-profile/how-tos/account-management/moving-your-work-to-an-organization.md @@ -6,6 +6,8 @@ versions: ghes: '>= 3.21' ghec: '*' shortTitle: Move work to organization +category: + - Change or close your account --- ## Keeping your username for the organization diff --git a/content/account-and-profile/how-tos/account-management/unlinking-your-email-address-from-a-locked-account.md b/content/account-and-profile/how-tos/account-management/unlinking-your-email-address-from-a-locked-account.md index a1c2ad7e2a93..0f48f994ae1b 100644 --- a/content/account-and-profile/how-tos/account-management/unlinking-your-email-address-from-a-locked-account.md +++ b/content/account-and-profile/how-tos/account-management/unlinking-your-email-address-from-a-locked-account.md @@ -10,6 +10,8 @@ versions: ghec: '*' shortTitle: Unlink your email contentType: how-tos +category: + - Manage your email --- > [!WARNING] diff --git a/content/account-and-profile/how-tos/account-settings/integrating-jira-with-your-personal-projects.md b/content/account-and-profile/how-tos/account-settings/integrating-jira-with-your-personal-projects.md index 9198f3c07535..61fcf3287010 100644 --- a/content/account-and-profile/how-tos/account-settings/integrating-jira-with-your-personal-projects.md +++ b/content/account-and-profile/how-tos/account-settings/integrating-jira-with-your-personal-projects.md @@ -13,6 +13,8 @@ versions: ghes: '*' shortTitle: Jira project integration contentType: how-tos +category: + - Configure account settings --- {% data reusables.user-settings.access_settings %} {% data reusables.user-settings.developer_settings %} diff --git a/content/account-and-profile/how-tos/account-settings/manage-cookie-preferences.md b/content/account-and-profile/how-tos/account-settings/manage-cookie-preferences.md index 78485c92af63..36367e8939a0 100644 --- a/content/account-and-profile/how-tos/account-settings/manage-cookie-preferences.md +++ b/content/account-and-profile/how-tos/account-settings/manage-cookie-preferences.md @@ -12,6 +12,8 @@ redirect_from: - /account-and-profile/tutorials/managing-your-cookie-preferences-for-githubs-enterprise-marketing-pages - /account-and-profile/how-tos/setting-up-and-managing-your-personal-account-on-github/managing-user-account-settings/manage-cookie-preferences contentType: how-tos +category: + - Configure account settings --- ## Changing your cookie preferences diff --git a/content/account-and-profile/how-tos/account-settings/managing-access-to-your-personal-accounts-project-boards.md b/content/account-and-profile/how-tos/account-settings/managing-access-to-your-personal-accounts-project-boards.md index 786bcbaa3ab8..59bf66be3b83 100644 --- a/content/account-and-profile/how-tos/account-settings/managing-access-to-your-personal-accounts-project-boards.md +++ b/content/account-and-profile/how-tos/account-settings/managing-access-to-your-personal-accounts-project-boards.md @@ -16,6 +16,8 @@ versions: shortTitle: Manage access allowTitleToDifferFromFilename: true contentType: how-tos +category: + - Configure account settings --- A collaborator is a person who has permissions to a {% data variables.projects.projects_v1_board %} you own. A collaborator's permissions will default to read access. For more information, see [AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-user-account-settings/permission-levels-for-a-project-board-owned-by-a-personal-account). diff --git a/content/account-and-profile/how-tos/account-settings/managing-accessibility-settings.md b/content/account-and-profile/how-tos/account-settings/managing-accessibility-settings.md index 15a442093596..48e486868607 100644 --- a/content/account-and-profile/how-tos/account-settings/managing-accessibility-settings.md +++ b/content/account-and-profile/how-tos/account-settings/managing-accessibility-settings.md @@ -12,6 +12,8 @@ redirect_from: - /account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-user-account-settings/managing-accessibility-settings - /account-and-profile/how-tos/setting-up-and-managing-your-personal-account-on-github/managing-user-account-settings/managing-accessibility-settings contentType: how-tos +category: + - Configure account settings --- > [!NOTE] This article will help you customize your experience on the {% data variables.product.github %} website as a whole. For information on using specific {% data variables.product.github %} products with screen readers and other assistive technologies, see the [{% data variables.product.github %} Accessibility Documentation](https://accessibility.github.com/documentation). diff --git a/content/account-and-profile/how-tos/account-settings/managing-security-and-analysis-features.md b/content/account-and-profile/how-tos/account-settings/managing-security-and-analysis-features.md index 9e5e955d8462..bd24e6899620 100644 --- a/content/account-and-profile/how-tos/account-settings/managing-security-and-analysis-features.md +++ b/content/account-and-profile/how-tos/account-settings/managing-security-and-analysis-features.md @@ -15,6 +15,8 @@ redirect_from: - /account-and-profile/how-tos/setting-up-and-managing-your-personal-account-on-github/managing-user-account-settings/managing-security-and-analysis-features shortTitle: Security and analysis contentType: how-tos +category: + - Configure account settings --- > [!NOTE] This topic tells you how you can manage the security and analysis features for all your existing or new repositories. For information on managing these settings for individual repositories, see [AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository). diff --git a/content/account-and-profile/how-tos/account-settings/managing-your-tab-size-rendering-preference.md b/content/account-and-profile/how-tos/account-settings/managing-your-tab-size-rendering-preference.md index 5400158c73cd..1a68ffa2c79b 100644 --- a/content/account-and-profile/how-tos/account-settings/managing-your-tab-size-rendering-preference.md +++ b/content/account-and-profile/how-tos/account-settings/managing-your-tab-size-rendering-preference.md @@ -12,6 +12,8 @@ redirect_from: - /account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-user-account-settings/managing-your-tab-size-rendering-preference - /account-and-profile/how-tos/setting-up-and-managing-your-personal-account-on-github/managing-user-account-settings/managing-your-tab-size-rendering-preference contentType: how-tos +category: + - Configure account settings --- If you feel that tabbed indentation in code rendered on {% data variables.product.github %} takes up too much, or too little space, you can change this in your settings. diff --git a/content/account-and-profile/how-tos/account-settings/permission-levels-for-a-project-board-owned-by-a-personal-account.md b/content/account-and-profile/how-tos/account-settings/permission-levels-for-a-project-board-owned-by-a-personal-account.md index b3b5d1d941c9..4c279464c536 100644 --- a/content/account-and-profile/how-tos/account-settings/permission-levels-for-a-project-board-owned-by-a-personal-account.md +++ b/content/account-and-profile/how-tos/account-settings/permission-levels-for-a-project-board-owned-by-a-personal-account.md @@ -14,6 +14,8 @@ versions: shortTitle: '{% data variables.projects.projects_v1_board_caps %} permissions' allowTitleToDifferFromFilename: true contentType: how-tos +category: + - Configure account settings --- {% data reusables.projects.project_boards_old %} diff --git a/content/account-and-profile/how-tos/account-settings/prepare-for-job-change.md b/content/account-and-profile/how-tos/account-settings/prepare-for-job-change.md index 7fd798a41c3e..7ef4344ba8df 100644 --- a/content/account-and-profile/how-tos/account-settings/prepare-for-job-change.md +++ b/content/account-and-profile/how-tos/account-settings/prepare-for-job-change.md @@ -15,6 +15,8 @@ versions: ghec: '*' shortTitle: Prepare for job change contentType: how-tos +category: + - Change or close your account --- ## Update your personal account information diff --git a/content/account-and-profile/how-tos/account-settings/set-your-hiring-status.md b/content/account-and-profile/how-tos/account-settings/set-your-hiring-status.md index dd1c4eb51583..9a87d1a2d6a3 100644 --- a/content/account-and-profile/how-tos/account-settings/set-your-hiring-status.md +++ b/content/account-and-profile/how-tos/account-settings/set-your-hiring-status.md @@ -16,6 +16,8 @@ versions: ghec: '*' shortTitle: Set your hiring status contentType: how-tos +category: + - Customize your profile --- {% data reusables.user-settings.access_settings %} diff --git a/content/account-and-profile/how-tos/contribution-settings/manage-visibility-settings-for-private-contributions-and-achievements.md b/content/account-and-profile/how-tos/contribution-settings/manage-visibility-settings-for-private-contributions-and-achievements.md index f6f3657031ec..0b7aadde56fe 100644 --- a/content/account-and-profile/how-tos/contribution-settings/manage-visibility-settings-for-private-contributions-and-achievements.md +++ b/content/account-and-profile/how-tos/contribution-settings/manage-visibility-settings-for-private-contributions-and-achievements.md @@ -16,6 +16,8 @@ versions: shortTitle: Private contributions {% ifversion hide-individual-achievements %}and achievements{% endif %} allowTitleToDifferFromFilename: true contentType: how-tos +category: + - Track your contributions --- ## Changing the visibility of your private contributions diff --git a/content/account-and-profile/how-tos/contribution-settings/sharing-contributions-from-github-enterprise-server.md b/content/account-and-profile/how-tos/contribution-settings/sharing-contributions-from-github-enterprise-server.md index ad5857f50f7d..c9677706aedc 100644 --- a/content/account-and-profile/how-tos/contribution-settings/sharing-contributions-from-github-enterprise-server.md +++ b/content/account-and-profile/how-tos/contribution-settings/sharing-contributions-from-github-enterprise-server.md @@ -17,6 +17,8 @@ versions: ghec: '*' shortTitle: Send enterprise contributions contentType: how-tos +category: + - Track your contributions --- > [!IMPORTANT] diff --git a/content/account-and-profile/how-tos/contribution-settings/showing-an-overview-of-your-activity-on-your-profile.md b/content/account-and-profile/how-tos/contribution-settings/showing-an-overview-of-your-activity-on-your-profile.md index 1f1eb892ee5d..0454f16b9372 100644 --- a/content/account-and-profile/how-tos/contribution-settings/showing-an-overview-of-your-activity-on-your-profile.md +++ b/content/account-and-profile/how-tos/contribution-settings/showing-an-overview-of-your-activity-on-your-profile.md @@ -14,6 +14,8 @@ versions: ghec: '*' shortTitle: Show an overview contentType: how-tos +category: + - Track your contributions --- ## Managing the visibility of the activity overview on your profile diff --git a/content/account-and-profile/how-tos/contribution-settings/troubleshooting-missing-contributions.md b/content/account-and-profile/how-tos/contribution-settings/troubleshooting-missing-contributions.md index 9e2a5003325b..a77981e3b830 100644 --- a/content/account-and-profile/how-tos/contribution-settings/troubleshooting-missing-contributions.md +++ b/content/account-and-profile/how-tos/contribution-settings/troubleshooting-missing-contributions.md @@ -15,6 +15,8 @@ versions: ghec: '*' shortTitle: Troubleshoot missing contributions contentType: how-tos +category: + - Track your contributions --- ## Commit was made less than 24 hours ago diff --git a/content/account-and-profile/how-tos/contribution-settings/viewing-commit-details-from-your-timeline.md b/content/account-and-profile/how-tos/contribution-settings/viewing-commit-details-from-your-timeline.md index 91bb15181a45..7c223ea7c57a 100644 --- a/content/account-and-profile/how-tos/contribution-settings/viewing-commit-details-from-your-timeline.md +++ b/content/account-and-profile/how-tos/contribution-settings/viewing-commit-details-from-your-timeline.md @@ -15,6 +15,8 @@ versions: ghec: '*' shortTitle: Viewing commit details contentType: how-tos +category: + - Track your contributions --- ## View commit details diff --git a/content/account-and-profile/how-tos/contribution-settings/viewing-contributions-on-your-profile.md b/content/account-and-profile/how-tos/contribution-settings/viewing-contributions-on-your-profile.md index 25f32e79b7ba..13d502596809 100644 --- a/content/account-and-profile/how-tos/contribution-settings/viewing-contributions-on-your-profile.md +++ b/content/account-and-profile/how-tos/contribution-settings/viewing-contributions-on-your-profile.md @@ -16,6 +16,8 @@ versions: ghec: '*' shortTitle: View contributions contentType: how-tos +category: + - Track your contributions --- ## Prerequisites diff --git a/content/account-and-profile/how-tos/email-preferences/adding-an-email-address-to-your-github-account.md b/content/account-and-profile/how-tos/email-preferences/adding-an-email-address-to-your-github-account.md index 7fb124c47e5e..a28562ef6688 100644 --- a/content/account-and-profile/how-tos/email-preferences/adding-an-email-address-to-your-github-account.md +++ b/content/account-and-profile/how-tos/email-preferences/adding-an-email-address-to-your-github-account.md @@ -14,6 +14,8 @@ versions: ghec: '*' shortTitle: Add email address contentType: how-tos +category: + - Manage your email --- {% ifversion ghec %} diff --git a/content/account-and-profile/how-tos/email-preferences/blocking-command-line-pushes-that-expose-your-personal-email-address.md b/content/account-and-profile/how-tos/email-preferences/blocking-command-line-pushes-that-expose-your-personal-email-address.md index 580261668d39..75e974587f35 100644 --- a/content/account-and-profile/how-tos/email-preferences/blocking-command-line-pushes-that-expose-your-personal-email-address.md +++ b/content/account-and-profile/how-tos/email-preferences/blocking-command-line-pushes-that-expose-your-personal-email-address.md @@ -13,6 +13,8 @@ versions: ghec: '*' shortTitle: Block push with personal email contentType: how-tos +category: + - Manage your email --- When you enable this setting, each time you push to {% data variables.product.github %}, we’ll check the most recent commit. If the author email on that commit is a private email on your GitHub account, we will block the push and warn you about exposing your private email. diff --git a/content/account-and-profile/how-tos/email-preferences/changing-your-primary-email-address.md b/content/account-and-profile/how-tos/email-preferences/changing-your-primary-email-address.md index 8bccbd4c3f20..dcf4f8e9d519 100644 --- a/content/account-and-profile/how-tos/email-preferences/changing-your-primary-email-address.md +++ b/content/account-and-profile/how-tos/email-preferences/changing-your-primary-email-address.md @@ -14,6 +14,8 @@ versions: ghec: '*' shortTitle: Primary email address contentType: how-tos +category: + - Manage your email --- {% ifversion ghec %} diff --git a/content/account-and-profile/how-tos/email-preferences/remembering-your-github-username-or-email.md b/content/account-and-profile/how-tos/email-preferences/remembering-your-github-username-or-email.md index e2bf18a41f19..be2b42d5373d 100644 --- a/content/account-and-profile/how-tos/email-preferences/remembering-your-github-username-or-email.md +++ b/content/account-and-profile/how-tos/email-preferences/remembering-your-github-username-or-email.md @@ -16,6 +16,8 @@ versions: ghec: '*' shortTitle: Find your username or email contentType: how-tos +category: + - Manage your email --- diff --git a/content/account-and-profile/how-tos/email-preferences/setting-a-backup-email-address.md b/content/account-and-profile/how-tos/email-preferences/setting-a-backup-email-address.md index e39c345839e1..08e74b2ac6b3 100644 --- a/content/account-and-profile/how-tos/email-preferences/setting-a-backup-email-address.md +++ b/content/account-and-profile/how-tos/email-preferences/setting-a-backup-email-address.md @@ -14,6 +14,8 @@ versions: ghec: '*' shortTitle: Backup email address contentType: how-tos +category: + - Manage your email --- {% data reusables.user-settings.access_settings %} {% data reusables.user-settings.emails %} diff --git a/content/account-and-profile/how-tos/email-preferences/setting-your-commit-email-address.md b/content/account-and-profile/how-tos/email-preferences/setting-your-commit-email-address.md index 7b962249214e..1421ba4abaaf 100644 --- a/content/account-and-profile/how-tos/email-preferences/setting-your-commit-email-address.md +++ b/content/account-and-profile/how-tos/email-preferences/setting-your-commit-email-address.md @@ -21,6 +21,8 @@ versions: ghec: '*' shortTitle: Set commit email address contentType: how-tos +category: + - Manage your email --- ## Setting your commit email address on {% data variables.product.github %} diff --git a/content/account-and-profile/how-tos/email-preferences/troubleshooting-adding-an-email.md b/content/account-and-profile/how-tos/email-preferences/troubleshooting-adding-an-email.md index 7a2c5430cb81..c27a3943aa11 100644 --- a/content/account-and-profile/how-tos/email-preferences/troubleshooting-adding-an-email.md +++ b/content/account-and-profile/how-tos/email-preferences/troubleshooting-adding-an-email.md @@ -9,6 +9,8 @@ shortTitle: Troubleshoot adding an email contentType: how-tos redirect_from: - /account-and-profile/how-tos/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/troubleshooting-adding-an-email +category: + - Manage your email --- ## Email already in use diff --git a/content/account-and-profile/how-tos/email-preferences/troubleshooting-email-verification.md b/content/account-and-profile/how-tos/email-preferences/troubleshooting-email-verification.md index 7a73bdcbb74b..b30ad39399cf 100644 --- a/content/account-and-profile/how-tos/email-preferences/troubleshooting-email-verification.md +++ b/content/account-and-profile/how-tos/email-preferences/troubleshooting-email-verification.md @@ -9,6 +9,8 @@ shortTitle: Troubleshoot email verification contentType: how-tos redirect_from: - /account-and-profile/how-tos/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/troubleshooting-email-verification +category: + - Manage your email --- ## Unable to send verification email diff --git a/content/account-and-profile/how-tos/email-preferences/verifying-your-email-address.md b/content/account-and-profile/how-tos/email-preferences/verifying-your-email-address.md index 99180d84beb6..8d3f274a3050 100644 --- a/content/account-and-profile/how-tos/email-preferences/verifying-your-email-address.md +++ b/content/account-and-profile/how-tos/email-preferences/verifying-your-email-address.md @@ -15,6 +15,8 @@ versions: ghec: '*' shortTitle: Verify your email address contentType: how-tos +category: + - Manage your email --- ## Verifying your email address diff --git a/content/account-and-profile/how-tos/organization-membership/accessing-an-organization.md b/content/account-and-profile/how-tos/organization-membership/accessing-an-organization.md index 5e31960eaa46..50f5941b98cb 100644 --- a/content/account-and-profile/how-tos/organization-membership/accessing-an-organization.md +++ b/content/account-and-profile/how-tos/organization-membership/accessing-an-organization.md @@ -17,6 +17,8 @@ versions: ghes: '*' ghec: '*' contentType: how-tos +category: + - Participate in organizations --- > [!TIP] diff --git a/content/account-and-profile/how-tos/organization-membership/publicizing-or-hiding-organization-membership.md b/content/account-and-profile/how-tos/organization-membership/publicizing-or-hiding-organization-membership.md index c7b5665a4de2..2d72e5bcb248 100644 --- a/content/account-and-profile/how-tos/organization-membership/publicizing-or-hiding-organization-membership.md +++ b/content/account-and-profile/how-tos/organization-membership/publicizing-or-hiding-organization-membership.md @@ -15,6 +15,8 @@ versions: ghec: '*' shortTitle: Show or hide membership contentType: how-tos +category: + - Participate in organizations --- {% data reusables.profile.access_org %} diff --git a/content/account-and-profile/how-tos/organization-membership/removing-yourself-from-an-enterprise.md b/content/account-and-profile/how-tos/organization-membership/removing-yourself-from-an-enterprise.md index c1d44b22e8c0..cddffe7157d6 100644 --- a/content/account-and-profile/how-tos/organization-membership/removing-yourself-from-an-enterprise.md +++ b/content/account-and-profile/how-tos/organization-membership/removing-yourself-from-an-enterprise.md @@ -6,6 +6,8 @@ versions: ghec: '*' shortTitle: Leave an enterprise contentType: how-tos +category: + - Participate in organizations --- If your personal {% data variables.product.github %} account is a member of an enterprise, you can leave the enterprise at any time. diff --git a/content/account-and-profile/how-tos/organization-membership/removing-yourself-from-an-organization.md b/content/account-and-profile/how-tos/organization-membership/removing-yourself-from-an-organization.md index 4996908d3dfa..741b23cca7f2 100644 --- a/content/account-and-profile/how-tos/organization-membership/removing-yourself-from-an-organization.md +++ b/content/account-and-profile/how-tos/organization-membership/removing-yourself-from-an-organization.md @@ -15,6 +15,8 @@ versions: ghec: '*' shortTitle: Leave an organization contentType: how-tos +category: + - Participate in organizations --- {% ifversion fpt or ghec %} diff --git a/content/account-and-profile/how-tos/organization-membership/requesting-organization-approval-for-oauth-apps.md b/content/account-and-profile/how-tos/organization-membership/requesting-organization-approval-for-oauth-apps.md index 33ba3e3aa80b..098f1d02328c 100644 --- a/content/account-and-profile/how-tos/organization-membership/requesting-organization-approval-for-oauth-apps.md +++ b/content/account-and-profile/how-tos/organization-membership/requesting-organization-approval-for-oauth-apps.md @@ -16,6 +16,8 @@ versions: permissions: Organization members can request owner approval for {% data variables.product.prodname_oauth_apps %}. Outside collaborators can request owner approval for {% data variables.product.prodname_oauth_apps %} if integration access requests are enabled. For more information, see [AUTOTITLE](/organizations/managing-programmatic-access-to-your-organization/limiting-oauth-app-and-github-app-access-requests). shortTitle: Request {% data variables.product.prodname_oauth_app %} approval contentType: how-tos +category: + - Participate in organizations --- ## Prerequisites diff --git a/content/account-and-profile/how-tos/organization-membership/viewing-peoples-roles-in-an-organization.md b/content/account-and-profile/how-tos/organization-membership/viewing-peoples-roles-in-an-organization.md index 0a5094ebe6b9..2b7d12989e11 100644 --- a/content/account-and-profile/how-tos/organization-membership/viewing-peoples-roles-in-an-organization.md +++ b/content/account-and-profile/how-tos/organization-membership/viewing-peoples-roles-in-an-organization.md @@ -16,6 +16,8 @@ versions: ghec: '*' shortTitle: View organization members contentType: how-tos +category: + - Participate in organizations --- {% ifversion ghes or ghec %} diff --git a/content/account-and-profile/how-tos/profile-customization/managing-your-profile-readme.md b/content/account-and-profile/how-tos/profile-customization/managing-your-profile-readme.md index 6fa5424a43a3..285de7126bda 100644 --- a/content/account-and-profile/how-tos/profile-customization/managing-your-profile-readme.md +++ b/content/account-and-profile/how-tos/profile-customization/managing-your-profile-readme.md @@ -13,6 +13,8 @@ redirect_from: - /account-and-profile/how-tos/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme shortTitle: Your profile README contentType: how-tos +category: + - Customize your profile --- ## Prerequisites diff --git a/content/account-and-profile/how-tos/profile-customization/pinning-items-to-your-profile.md b/content/account-and-profile/how-tos/profile-customization/pinning-items-to-your-profile.md index 6a6eb9c67f3b..8cbe09419dc6 100644 --- a/content/account-and-profile/how-tos/profile-customization/pinning-items-to-your-profile.md +++ b/content/account-and-profile/how-tos/profile-customization/pinning-items-to-your-profile.md @@ -14,6 +14,8 @@ versions: ghec: '*' shortTitle: Pin items contentType: how-tos +category: + - Customize your profile --- ## Pinning items to your profile diff --git a/content/account-and-profile/how-tos/profile-customization/setting-your-profile-to-private.md b/content/account-and-profile/how-tos/profile-customization/setting-your-profile-to-private.md index 1f626bd7ef40..89c4951e9dfc 100644 --- a/content/account-and-profile/how-tos/profile-customization/setting-your-profile-to-private.md +++ b/content/account-and-profile/how-tos/profile-customization/setting-your-profile-to-private.md @@ -8,6 +8,8 @@ redirect_from: - /account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/setting-your-profile-to-private - /account-and-profile/how-tos/setting-up-and-managing-your-github-profile/customizing-your-profile/setting-your-profile-to-private contentType: how-tos +category: + - Customize your profile --- ## Changing your profile's privacy settings diff --git a/content/account-and-profile/index.md b/content/account-and-profile/index.md index 64be59328074..91889629fe12 100644 --- a/content/account-and-profile/index.md +++ b/content/account-and-profile/index.md @@ -3,34 +3,42 @@ title: Account and profile documentation shortTitle: Account and profile intro: Make {% data variables.product.github %} work best for you by customizing your personal account settings and personalizing your profile page. introLinks: - quickstart: - - /get-started/onboarding/getting-started-with-your-github-account -featuredLinks: - startHere: - - /account-and-profile/get-started/account - - /account-and-profile/get-started/profile - popular: - - /account-and-profile/how-tos/email-preferences/setting-your-commit-email-address - - /account-and-profile/concepts/account-management - guideCards: - - /account-and-profile/how-tos/contribution-settings/troubleshooting-missing-contributions - - /account-and-profile/how-tos/email-preferences/blocking-command-line-pushes-that-expose-your-personal-email-address + quickstart: /account-and-profile/get-started/account + overview: /account-and-profile/get-started/profile +layout: discovery-landing changelog: label: profiles, github-themes versions: fpt: '*' ghec: '*' -layout: product-landing versions: fpt: '*' ghes: '*' ghec: '*' +carousels: + recommended: + - /account-and-profile/get-started/account + - /account-and-profile/get-started/profile + - /account-and-profile/get-started/personal-dashboard-quickstart + - /account-and-profile/tutorials/personalize-your-profile + - /account-and-profile/tutorials/using-your-github-profile-to-enhance-your-resume + - /account-and-profile/how-tos/email-preferences/setting-your-commit-email-address + - /account-and-profile/how-tos/profile-customization/managing-your-profile-readme + - /account-and-profile/how-tos/account-management/managing-multiple-accounts + - /account-and-profile/how-tos/contribution-settings/viewing-contributions-on-your-profile +includedCategories: + - Set up your account + - Manage your email + - Customize your profile + - Track your contributions + - Configure account settings + - Change or close your account + - Participate in organizations children: - /get-started - /concepts - /how-tos - /tutorials - /reference -contentType: landing --- diff --git a/content/account-and-profile/reference/email-addresses-reference.md b/content/account-and-profile/reference/email-addresses-reference.md index 11312e811511..ab49c2d7db80 100644 --- a/content/account-and-profile/reference/email-addresses-reference.md +++ b/content/account-and-profile/reference/email-addresses-reference.md @@ -7,6 +7,8 @@ versions: ghes: '*' ghec: '*' contentType: reference +category: + - Manage your email --- ## Email verification restrictions diff --git a/content/account-and-profile/reference/personal-account-reference.md b/content/account-and-profile/reference/personal-account-reference.md index 2448b77a80d3..228252498429 100644 --- a/content/account-and-profile/reference/personal-account-reference.md +++ b/content/account-and-profile/reference/personal-account-reference.md @@ -7,6 +7,8 @@ versions: ghes: '*' ghec: '*' contentType: reference +category: + - Set up your account --- ## Side effects of account deletion diff --git a/content/account-and-profile/reference/personal-dashboard.md b/content/account-and-profile/reference/personal-dashboard.md index 5556610c6707..7783b00c4646 100644 --- a/content/account-and-profile/reference/personal-dashboard.md +++ b/content/account-and-profile/reference/personal-dashboard.md @@ -6,6 +6,8 @@ versions: ghec: '*' ghes: '*' contentType: reference +category: + - Set up your account --- ## Recent activity diff --git a/content/account-and-profile/reference/profile-contributions-reference.md b/content/account-and-profile/reference/profile-contributions-reference.md index 28ee0e3caf90..5ad4a78d8876 100644 --- a/content/account-and-profile/reference/profile-contributions-reference.md +++ b/content/account-and-profile/reference/profile-contributions-reference.md @@ -6,6 +6,8 @@ versions: ghec: '*' ghes: '*' contentType: reference +category: + - Track your contributions --- ## What counts as a contribution diff --git a/content/account-and-profile/reference/profile-reference.md b/content/account-and-profile/reference/profile-reference.md index bf6bf98c94c1..d41421fe8846 100644 --- a/content/account-and-profile/reference/profile-reference.md +++ b/content/account-and-profile/reference/profile-reference.md @@ -7,6 +7,8 @@ versions: ghec: '*' shortTitle: Profile reference contentType: reference +category: + - Customize your profile --- ## Visibility of profile information diff --git a/content/account-and-profile/reference/username-reference.md b/content/account-and-profile/reference/username-reference.md index 8083c6d7ca97..c654e70910da 100644 --- a/content/account-and-profile/reference/username-reference.md +++ b/content/account-and-profile/reference/username-reference.md @@ -7,6 +7,8 @@ versions: ghes: '*' ghec: '*' contentType: reference +category: + - Set up your account --- ## Changing your username diff --git a/content/account-and-profile/tutorials/personalize-your-profile.md b/content/account-and-profile/tutorials/personalize-your-profile.md index f3df437da03b..17a21d38c942 100644 --- a/content/account-and-profile/tutorials/personalize-your-profile.md +++ b/content/account-and-profile/tutorials/personalize-your-profile.md @@ -18,6 +18,8 @@ versions: ghec: '*' shortTitle: Personalize your profile contentType: tutorials +category: + - Customize your profile --- > [!NOTE] diff --git a/content/account-and-profile/tutorials/using-your-github-profile-to-enhance-your-resume.md b/content/account-and-profile/tutorials/using-your-github-profile-to-enhance-your-resume.md index 39df60ae3757..ebf22e6ff4c4 100644 --- a/content/account-and-profile/tutorials/using-your-github-profile-to-enhance-your-resume.md +++ b/content/account-and-profile/tutorials/using-your-github-profile-to-enhance-your-resume.md @@ -7,6 +7,8 @@ shortTitle: Enhance your resume redirect_from: - /account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/using-your-github-profile-to-enhance-your-resume contentType: tutorials +category: + - Customize your profile --- ## How can my {% data variables.product.github %} profile help with my job search?