diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index bf67c21b5065..a9a6126f8a9b 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -10,7 +10,7 @@ The bulleted points in a bullet list should always be denoted in Markdown using Within Markdown files, with the exception of the `title` field in the metadata at the start of a file, **always use the Liquid syntax variables rather than text** if a variable has been defined for that text. This ensures consistency and makes it easier to update product names globally. -**Important**: Variables must be used in all content, including reusable content, data files, and regular articles. The only exception is the `title` field in frontmatter metadata. +**Important**: Variables must be used in all content, including reusable content, data files, and regular articles. The only exceptions are the `title` field in frontmatter metadata and any file in the `content/site-policy` directory. For example: diff --git a/content/code-security/secret-scanning/introduction/supported-secret-scanning-patterns.md b/content/code-security/secret-scanning/introduction/supported-secret-scanning-patterns.md index 76114f221953..dc82c3a04ae4 100644 --- a/content/code-security/secret-scanning/introduction/supported-secret-scanning-patterns.md +++ b/content/code-security/secret-scanning/introduction/supported-secret-scanning-patterns.md @@ -79,7 +79,7 @@ In addition to these generic non-provider patterns, {% data variables.product.pr | Provider | Token | Partner | User | Push protection | Validity check | |----|:----|:----:|:----:|:----:|:----:| {%- for entry in secretScanningData %} -| {{ entry.provider }} | {{ entry.secretType }} | {% if entry.isPublic %}{% octicon "check" aria-label="Supported" %}{% else %}{% octicon "x" aria-label="Unsupported" %}{% endif %} | {% if entry.isPrivateWithGhas %}{% octicon "check" aria-label="Supported" %}{% else %}{% octicon "x" aria-label="Unsupported" %}{% endif %} | {% if entry.hasPushProtection %}{% octicon "check" aria-label="Supported" %}{% else %}{% octicon "x" aria-label="Unsupported" %}{% endif %} | {% if entry.hasValidityCheck %}{% octicon "check" aria-label="Supported" %}{% else %}{% octicon "x" aria-label="Unsupported" %}{% endif %} | +| {{ entry.provider }} | {{ entry.secretType }} | {% if entry.isPublic %}{% else %}{% endif %} | {% if entry.isPrivateWithGhas %}{% else %}{% endif %} | {% if entry.hasPushProtection %}{% else %}{% endif %} | {% if entry.hasValidityCheck %}{% else %}{% endif %} | {%- endfor %} {% endif %} @@ -90,7 +90,7 @@ In addition to these generic non-provider patterns, {% data variables.product.pr | Provider | Token | {% data variables.product.prodname_secret_scanning_caps %} alert | Push protection | Validity check | |----|:----|:----:|:----:|:----:| {%- for entry in secretScanningData %} -| {{ entry.provider }} | {{ entry.secretType }} | {% if entry.isPrivateWithGhas %}{% octicon "check" aria-label="Supported" %}{% else %}{% octicon "x" aria-label="Unsupported" %}{% endif %} | {% if entry.hasPushProtection %}{% octicon "check" aria-label="Supported" %}{% else %}{% octicon "x" aria-label="Unsupported" %}{% endif %} | {% if entry.hasValidityCheck %}{% octicon "check" aria-label="Supported" %}{% else %}{% octicon "x" aria-label="Unsupported" %}{% endif %} | +| {{ entry.provider }} | {{ entry.secretType }} | {% if entry.isPrivateWithGhas %}{% else %}{% endif %} | {% if entry.hasPushProtection %}{% else %}{% endif %} | {% if entry.hasValidityCheck %}{% else %}{% endif %} | {%- endfor %} {% endif %} diff --git a/content/copilot/building-copilot-extensions/building-a-copilot-agent-for-your-copilot-extension/index.md b/content/copilot/building-copilot-extensions/building-a-copilot-agent-for-your-copilot-extension/index.md index 14dd988446c9..27c6806106a3 100644 --- a/content/copilot/building-copilot-extensions/building-a-copilot-agent-for-your-copilot-extension/index.md +++ b/content/copilot/building-copilot-extensions/building-a-copilot-agent-for-your-copilot-extension/index.md @@ -7,9 +7,9 @@ versions: topics: - Copilot children: - - /about-copilot-agents - /configuring-your-copilot-agent-to-communicate-with-the-copilot-platform - /configuring-your-copilot-agent-to-communicate-with-github - /context-passing-for-your-agent - /using-copilots-llm-for-your-agent --- + diff --git a/content/copilot/building-copilot-extensions/building-a-copilot-skillset-for-your-copilot-extension/index.md b/content/copilot/building-copilot-extensions/building-a-copilot-skillset-for-your-copilot-extension/index.md index 5a5ba9d0c3df..2935617a160a 100644 --- a/content/copilot/building-copilot-extensions/building-a-copilot-skillset-for-your-copilot-extension/index.md +++ b/content/copilot/building-copilot-extensions/building-a-copilot-skillset-for-your-copilot-extension/index.md @@ -7,7 +7,6 @@ versions: topics: - Copilot children: - - /about-copilot-skillsets - /building-copilot-skillsets --- diff --git a/content/copilot/building-copilot-extensions/index.md b/content/copilot/building-copilot-extensions/index.md index 322ab529a06b..5d6630c03f73 100644 --- a/content/copilot/building-copilot-extensions/index.md +++ b/content/copilot/building-copilot-extensions/index.md @@ -7,7 +7,6 @@ versions: topics: - Copilot children: - - /about-building-copilot-extensions - /quickstart-for-github-copilot-extensions-using-agents - /setting-up-copilot-extensions - /creating-a-copilot-extension @@ -16,6 +15,5 @@ children: - /using-oidc-with-github-copilot-extensions - /debugging-your-github-copilot-extension - /managing-the-availability-of-your-copilot-extension - - /copilot-extensions-faq - - /copilot-extensions-glossary --- + diff --git a/content/copilot/using-github-copilot/coding-agent/about-assigning-tasks-to-copilot.md b/content/copilot/concepts/about-assigning-tasks-to-copilot.md similarity index 99% rename from content/copilot/using-github-copilot/coding-agent/about-assigning-tasks-to-copilot.md rename to content/copilot/concepts/about-assigning-tasks-to-copilot.md index 88237e1813a1..66ce734628bd 100644 --- a/content/copilot/using-github-copilot/coding-agent/about-assigning-tasks-to-copilot.md +++ b/content/copilot/concepts/about-assigning-tasks-to-copilot.md @@ -1,5 +1,6 @@ --- title: About assigning tasks to Copilot +shortTitle: Assign tasks to Copilot intro: 'You can assign {% data variables.product.github %} issues to {% data variables.product.prodname_copilot_short %}, or ask {% data variables.product.prodname_copilot_short %} to create a pull request.' product: '{% data reusables.gated-features.copilot-coding-agent %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' versions: @@ -11,6 +12,7 @@ redirect_from: - /copilot/using-github-copilot/using-copilot-coding-agent-to-work-on-tasks/about-assigning-tasks-to-copilot - /copilot/using-github-copilot/using-copilot-coding-agent-to-work-on-issues/about-assigning-issues-to-copilot - /copilot/using-github-copilot/using-copilot-coding-agent-to-work-on-issues/about-assigning-tasks-to-copilot + - /copilot/using-github-copilot/coding-agent/about-assigning-tasks-to-copilot --- > [!NOTE] diff --git a/content/copilot/customizing-copilot/about-customizing-github-copilot-chat-responses.md b/content/copilot/concepts/about-customizing-github-copilot-chat-responses.md similarity index 98% rename from content/copilot/customizing-copilot/about-customizing-github-copilot-chat-responses.md rename to content/copilot/concepts/about-customizing-github-copilot-chat-responses.md index b96f48b6d226..fed25085bf38 100644 --- a/content/copilot/customizing-copilot/about-customizing-github-copilot-chat-responses.md +++ b/content/copilot/concepts/about-customizing-github-copilot-chat-responses.md @@ -1,11 +1,13 @@ --- title: About customizing GitHub Copilot Chat responses -shortTitle: About customizing Copilot responses +shortTitle: Customize Copilot responses intro: 'Learn about customizing {% data variables.copilot.copilot_chat %} responses to fit with your preferences and requirements.' versions: feature: copilot topics: - Copilot +redirect_from: + - /copilot/customizing-copilot/about-customizing-github-copilot-chat-responses --- {% webui %} diff --git a/content/copilot/using-github-copilot/copilot-spaces/about-organizing-and-sharing-context-with-copilot-spaces.md b/content/copilot/concepts/about-organizing-and-sharing-context-with-copilot-spaces.md similarity index 97% rename from content/copilot/using-github-copilot/copilot-spaces/about-organizing-and-sharing-context-with-copilot-spaces.md rename to content/copilot/concepts/about-organizing-and-sharing-context-with-copilot-spaces.md index 82d5ade5f618..efa45280c532 100644 --- a/content/copilot/using-github-copilot/copilot-spaces/about-organizing-and-sharing-context-with-copilot-spaces.md +++ b/content/copilot/concepts/about-organizing-and-sharing-context-with-copilot-spaces.md @@ -8,6 +8,8 @@ versions: type: overview topics: - Copilot +redirect_from: + - /copilot/using-github-copilot/copilot-spaces/about-organizing-and-sharing-context-with-copilot-spaces --- {% data reusables.copilot.copilot-spaces.preview-note %} diff --git a/content/copilot/building-copilot-extensions/about-building-copilot-extensions.md b/content/copilot/concepts/build-copilot-extensions/about-building-copilot-extensions.md similarity index 99% rename from content/copilot/building-copilot-extensions/about-building-copilot-extensions.md rename to content/copilot/concepts/build-copilot-extensions/about-building-copilot-extensions.md index f1e127aa8d01..79e0bd72f66a 100644 --- a/content/copilot/building-copilot-extensions/about-building-copilot-extensions.md +++ b/content/copilot/concepts/build-copilot-extensions/about-building-copilot-extensions.md @@ -8,6 +8,8 @@ topics: - Copilot shortTitle: About building Extensions type: overview +redirect_from: + - /copilot/building-copilot-extensions/about-building-copilot-extensions --- ## About {% data variables.copilot.copilot_extensions_short %} diff --git a/content/copilot/building-copilot-extensions/building-a-copilot-agent-for-your-copilot-extension/about-copilot-agents.md b/content/copilot/concepts/build-copilot-extensions/agents-for-copilot-extensions.md similarity index 90% rename from content/copilot/building-copilot-extensions/building-a-copilot-agent-for-your-copilot-extension/about-copilot-agents.md rename to content/copilot/concepts/build-copilot-extensions/agents-for-copilot-extensions.md index bb4251c40e48..662f79f7e969 100644 --- a/content/copilot/building-copilot-extensions/building-a-copilot-agent-for-your-copilot-extension/about-copilot-agents.md +++ b/content/copilot/concepts/build-copilot-extensions/agents-for-copilot-extensions.md @@ -1,12 +1,15 @@ --- -title: About Copilot agents +title: About agents for Copilot Extensions +shortTitle: Agents for Copilot Extensions intro: 'Learn what {% data variables.copilot.copilot_agents %} are and how they can enhance your {% data variables.copilot.copilot_chat %} experience.' +allowTitleToDifferFromFilename: true versions: feature: copilot-extensions topics: - Copilot -shortTitle: About Copilot agents type: overview +redirect_from: + - /copilot/building-copilot-extensions/building-a-copilot-agent-for-your-copilot-extension/about-copilot-agents --- {% data variables.copilot.copilot_agents_short %} are custom tools embedded in {% data variables.copilot.copilot_extensions_short %}. They integrate with {% data variables.copilot.copilot_chat_short %} to provide additional functionalities tailored to specific needs. {% data variables.copilot.copilot_agents_short %} can perform various tasks such as querying documentation, retrieving data, executing specific actions, or providing AI-assisted coding suggestions. They enhance the capabilities of {% data variables.product.prodname_copilot %} by allowing developers to build and integrate custom features directly into the {% data variables.copilot.copilot_chat_short %} interface. diff --git a/content/copilot/concepts/build-copilot-extensions/index.md b/content/copilot/concepts/build-copilot-extensions/index.md new file mode 100644 index 000000000000..bc443358dab5 --- /dev/null +++ b/content/copilot/concepts/build-copilot-extensions/index.md @@ -0,0 +1,14 @@ +--- +title: Concepts for Copilot Extensions +shortTitle: Build Copilot Extensions +intro: 'Understand components for building {% data variables.copilot.copilot_extensions_short %}.' +versions: + feature: copilot +topics: + - Copilot +children: + - /about-building-copilot-extensions + - /agents-for-copilot-extensions + - /skillsets-for-copilot-extensions +--- + diff --git a/content/copilot/building-copilot-extensions/building-a-copilot-skillset-for-your-copilot-extension/about-copilot-skillsets.md b/content/copilot/concepts/build-copilot-extensions/skillsets-for-copilot-extensions.md similarity index 93% rename from content/copilot/building-copilot-extensions/building-a-copilot-skillset-for-your-copilot-extension/about-copilot-skillsets.md rename to content/copilot/concepts/build-copilot-extensions/skillsets-for-copilot-extensions.md index dd1a14b0e104..e63f793b6af3 100644 --- a/content/copilot/building-copilot-extensions/building-a-copilot-skillset-for-your-copilot-extension/about-copilot-skillsets.md +++ b/content/copilot/concepts/build-copilot-extensions/skillsets-for-copilot-extensions.md @@ -1,12 +1,15 @@ --- -title: About Copilot skillsets +title: About skillsets for Copilot Extensions intro: 'Learn what {% data variables.copilot.copilot_skillsets %} are and how they simplify integrating third-party tools and functions into your {% data variables.product.prodname_copilot_short %} experience.' versions: feature: copilot-extensions topics: - Copilot -shortTitle: About {% data variables.copilot.copilot_skillsets_short %} +shortTitle: Skillsets for Copilot Extensions +allowTitleToDifferFromFilename: true type: overview +redirect_from: + - /copilot/building-copilot-extensions/building-a-copilot-skillset-for-your-copilot-extension/about-copilot-skillsets --- A skill within {% data variables.product.prodname_copilot %} is a tool that the model calls to perform a specific task in response to a user query. A skillset is a collection of these skills (up to five per skillset). {% data variables.copilot.copilot_skillsets %} provide a streamlined way to extend {% data variables.product.prodname_copilot_short %}’s functionality, allowing builders to integrate external services or custom API endpoints into their {% data variables.product.prodname_copilot_short %} workflow. With skillsets, builders can enable {% data variables.product.prodname_copilot_short %} to perform tasks—such as retrieving data or executing actions in third-party services—without needing to manage complex workflows or architecture. diff --git a/content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-plan-for-your-enterprise/about-billing-for-github-copilot-in-your-enterprise.md b/content/copilot/concepts/copilot-billing/about-billing-for-github-copilot-in-your-enterprise.md similarity index 96% rename from content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-plan-for-your-enterprise/about-billing-for-github-copilot-in-your-enterprise.md rename to content/copilot/concepts/copilot-billing/about-billing-for-github-copilot-in-your-enterprise.md index 593e9ac67252..09cc7a65651d 100644 --- a/content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-plan-for-your-enterprise/about-billing-for-github-copilot-in-your-enterprise.md +++ b/content/copilot/concepts/copilot-billing/about-billing-for-github-copilot-in-your-enterprise.md @@ -1,8 +1,8 @@ --- title: About billing for GitHub Copilot in your enterprise -shortTitle: About billing +shortTitle: Billing for enterprises intro: 'Learn about pricing and billing cycles for {% data variables.product.prodname_copilot_short %} in your enterprise.' -permissions: 'Enterprise owners' +permissions: Enterprise owners product: '{% data variables.copilot.copilot_for_business %} and {% data variables.copilot.copilot_enterprise %}' versions: feature: copilot @@ -11,6 +11,7 @@ topics: - Copilot redirect_from: - /copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-subscription-for-your-enterprise/about-billing-for-github-copilot-in-your-enterprise + - /copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-plan-for-your-enterprise/about-billing-for-github-copilot-in-your-enterprise --- ## About {% data variables.product.prodname_copilot_short %} plans for your enterprise diff --git a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-plan-for-your-organization/about-billing-for-github-copilot-in-your-organization.md b/content/copilot/concepts/copilot-billing/about-billing-for-github-copilot-in-your-organization.md similarity index 95% rename from content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-plan-for-your-organization/about-billing-for-github-copilot-in-your-organization.md rename to content/copilot/concepts/copilot-billing/about-billing-for-github-copilot-in-your-organization.md index 07cea7a5be6c..3136152c1b2f 100644 --- a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-plan-for-your-organization/about-billing-for-github-copilot-in-your-organization.md +++ b/content/copilot/concepts/copilot-billing/about-billing-for-github-copilot-in-your-organization.md @@ -1,8 +1,8 @@ --- title: About billing for GitHub Copilot in your organization -shortTitle: About billing +shortTitle: Billing for organizations intro: 'Learn about pricing and billing cycles for {% data variables.product.prodname_copilot_short %} in your organization.' -permissions: 'Organization owners' +permissions: Organization owners product: '{% data variables.copilot.copilot_for_business %}' versions: feature: copilot @@ -11,6 +11,7 @@ topics: - Copilot redirect_from: - /copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-subscription-for-your-organization/about-billing-for-github-copilot-in-your-organization + - /copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-plan-for-your-organization/about-billing-for-github-copilot-in-your-organization --- ## About pricing for {% data variables.product.prodname_copilot_short %} in your organization diff --git a/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/billing-and-payments/about-billing-for-individual-copilot-plans.md b/content/copilot/concepts/copilot-billing/about-billing-for-individual-copilot-plans.md similarity index 97% rename from content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/billing-and-payments/about-billing-for-individual-copilot-plans.md rename to content/copilot/concepts/copilot-billing/about-billing-for-individual-copilot-plans.md index 582e90074b5e..d55596017e29 100644 --- a/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/billing-and-payments/about-billing-for-individual-copilot-plans.md +++ b/content/copilot/concepts/copilot-billing/about-billing-for-individual-copilot-plans.md @@ -1,6 +1,6 @@ --- title: About billing for individual Copilot plans -shortTitle: About billing +shortTitle: Billing for individuals intro: 'Learn how billing works for {% data variables.copilot.copilot_pro_short %} and {% data variables.copilot.copilot_pro_plus_short %}.' versions: feature: copilot @@ -11,6 +11,7 @@ redirect_from: - /copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-your-copilot-subscription/about-billing-for-github-copilot-individual - /copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-your-github-copilot-pro-subscription/about-billing-for-copilot-pro - /copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/billing-and-payments/about-billing-for-copilot-pro + - /copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/billing-and-payments/about-billing-for-individual-copilot-plans --- ## Pricing for {% data variables.copilot.copilot_pro_short %} and {% data variables.copilot.copilot_pro_plus_short %} diff --git a/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/about-individual-copilot-plans-and-benefits.md b/content/copilot/concepts/copilot-billing/about-individual-copilot-plans-and-benefits.md similarity index 96% rename from content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/about-individual-copilot-plans-and-benefits.md rename to content/copilot/concepts/copilot-billing/about-individual-copilot-plans-and-benefits.md index bf180e5253d7..11f61df99aeb 100644 --- a/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/about-individual-copilot-plans-and-benefits.md +++ b/content/copilot/concepts/copilot-billing/about-individual-copilot-plans-and-benefits.md @@ -1,5 +1,6 @@ --- title: About individual Copilot plans and benefits +shortTitle: Individual Copilot plans and benefits intro: '{% data variables.product.company_short %} offers several {% data variables.product.prodname_copilot_short %} plans for individual developers, each with different features, model access, and usage limits to support a wide range of coding needs.' versions: feature: copilot @@ -10,6 +11,7 @@ redirect_from: - /copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/about-github-copilot-free - /copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-copilot-free/about-github-copilot-free - /copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/about-github-copilot-free + - /copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/about-individual-copilot-plans-and-benefits --- {% 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. diff --git a/content/copilot/concepts/copilot-billing/index.md b/content/copilot/concepts/copilot-billing/index.md new file mode 100644 index 000000000000..ce16639543c7 --- /dev/null +++ b/content/copilot/concepts/copilot-billing/index.md @@ -0,0 +1,18 @@ +--- +title: 'Concepts for GitHub Copilot billing' +shortTitle: Copilot billing +intro: 'Understand billing and usage for {% data variables.product.prodname_copilot %}.' +versions: + feature: copilot +topics: + - Copilot +children: + - /understanding-and-managing-requests-in-copilot + - /about-individual-copilot-plans-and-benefits + - /about-billing-for-individual-copilot-plans + - /about-billing-for-github-copilot-in-your-organization + - /about-billing-for-github-copilot-in-your-enterprise +redirect_from: + - /managing-copilot/managing-copilot-as-an-individual-subscriber/billing-and-payments +--- + diff --git a/content/copilot/managing-copilot/understanding-and-managing-copilot-usage/understanding-and-managing-requests-in-copilot.md b/content/copilot/concepts/copilot-billing/understanding-and-managing-requests-in-copilot.md similarity index 98% rename from content/copilot/managing-copilot/understanding-and-managing-copilot-usage/understanding-and-managing-requests-in-copilot.md rename to content/copilot/concepts/copilot-billing/understanding-and-managing-requests-in-copilot.md index c14e71c5b030..faba18df7c2a 100644 --- a/content/copilot/managing-copilot/understanding-and-managing-copilot-usage/understanding-and-managing-requests-in-copilot.md +++ b/content/copilot/concepts/copilot-billing/understanding-and-managing-requests-in-copilot.md @@ -10,6 +10,7 @@ redirect_from: - /copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/monitoring-usage-and-entitlements/avoiding-unexpected-copilot-costs - /copilot/managing-copilot/monitoring-usage-and-entitlements/avoiding-unexpected-copilot-costs - /copilot/managing-copilot/monitoring-usage-and-entitlements/about-premium-requests + - /copilot/managing-copilot/understanding-and-managing-copilot-usage/understanding-and-managing-requests-in-copilot --- > [!IMPORTANT] diff --git a/content/copilot/concepts/index.md b/content/copilot/concepts/index.md new file mode 100644 index 000000000000..de6b55e99c80 --- /dev/null +++ b/content/copilot/concepts/index.md @@ -0,0 +1,20 @@ +--- +title: 'Concepts for GitHub Copilot' +shortTitle: Concepts +intro: 'Learn the core concepts that you''ll need to understand {% data variables.product.prodname_copilot %}.' +versions: + feature: copilot +topics: + - Copilot +children: + - /copilot-billing + - /prompt-engineering-for-copilot-chat + - /about-customizing-github-copilot-chat-responses + - /about-assigning-tasks-to-copilot + - /indexing-repositories-for-copilot-chat + - /about-organizing-and-sharing-context-with-copilot-spaces + - /build-copilot-extensions +redirect_from: + - /copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/billing-and-payments +--- + diff --git a/content/copilot/using-github-copilot/copilot-chat/indexing-repositories-for-copilot-chat.md b/content/copilot/concepts/indexing-repositories-for-copilot-chat.md similarity index 97% rename from content/copilot/using-github-copilot/copilot-chat/indexing-repositories-for-copilot-chat.md rename to content/copilot/concepts/indexing-repositories-for-copilot-chat.md index 7fc74627682e..5c6759625cfb 100644 --- a/content/copilot/using-github-copilot/copilot-chat/indexing-repositories-for-copilot-chat.md +++ b/content/copilot/concepts/indexing-repositories-for-copilot-chat.md @@ -12,6 +12,7 @@ redirect_from: - /copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-github-copilot-features-in-your-organization/indexing-repositories-for-copilot-chat - /copilot/customizing-copilot/indexing-repositories-for-copilot-chat - /copilot/using-github-copilot/indexing-repositories-for-copilot-chat + - /copilot/using-github-copilot/copilot-chat/indexing-repositories-for-copilot-chat --- ## Benefit of indexing repositories diff --git a/content/copilot/using-github-copilot/copilot-chat/prompt-engineering-for-copilot-chat.md b/content/copilot/concepts/prompt-engineering-for-copilot-chat.md similarity index 98% rename from content/copilot/using-github-copilot/copilot-chat/prompt-engineering-for-copilot-chat.md rename to content/copilot/concepts/prompt-engineering-for-copilot-chat.md index e9a7614f3801..bad953a4da96 100644 --- a/content/copilot/using-github-copilot/copilot-chat/prompt-engineering-for-copilot-chat.md +++ b/content/copilot/concepts/prompt-engineering-for-copilot-chat.md @@ -8,6 +8,7 @@ topics: - Copilot redirect_from: - /copilot/using-github-copilot/prompt-engineering-for-github-copilot + - /copilot/using-github-copilot/copilot-chat/prompt-engineering-for-copilot-chat --- A prompt is a request that you make to {% data variables.product.prodname_copilot %}. For example, a question that you ask {% data variables.copilot.copilot_chat_short %}, or a code snippet that you ask {% data variables.product.prodname_copilot_short %} to complete. In addition to your prompt, {% data variables.product.prodname_copilot_short %} uses additional context, like the code in your current file and the chat history, to generate a response. diff --git a/content/copilot/customizing-copilot/index.md b/content/copilot/customizing-copilot/index.md index d9ff96ab9762..e7b52a4b2ab3 100644 --- a/content/copilot/customizing-copilot/index.md +++ b/content/copilot/customizing-copilot/index.md @@ -9,7 +9,6 @@ topics: children: - /using-model-context-protocol - /extending-the-capabilities-of-github-copilot-in-your-organization - - /about-customizing-github-copilot-chat-responses - /adding-personal-custom-instructions-for-github-copilot - /adding-repository-custom-instructions-for-github-copilot - /adding-organization-custom-instructions-for-github-copilot @@ -21,3 +20,4 @@ redirect_from: - /copilot/managing-copilot/managing-github-copilot-in-your-organization/customizing-copilot-for-your-organization - /copilot/managing-copilot/managing-github-copilot-in-your-organization/enhancing-copilot-for-your-organization --- + diff --git a/content/copilot/index.md b/content/copilot/index.md index 42578f95b3ad..0f13c01265fd 100644 --- a/content/copilot/index.md +++ b/content/copilot/index.md @@ -15,10 +15,10 @@ featuredLinks: - /copilot/get-started/what-is-github-copilot - /copilot/get-started/quickstart - /copilot/building-copilot-extensions/quickstart-for-github-copilot-extensions-using-agents - - /copilot/using-github-copilot/coding-agent/about-assigning-tasks-to-copilot + - /copilot/concepts/about-assigning-tasks-to-copilot popular: - /copilot/get-started/github-copilot-features - - /copilot/copilot-chat-cookbook + - /copilot/tutorials/copilot-chat-cookbook - /copilot/using-github-copilot/getting-code-suggestions-in-your-ide-with-github-copilot - /copilot/using-github-copilot/copilot-chat/asking-github-copilot-questions-in-your-ide - /copilot/using-github-copilot/using-github-copilot-in-the-command-line @@ -27,11 +27,12 @@ versions: feature: copilot children: - /get-started + - /concepts - /using-github-copilot - - /copilot-chat-cookbook - /managing-copilot - - /rolling-out-github-copilot-at-scale - /customizing-copilot + - /reference + - /tutorials - /building-copilot-extensions - /troubleshooting-github-copilot - /responsible-use-of-github-copilot-features diff --git a/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/billing-and-payments/index.md b/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/billing-and-payments/index.md deleted file mode 100644 index 5aed482cae4b..000000000000 --- a/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/billing-and-payments/index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Billing and payments -intro: 'Understand how billing works for individual {% data variables.product.prodname_copilot_short %} plans.' -versions: - feature: copilot -topics: - - Copilot -children: - - /about-billing-for-individual-copilot-plans ---- diff --git a/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/index.md b/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/index.md index fe30a4083358..5205f49f1079 100644 --- a/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/index.md +++ b/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/index.md @@ -7,9 +7,9 @@ versions: topics: - Copilot children: - - /about-individual-copilot-plans-and-benefits - /getting-started-with-a-copilot-plan - /getting-free-access-to-copilot-pro-as-a-student-teacher-or-maintainer redirect_from: - /copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-copilot-free --- + diff --git a/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/index.md b/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/index.md index d66bdceea3f3..e9c8ccc3057a 100644 --- a/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/index.md +++ b/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/index.md @@ -9,5 +9,4 @@ topics: children: - /getting-started-with-copilot-on-your-personal-account - /managing-your-copilot-plan - - /billing-and-payments --- diff --git a/content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-plan-for-your-enterprise/index.md b/content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-plan-for-your-enterprise/index.md index 6862b1f55111..a03867619978 100644 --- a/content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-plan-for-your-enterprise/index.md +++ b/content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-plan-for-your-enterprise/index.md @@ -7,7 +7,6 @@ versions: topics: - Copilot children: - - /about-billing-for-github-copilot-in-your-enterprise - /subscribing-to-copilot-for-your-enterprise - /canceling-copilot-for-your-enterprise - /upgrading-copilot-for-your-enterprise @@ -16,3 +15,4 @@ redirect_from: - /managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-subscription-for-your-enterprise - /copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-subscription-for-your-enterprise --- + diff --git a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-plan-for-your-organization/index.md b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-plan-for-your-organization/index.md index 9b57bc3f4915..24df0e5de691 100644 --- a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-plan-for-your-organization/index.md +++ b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-plan-for-your-organization/index.md @@ -7,9 +7,9 @@ versions: topics: - Copilot children: - - /about-billing-for-github-copilot-in-your-organization - /subscribing-to-copilot-for-your-organization - /canceling-copilot-for-your-organization redirect_from: - /copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-subscription-for-your-organization --- + diff --git a/content/copilot/managing-copilot/understanding-and-managing-copilot-usage/index.md b/content/copilot/managing-copilot/understanding-and-managing-copilot-usage/index.md index 6e3a94581685..acb025546b00 100644 --- a/content/copilot/managing-copilot/understanding-and-managing-copilot-usage/index.md +++ b/content/copilot/managing-copilot/understanding-and-managing-copilot-usage/index.md @@ -7,8 +7,8 @@ versions: topics: - Copilot children: - - /understanding-and-managing-requests-in-copilot - /monitoring-your-copilot-usage-and-entitlements redirect_from: - /copilot/managing-copilot/monitoring-usage-and-entitlements --- + diff --git a/content/copilot/using-github-copilot/ai-models/choosing-the-right-ai-model-for-your-task.md b/content/copilot/reference/ai-models/choosing-the-right-ai-model-for-your-task.md similarity index 98% rename from content/copilot/using-github-copilot/ai-models/choosing-the-right-ai-model-for-your-task.md rename to content/copilot/reference/ai-models/choosing-the-right-ai-model-for-your-task.md index f7a26018d3c0..db14d64be6f2 100644 --- a/content/copilot/using-github-copilot/ai-models/choosing-the-right-ai-model-for-your-task.md +++ b/content/copilot/reference/ai-models/choosing-the-right-ai-model-for-your-task.md @@ -1,11 +1,13 @@ --- title: Choosing the right AI model for your task -shortTitle: 'Choose the right AI model' +shortTitle: Choose the right AI model intro: 'Compare available AI models in {% data variables.copilot.copilot_chat_short %} and choose the best model for your task.' versions: feature: copilot topics: - Copilot +redirect_from: + - /copilot/using-github-copilot/ai-models/choosing-the-right-ai-model-for-your-task --- ## Comparison of AI models for {% data variables.product.prodname_copilot %} diff --git a/content/copilot/reference/ai-models/index.md b/content/copilot/reference/ai-models/index.md new file mode 100644 index 000000000000..64fd64753f9f --- /dev/null +++ b/content/copilot/reference/ai-models/index.md @@ -0,0 +1,13 @@ +--- +title: 'AI models for Copilot' +shortTitle: AI models +intro: 'Find information about large language models you can use to power {% data variables.product.prodname_copilot %}.' +versions: + feature: copilot +topics: + - Copilot +children: + - /supported-ai-models-in-copilot + - /choosing-the-right-ai-model-for-your-task +--- + diff --git a/content/copilot/using-github-copilot/ai-models/supported-ai-models-in-copilot.md b/content/copilot/reference/ai-models/supported-ai-models-in-copilot.md similarity index 99% rename from content/copilot/using-github-copilot/ai-models/supported-ai-models-in-copilot.md rename to content/copilot/reference/ai-models/supported-ai-models-in-copilot.md index a70171a9713b..a8fa7fd9be39 100644 --- a/content/copilot/using-github-copilot/ai-models/supported-ai-models-in-copilot.md +++ b/content/copilot/reference/ai-models/supported-ai-models-in-copilot.md @@ -15,6 +15,7 @@ redirect_from: - /copilot/using-github-copilot/ai-models/using-openai-gpt-41-in-github-copilot - /copilot/using-github-copilot/ai-models/using-openai-o3-in-github-copilot - /copilot/using-github-copilot/ai-models/using-openai-o4-mini-in-github-copilot + - /copilot/using-github-copilot/ai-models/supported-ai-models-in-copilot --- {% data variables.product.prodname_copilot %} supports multiple models, each with different strengths. Some models prioritize speed and cost-efficiency, while others are optimized for accuracy, reasoning, or working with multimodal inputs (like images and code together). diff --git a/content/copilot/building-copilot-extensions/copilot-extensions-faq.md b/content/copilot/reference/copilot-extensions/copilot-extensions-faq.md similarity index 99% rename from content/copilot/building-copilot-extensions/copilot-extensions-faq.md rename to content/copilot/reference/copilot-extensions/copilot-extensions-faq.md index d31f9a830221..fc51f7523297 100644 --- a/content/copilot/building-copilot-extensions/copilot-extensions-faq.md +++ b/content/copilot/reference/copilot-extensions/copilot-extensions-faq.md @@ -7,6 +7,8 @@ topics: - Copilot shortTitle: Extensions FAQ type: reference +redirect_from: + - /copilot/building-copilot-extensions/copilot-extensions-faq --- ## General diff --git a/content/copilot/building-copilot-extensions/copilot-extensions-glossary.md b/content/copilot/reference/copilot-extensions/copilot-extensions-glossary.md similarity index 98% rename from content/copilot/building-copilot-extensions/copilot-extensions-glossary.md rename to content/copilot/reference/copilot-extensions/copilot-extensions-glossary.md index 94f4157e66ed..509ee822a0ca 100644 --- a/content/copilot/building-copilot-extensions/copilot-extensions-glossary.md +++ b/content/copilot/reference/copilot-extensions/copilot-extensions-glossary.md @@ -7,6 +7,8 @@ topics: - Copilot shortTitle: Extensions Glossary type: reference +redirect_from: + - /copilot/building-copilot-extensions/copilot-extensions-glossary --- The following terms are used in the context of {% data variables.copilot.copilot_extensions_short %}, and are defined here for clarity. diff --git a/content/copilot/reference/copilot-extensions/index.md b/content/copilot/reference/copilot-extensions/index.md new file mode 100644 index 000000000000..b1c03654903f --- /dev/null +++ b/content/copilot/reference/copilot-extensions/index.md @@ -0,0 +1,13 @@ +--- +title: Copilot Extensions +shortTitle: Copilot Extensions +intro: 'Find information about building {% data variables.copilot.copilot_extensions %}.' +versions: + feature: copilot +topics: + - Copilot +children: + - /copilot-extensions-faq + - /copilot-extensions-glossary +--- + diff --git a/content/copilot/using-github-copilot/copilot-chat/github-copilot-chat-cheat-sheet.md b/content/copilot/reference/github-copilot-chat-cheat-sheet.md similarity index 98% rename from content/copilot/using-github-copilot/copilot-chat/github-copilot-chat-cheat-sheet.md rename to content/copilot/reference/github-copilot-chat-cheat-sheet.md index d95d2bce7fcd..527735db5434 100644 --- a/content/copilot/using-github-copilot/copilot-chat/github-copilot-chat-cheat-sheet.md +++ b/content/copilot/reference/github-copilot-chat-cheat-sheet.md @@ -1,13 +1,14 @@ --- title: GitHub Copilot Chat cheat sheet shortTitle: Copilot Chat cheat sheet -intro: "Use this cheat sheet to quickly reference the most common commands and options for using {% data variables.copilot.copilot_chat %}." +intro: 'Use this cheat sheet to quickly reference the most common commands and options for using {% data variables.copilot.copilot_chat %}.' versions: feature: copilot topics: - Copilot redirect_from: - /copilot/using-github-copilot/github-copilot-chat-cheat-sheet + - /copilot/using-github-copilot/copilot-chat/github-copilot-chat-cheat-sheet --- {% webui %} diff --git a/content/copilot/reference/index.md b/content/copilot/reference/index.md new file mode 100644 index 000000000000..027ddb735760 --- /dev/null +++ b/content/copilot/reference/index.md @@ -0,0 +1,14 @@ +--- +title: 'Reference for {% data variables.product.prodname_copilot %}' +shortTitle: Reference +intro: 'Find information to apply to your work with {% data variables.product.prodname_copilot %}.' +versions: + feature: copilot +topics: + - Copilot +children: + - /github-copilot-chat-cheat-sheet + - /ai-models + - /copilot-extensions +--- + diff --git a/content/copilot/using-github-copilot/guides-on-using-github-copilot/choosing-the-right-ai-tool-for-your-task.md b/content/copilot/tutorials/choosing-the-right-ai-tool-for-your-task.md similarity index 97% rename from content/copilot/using-github-copilot/guides-on-using-github-copilot/choosing-the-right-ai-tool-for-your-task.md rename to content/copilot/tutorials/choosing-the-right-ai-tool-for-your-task.md index de0da26a52ef..0d2f6b3067c1 100644 --- a/content/copilot/using-github-copilot/guides-on-using-github-copilot/choosing-the-right-ai-tool-for-your-task.md +++ b/content/copilot/tutorials/choosing-the-right-ai-tool-for-your-task.md @@ -1,11 +1,13 @@ --- title: Choosing the right AI tool for your task -shortTitle: 'Choose the right AI tool' -intro: "Understand {% data variables.product.github %}'s AI tools and how they can be used to help develop software." +shortTitle: Choose the right AI tool +intro: 'Understand {% data variables.product.github %}''s AI tools and how they can be used to help develop software.' versions: fpt: '*' topics: - Copilot +redirect_from: + - /copilot/using-github-copilot/guides-on-using-github-copilot/choosing-the-right-ai-tool-for-your-task --- ## Overview diff --git a/content/copilot/using-github-copilot/ai-models/comparing-ai-models-using-different-tasks.md b/content/copilot/tutorials/comparing-ai-models-using-different-tasks.md similarity index 98% rename from content/copilot/using-github-copilot/ai-models/comparing-ai-models-using-different-tasks.md rename to content/copilot/tutorials/comparing-ai-models-using-different-tasks.md index 058bfb55c014..2f594b4f7023 100644 --- a/content/copilot/using-github-copilot/ai-models/comparing-ai-models-using-different-tasks.md +++ b/content/copilot/tutorials/comparing-ai-models-using-different-tasks.md @@ -8,6 +8,7 @@ topics: - Copilot redirect_from: - /copilot/using-github-copilot/ai-models/examples-for-ai-model-comparison + - /copilot/using-github-copilot/ai-models/comparing-ai-models-using-different-tasks --- ## Overview diff --git a/content/copilot/copilot-chat-cookbook/debugging-errors/debugging-invalid-json.md b/content/copilot/tutorials/copilot-chat-cookbook/debugging-errors/debugging-invalid-json.md similarity index 95% rename from content/copilot/copilot-chat-cookbook/debugging-errors/debugging-invalid-json.md rename to content/copilot/tutorials/copilot-chat-cookbook/debugging-errors/debugging-invalid-json.md index 86cdc9994ca1..14c3999f8fd2 100644 --- a/content/copilot/copilot-chat-cookbook/debugging-errors/debugging-invalid-json.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/debugging-errors/debugging-invalid-json.md @@ -4,10 +4,11 @@ shortTitle: Debug invalid JSON intro: '{% data variables.copilot.copilot_chat_short %} can identify and resolve syntax errors or structural issues in JSON data.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/debugging-errors/debugging-invalid-json + - /copilot/copilot-chat-cookbook/debugging-errors/debugging-invalid-json versions: feature: copilot category: - - 'Debugging code' + - Debugging code complexity: - Intermediate octicon: bug diff --git a/content/copilot/copilot-chat-cookbook/debugging-errors/handling-api-rate-limits.md b/content/copilot/tutorials/copilot-chat-cookbook/debugging-errors/handling-api-rate-limits.md similarity index 97% rename from content/copilot/copilot-chat-cookbook/debugging-errors/handling-api-rate-limits.md rename to content/copilot/tutorials/copilot-chat-cookbook/debugging-errors/handling-api-rate-limits.md index 31959c1ad6a9..1bbfbf2b2e7e 100644 --- a/content/copilot/copilot-chat-cookbook/debugging-errors/handling-api-rate-limits.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/debugging-errors/handling-api-rate-limits.md @@ -4,10 +4,11 @@ shortTitle: Handle API rate limits intro: '{% data variables.copilot.copilot_chat_short %} can help handle API rate limits by suggesting code that detects implements retry logic.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/debugging-errors/handling-api-rate-limits + - /copilot/copilot-chat-cookbook/debugging-errors/handling-api-rate-limits versions: feature: copilot category: - - 'Debugging code' + - Debugging code complexity: - Intermediate octicon: bug diff --git a/content/copilot/copilot-chat-cookbook/debugging-errors/index.md b/content/copilot/tutorials/copilot-chat-cookbook/debugging-errors/index.md similarity index 87% rename from content/copilot/copilot-chat-cookbook/debugging-errors/index.md rename to content/copilot/tutorials/copilot-chat-cookbook/debugging-errors/index.md index a494da03c22b..e0c5b2fecc9a 100644 --- a/content/copilot/copilot-chat-cookbook/debugging-errors/index.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/debugging-errors/index.md @@ -3,6 +3,7 @@ title: Debugging errors intro: 'Discover ways that you can use {% data variables.product.prodname_copilot %} to debug errors during development.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/debugging-errors + - /copilot/copilot-chat-cookbook/debugging-errors versions: feature: copilot topics: @@ -11,3 +12,4 @@ children: - /debugging-invalid-json - /handling-api-rate-limits --- + diff --git a/content/copilot/copilot-chat-cookbook/documenting-code/documenting-legacy-code.md b/content/copilot/tutorials/copilot-chat-cookbook/documenting-code/documenting-legacy-code.md similarity index 97% rename from content/copilot/copilot-chat-cookbook/documenting-code/documenting-legacy-code.md rename to content/copilot/tutorials/copilot-chat-cookbook/documenting-code/documenting-legacy-code.md index 4cec358579de..71e2f8a48c16 100644 --- a/content/copilot/copilot-chat-cookbook/documenting-code/documenting-legacy-code.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/documenting-code/documenting-legacy-code.md @@ -1,13 +1,14 @@ --- -title: 'Documenting legacy code' +title: Documenting legacy code shortTitle: Document legacy code intro: '{% data variables.copilot.copilot_chat_short %} can help with documenting legacy code.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/documenting-code/documenting-legacy-code + - /copilot/copilot-chat-cookbook/documenting-code/documenting-legacy-code versions: feature: copilot category: - - 'Documenting code' + - Documenting code complexity: - Simple octicon: book diff --git a/content/copilot/copilot-chat-cookbook/documenting-code/explaining-complex-algorithms-or-logic.md b/content/copilot/tutorials/copilot-chat-cookbook/documenting-code/explaining-complex-algorithms-or-logic.md similarity index 97% rename from content/copilot/copilot-chat-cookbook/documenting-code/explaining-complex-algorithms-or-logic.md rename to content/copilot/tutorials/copilot-chat-cookbook/documenting-code/explaining-complex-algorithms-or-logic.md index 8c21104803fe..849bba94b635 100644 --- a/content/copilot/copilot-chat-cookbook/documenting-code/explaining-complex-algorithms-or-logic.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/documenting-code/explaining-complex-algorithms-or-logic.md @@ -1,13 +1,14 @@ --- -title: 'Explaining complex algorithms or logic' +title: Explaining complex algorithms or logic shortTitle: Explain complex logic intro: '{% data variables.copilot.copilot_chat_short %} can help add clear and concise documentation on complex algorithms or logic.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/documenting-code/explaining-complex-algorithms-or-logic + - /copilot/copilot-chat-cookbook/documenting-code/explaining-complex-algorithms-or-logic versions: feature: copilot category: - - 'Documenting code' + - Documenting code complexity: - Intermediate octicon: book diff --git a/content/copilot/copilot-chat-cookbook/documenting-code/explaining-legacy-code.md b/content/copilot/tutorials/copilot-chat-cookbook/documenting-code/explaining-legacy-code.md similarity index 96% rename from content/copilot/copilot-chat-cookbook/documenting-code/explaining-legacy-code.md rename to content/copilot/tutorials/copilot-chat-cookbook/documenting-code/explaining-legacy-code.md index 8ffc9121b28d..cbccdf8f053a 100644 --- a/content/copilot/copilot-chat-cookbook/documenting-code/explaining-legacy-code.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/documenting-code/explaining-legacy-code.md @@ -1,13 +1,14 @@ --- -title: 'Explaining legacy code' +title: Explaining legacy code shortTitle: Explain legacy code intro: '{% data variables.copilot.copilot_chat_short %} can help with explaining unfamiliar code.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/documenting-code/explaining-legacy-code + - /copilot/copilot-chat-cookbook/documenting-code/explaining-legacy-code versions: feature: copilot category: - - 'Documenting code' + - Documenting code complexity: - Simple octicon: book diff --git a/content/copilot/copilot-chat-cookbook/documenting-code/index.md b/content/copilot/tutorials/copilot-chat-cookbook/documenting-code/index.md similarity index 89% rename from content/copilot/copilot-chat-cookbook/documenting-code/index.md rename to content/copilot/tutorials/copilot-chat-cookbook/documenting-code/index.md index 70ec05d39a70..70065fb67d2c 100644 --- a/content/copilot/copilot-chat-cookbook/documenting-code/index.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/documenting-code/index.md @@ -3,6 +3,7 @@ title: Documenting code intro: 'Discover ways that you can use {% data variables.copilot.copilot_chat %} to document your code.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/documenting-code + - /copilot/copilot-chat-cookbook/documenting-code versions: feature: copilot topics: @@ -14,3 +15,4 @@ children: - /syncing-documentation-with-code-changes - /writing-discussions-or-blog-posts --- + diff --git a/content/copilot/copilot-chat-cookbook/documenting-code/syncing-documentation-with-code-changes.md b/content/copilot/tutorials/copilot-chat-cookbook/documenting-code/syncing-documentation-with-code-changes.md similarity index 95% rename from content/copilot/copilot-chat-cookbook/documenting-code/syncing-documentation-with-code-changes.md rename to content/copilot/tutorials/copilot-chat-cookbook/documenting-code/syncing-documentation-with-code-changes.md index 667e524d789b..9c3c0c418f32 100644 --- a/content/copilot/copilot-chat-cookbook/documenting-code/syncing-documentation-with-code-changes.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/documenting-code/syncing-documentation-with-code-changes.md @@ -1,13 +1,14 @@ --- -title: 'Syncing documentation with code changes' +title: Syncing documentation with code changes shortTitle: Sync documentation intro: '{% data variables.copilot.copilot_chat_short %} can help with keeping code documentation up-to-date.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/documenting-code/syncing-documentation-with-code-changes + - /copilot/copilot-chat-cookbook/documenting-code/syncing-documentation-with-code-changes versions: feature: copilot category: - - 'Documenting code' + - Documenting code complexity: - Intermediate octicon: book diff --git a/content/copilot/copilot-chat-cookbook/documenting-code/writing-discussions-or-blog-posts.md b/content/copilot/tutorials/copilot-chat-cookbook/documenting-code/writing-discussions-or-blog-posts.md similarity index 98% rename from content/copilot/copilot-chat-cookbook/documenting-code/writing-discussions-or-blog-posts.md rename to content/copilot/tutorials/copilot-chat-cookbook/documenting-code/writing-discussions-or-blog-posts.md index 2c012ab7d6be..f17caae0464b 100644 --- a/content/copilot/copilot-chat-cookbook/documenting-code/writing-discussions-or-blog-posts.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/documenting-code/writing-discussions-or-blog-posts.md @@ -5,12 +5,14 @@ intro: '{% data variables.copilot.copilot_chat_short %} can help you generate id versions: feature: copilot category: - - 'Documenting code' + - Documenting code complexity: - Simple octicon: book topics: - Copilot +redirect_from: + - /copilot/copilot-chat-cookbook/documenting-code/writing-discussions-or-blog-posts --- When you're working on code, you often need to quickly create accurate and comprehensive explanations to share your work with teammates or the broader community. {% data variables.copilot.copilot_chat_short %} can help by suggesting ideas, outlines, or complete drafts for discussions or blog posts—enabling you to document and communicate clearly, so you can spend more time focused on coding. diff --git a/content/copilot/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/analyzing-and-incorporating-user-feedback.md b/content/copilot/tutorials/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/analyzing-and-incorporating-user-feedback.md similarity index 96% rename from content/copilot/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/analyzing-and-incorporating-user-feedback.md rename to content/copilot/tutorials/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/analyzing-and-incorporating-user-feedback.md index 8ec125464126..d30b96c79bdd 100644 --- a/content/copilot/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/analyzing-and-incorporating-user-feedback.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/analyzing-and-incorporating-user-feedback.md @@ -1,13 +1,14 @@ --- -title: 'Analyzing and incorporating user feedback' +title: Analyzing and incorporating user feedback shortTitle: Incorporate feedback intro: '{% data variables.copilot.copilot_chat_short %} can enhance the process of incorporating user feedback into your project.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/functionality-analysis-and-feature-suggestions/analyzing-and-incorporating-user-feedback + - /copilot/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/analyzing-and-incorporating-user-feedback versions: feature: copilot category: - - 'Functionality analysis' + - Functionality analysis complexity: - Intermediate octicon: lightbulb diff --git a/content/copilot/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/exploring-potential-feature-implementations.md b/content/copilot/tutorials/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/exploring-potential-feature-implementations.md similarity index 94% rename from content/copilot/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/exploring-potential-feature-implementations.md rename to content/copilot/tutorials/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/exploring-potential-feature-implementations.md index 0460eb8b5f45..0446724c294c 100644 --- a/content/copilot/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/exploring-potential-feature-implementations.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/exploring-potential-feature-implementations.md @@ -1,15 +1,14 @@ --- title: Exploring potential feature implementations shortTitle: Explore feature implementations -intro: >- - {% data variables.copilot.copilot_chat_short %} can help explore - different approaches for implementing a single feature. +intro: '{% data variables.copilot.copilot_chat_short %} can help explore different approaches for implementing a single feature.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/functionality-analysis-and-feature-suggestions/exploring-potential-feature-implementations + - /copilot/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/exploring-potential-feature-implementations versions: feature: copilot category: - - 'Functionality analysis' + - Functionality analysis complexity: - Intermediate octicon: lightbulb diff --git a/content/copilot/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/index.md b/content/copilot/tutorials/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/index.md similarity index 84% rename from content/copilot/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/index.md rename to content/copilot/tutorials/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/index.md index 9204e636ab68..19e3e789dc88 100644 --- a/content/copilot/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/index.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions/index.md @@ -3,6 +3,7 @@ title: Functionality analysis and feature suggestions intro: 'Discover ways that you can use {% data variables.product.prodname_copilot %} to improve the functionality of your project.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/functionality-analysis-and-feature-suggestions + - /copilot/copilot-chat-cookbook/functionality-analysis-and-feature-suggestions versions: feature: copilot topics: @@ -11,3 +12,4 @@ children: - /exploring-potential-feature-implementations - /analyzing-and-incorporating-user-feedback --- + diff --git a/content/copilot/copilot-chat-cookbook/index.md b/content/copilot/tutorials/copilot-chat-cookbook/index.md similarity index 92% rename from content/copilot/copilot-chat-cookbook/index.md rename to content/copilot/tutorials/copilot-chat-cookbook/index.md index cc209561d7c1..f66a69f4074b 100644 --- a/content/copilot/copilot-chat-cookbook/index.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/index.md @@ -4,6 +4,7 @@ intro: 'Find examples of prompts to use with {% data variables.copilot.copilot_c allowTitleToDifferFromFilename: true redirect_from: - /copilot/example-prompts-for-github-copilot-chat + - /copilot/copilot-chat-cookbook versions: feature: copilot topics: @@ -17,3 +18,4 @@ children: - /testing-code - /security-analysis --- + diff --git a/content/copilot/copilot-chat-cookbook/refactoring-code/decoupling-business-logic-from-ui-components.md b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/decoupling-business-logic-from-ui-components.md similarity index 97% rename from content/copilot/copilot-chat-cookbook/refactoring-code/decoupling-business-logic-from-ui-components.md rename to content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/decoupling-business-logic-from-ui-components.md index 7c481c7cc2c3..f41165dab909 100644 --- a/content/copilot/copilot-chat-cookbook/refactoring-code/decoupling-business-logic-from-ui-components.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/decoupling-business-logic-from-ui-components.md @@ -4,10 +4,11 @@ shortTitle: Decoupling business logic intro: '{% data variables.copilot.copilot_chat_short %} can help you separate your business logic from your user interface code, making it easier to maintain and scale your application.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/refactoring-code/decoupling-business-logic-from-ui-components + - /copilot/copilot-chat-cookbook/refactoring-code/decoupling-business-logic-from-ui-components versions: feature: copilot category: - - 'Refactoring code' + - Refactoring code complexity: - Advanced octicon: rocket diff --git a/content/copilot/copilot-chat-cookbook/refactoring-code/fixing-database-deadlocks-or-data-integrity-issues.md b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/fixing-database-deadlocks-or-data-integrity-issues.md similarity index 98% rename from content/copilot/copilot-chat-cookbook/refactoring-code/fixing-database-deadlocks-or-data-integrity-issues.md rename to content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/fixing-database-deadlocks-or-data-integrity-issues.md index b7c96e6cc501..788628a8fd06 100644 --- a/content/copilot/copilot-chat-cookbook/refactoring-code/fixing-database-deadlocks-or-data-integrity-issues.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/fixing-database-deadlocks-or-data-integrity-issues.md @@ -1,13 +1,14 @@ --- -title: 'Fixing database deadlocks or data integrity issues' +title: Fixing database deadlocks or data integrity issues shortTitle: Fix database deadlocks intro: '{% data variables.copilot.copilot_chat_short %} can help you avoid code that causes slow or blocked database operations, or tables with missing or incorrect data.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/refactoring-code/fixing-database-deadlocks-or-data-integrity-issues + - /copilot/copilot-chat-cookbook/refactoring-code/fixing-database-deadlocks-or-data-integrity-issues versions: feature: copilot category: - - 'Refactoring code' + - Refactoring code complexity: - Advanced octicon: rocket diff --git a/content/copilot/copilot-chat-cookbook/refactoring-code/fixing-lint-errors.md b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/fixing-lint-errors.md similarity index 97% rename from content/copilot/copilot-chat-cookbook/refactoring-code/fixing-lint-errors.md rename to content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/fixing-lint-errors.md index b3ccb98bcf58..07c4b7771af1 100644 --- a/content/copilot/copilot-chat-cookbook/refactoring-code/fixing-lint-errors.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/fixing-lint-errors.md @@ -4,10 +4,11 @@ shortTitle: Lint errors intro: '{% data variables.copilot.copilot_chat_short %} can suggest ways to fix issues identified by a code linter.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/refactoring-code/fixing-lint-errors + - /copilot/copilot-chat-cookbook/refactoring-code/fixing-lint-errors versions: feature: copilot category: - - 'Refactoring code' + - Refactoring code complexity: - Intermediate octicon: rocket diff --git a/content/copilot/copilot-chat-cookbook/refactoring-code/handling-cross-cutting-concerns.md b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/handling-cross-cutting-concerns.md similarity index 98% rename from content/copilot/copilot-chat-cookbook/refactoring-code/handling-cross-cutting-concerns.md rename to content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/handling-cross-cutting-concerns.md index 0d0e6ed00a11..aa72619a6f6b 100644 --- a/content/copilot/copilot-chat-cookbook/refactoring-code/handling-cross-cutting-concerns.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/handling-cross-cutting-concerns.md @@ -4,10 +4,11 @@ shortTitle: Cross-cutting concerns intro: '{% data variables.copilot.copilot_chat_short %} can help you avoid code that relates to a concern other than the core concern of the method or function in which the code is located.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/refactoring-code/handling-cross-cutting-concerns + - /copilot/copilot-chat-cookbook/refactoring-code/handling-cross-cutting-concerns versions: feature: copilot category: - - 'Refactoring code' + - Refactoring code complexity: - Intermediate octicon: rocket diff --git a/content/copilot/copilot-chat-cookbook/refactoring-code/improving-code-readability-and-maintainability.md b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/improving-code-readability-and-maintainability.md similarity index 97% rename from content/copilot/copilot-chat-cookbook/refactoring-code/improving-code-readability-and-maintainability.md rename to content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/improving-code-readability-and-maintainability.md index 02f59cfde830..8a376c3c9e24 100644 --- a/content/copilot/copilot-chat-cookbook/refactoring-code/improving-code-readability-and-maintainability.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/improving-code-readability-and-maintainability.md @@ -1,13 +1,14 @@ --- -title: 'Improving code readability and maintainability' +title: Improving code readability and maintainability shortTitle: Improve code readability intro: '{% data variables.copilot.copilot_chat_short %} can suggest ways to make your code easier to understand and maintain.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/refactoring-code/improving-code-readability-and-maintainability + - /copilot/copilot-chat-cookbook/refactoring-code/improving-code-readability-and-maintainability versions: feature: copilot category: - - 'Refactoring code' + - Refactoring code complexity: - Simple octicon: rocket diff --git a/content/copilot/copilot-chat-cookbook/refactoring-code/index.md b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/index.md similarity index 93% rename from content/copilot/copilot-chat-cookbook/refactoring-code/index.md rename to content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/index.md index 88e1983ce6be..316154ad2ad0 100644 --- a/content/copilot/copilot-chat-cookbook/refactoring-code/index.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/index.md @@ -3,6 +3,7 @@ title: Refactoring code intro: 'Discover ways that you can use {% data variables.product.prodname_copilot %} to refactor your code.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/refactoring-code + - /copilot/copilot-chat-cookbook/refactoring-code versions: feature: copilot topics: @@ -19,3 +20,4 @@ children: - /fixing-database-deadlocks-or-data-integrity-issues - /translating-code-to-a-different-programming-language --- + diff --git a/content/copilot/copilot-chat-cookbook/refactoring-code/refactoring-data-access-layers.md b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/refactoring-data-access-layers.md similarity index 98% rename from content/copilot/copilot-chat-cookbook/refactoring-code/refactoring-data-access-layers.md rename to content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/refactoring-data-access-layers.md index 30a4045fed8a..3541366fc013 100644 --- a/content/copilot/copilot-chat-cookbook/refactoring-code/refactoring-data-access-layers.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/refactoring-data-access-layers.md @@ -4,10 +4,11 @@ shortTitle: Data access layers intro: '{% data variables.copilot.copilot_chat_short %} can suggest ways to decouple your data access code from your business logic, making an application easier to maintain and scale.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/refactoring-code/refactoring-data-access-layers + - /copilot/copilot-chat-cookbook/refactoring-code/refactoring-data-access-layers versions: feature: copilot category: - - 'Refactoring code' + - Refactoring code complexity: - Advanced octicon: rocket diff --git a/content/copilot/copilot-chat-cookbook/refactoring-code/refactoring-for-performance-optimization.md b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/refactoring-for-performance-optimization.md similarity index 96% rename from content/copilot/copilot-chat-cookbook/refactoring-code/refactoring-for-performance-optimization.md rename to content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/refactoring-for-performance-optimization.md index ecf4d550365b..761d18ae5bba 100644 --- a/content/copilot/copilot-chat-cookbook/refactoring-code/refactoring-for-performance-optimization.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/refactoring-for-performance-optimization.md @@ -4,10 +4,11 @@ shortTitle: Performance optimization intro: '{% data variables.copilot.copilot_chat_short %} can suggest ways to speed up slow-running code.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/refactoring-code/refactoring-for-performance-optimization + - /copilot/copilot-chat-cookbook/refactoring-code/refactoring-for-performance-optimization versions: feature: copilot category: - - 'Refactoring code' + - Refactoring code complexity: - Simple octicon: rocket diff --git a/content/copilot/copilot-chat-cookbook/refactoring-code/refactoring-to-implement-a-design-pattern.md b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/refactoring-to-implement-a-design-pattern.md similarity index 96% rename from content/copilot/copilot-chat-cookbook/refactoring-code/refactoring-to-implement-a-design-pattern.md rename to content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/refactoring-to-implement-a-design-pattern.md index ca02b9218496..d8c57b7cad75 100644 --- a/content/copilot/copilot-chat-cookbook/refactoring-code/refactoring-to-implement-a-design-pattern.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/refactoring-to-implement-a-design-pattern.md @@ -4,10 +4,11 @@ shortTitle: Design patterns intro: '{% data variables.copilot.copilot_chat_short %} can suggest design patterns that you can use to improve your code.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/refactoring-code/refactoring-to-implement-a-design-pattern + - /copilot/copilot-chat-cookbook/refactoring-code/refactoring-to-implement-a-design-pattern versions: feature: copilot category: - - 'Refactoring code' + - Refactoring code complexity: - Intermediate octicon: rocket diff --git a/content/copilot/copilot-chat-cookbook/refactoring-code/simplifying-complex-inheritance-hierarchies.md b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/simplifying-complex-inheritance-hierarchies.md similarity index 96% rename from content/copilot/copilot-chat-cookbook/refactoring-code/simplifying-complex-inheritance-hierarchies.md rename to content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/simplifying-complex-inheritance-hierarchies.md index 37e3ac1fd4dc..cbbf18d55951 100644 --- a/content/copilot/copilot-chat-cookbook/refactoring-code/simplifying-complex-inheritance-hierarchies.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/simplifying-complex-inheritance-hierarchies.md @@ -4,10 +4,11 @@ shortTitle: Simplify inheritance hierarchies intro: '{% data variables.copilot.copilot_chat_short %} can help you to refactor code to avoid classes with multiple layers of inheritance.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/refactoring-code/simplifying-complex-inheritance-hierarchies + - /copilot/copilot-chat-cookbook/refactoring-code/simplifying-complex-inheritance-hierarchies versions: feature: copilot category: - - 'Refactoring code' + - Refactoring code complexity: - Intermediate octicon: rocket diff --git a/content/copilot/copilot-chat-cookbook/refactoring-code/translating-code-to-a-different-programming-language.md b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/translating-code-to-a-different-programming-language.md similarity index 97% rename from content/copilot/copilot-chat-cookbook/refactoring-code/translating-code-to-a-different-programming-language.md rename to content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/translating-code-to-a-different-programming-language.md index 00362759ed02..974caf818381 100644 --- a/content/copilot/copilot-chat-cookbook/refactoring-code/translating-code-to-a-different-programming-language.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/refactoring-code/translating-code-to-a-different-programming-language.md @@ -5,12 +5,14 @@ intro: '{% data variables.copilot.copilot_chat_short %} can help you rewrite cod versions: feature: copilot category: - - 'Refactoring code' + - Refactoring code complexity: - Simple octicon: rocket topics: - Copilot +redirect_from: + - /copilot/copilot-chat-cookbook/refactoring-code/translating-code-to-a-different-programming-language --- There are many reasons why you might want to move code from one programming language to another. Each programming language has its own strengths and weaknesses, and you might want to take advantage of features that are available in another language. For example, you might want to move code to a language that has better performance, or which uses strong typing to help prevent bugs. diff --git a/content/copilot/copilot-chat-cookbook/security-analysis/finding-existing-vulnerabilities-in-code.md b/content/copilot/tutorials/copilot-chat-cookbook/security-analysis/finding-existing-vulnerabilities-in-code.md similarity index 90% rename from content/copilot/copilot-chat-cookbook/security-analysis/finding-existing-vulnerabilities-in-code.md rename to content/copilot/tutorials/copilot-chat-cookbook/security-analysis/finding-existing-vulnerabilities-in-code.md index 85070e4b6595..b60f68a53d5f 100644 --- a/content/copilot/copilot-chat-cookbook/security-analysis/finding-existing-vulnerabilities-in-code.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/security-analysis/finding-existing-vulnerabilities-in-code.md @@ -1,13 +1,14 @@ --- -title: 'Finding existing vulnerabilities in code' +title: Finding existing vulnerabilities in code shortTitle: Find vulnerabilities -intro: 'Copilot Chat can help find common vulnerabilities in your code and suggest fixes.' +intro: Copilot Chat can help find common vulnerabilities in your code and suggest fixes. redirect_from: - /copilot/example-prompts-for-github-copilot-chat/security-analysis/finding-existing-vulnerabilities-in-code + - /copilot/copilot-chat-cookbook/security-analysis/finding-existing-vulnerabilities-in-code versions: feature: copilot category: - - 'Security analysis' + - Security analysis complexity: - Intermediate octicon: code diff --git a/content/copilot/copilot-chat-cookbook/security-analysis/index.md b/content/copilot/tutorials/copilot-chat-cookbook/security-analysis/index.md similarity index 86% rename from content/copilot/copilot-chat-cookbook/security-analysis/index.md rename to content/copilot/tutorials/copilot-chat-cookbook/security-analysis/index.md index ccd0245e3324..1bf07a03e98e 100644 --- a/content/copilot/copilot-chat-cookbook/security-analysis/index.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/security-analysis/index.md @@ -3,6 +3,7 @@ title: Security analysis intro: 'Discover ways that you can use {% data variables.product.prodname_copilot %} to improve the security of your code.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/security-analysis + - /copilot/copilot-chat-cookbook/security-analysis versions: feature: copilot topics: @@ -10,3 +11,4 @@ topics: children: - /finding-existing-vulnerabilities-in-code --- + diff --git a/content/copilot/copilot-chat-cookbook/testing-code/create-end-to-end-tests-for-a-webpage.md b/content/copilot/tutorials/copilot-chat-cookbook/testing-code/create-end-to-end-tests-for-a-webpage.md similarity index 96% rename from content/copilot/copilot-chat-cookbook/testing-code/create-end-to-end-tests-for-a-webpage.md rename to content/copilot/tutorials/copilot-chat-cookbook/testing-code/create-end-to-end-tests-for-a-webpage.md index 471362ee6d3a..718289d55561 100644 --- a/content/copilot/copilot-chat-cookbook/testing-code/create-end-to-end-tests-for-a-webpage.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/testing-code/create-end-to-end-tests-for-a-webpage.md @@ -1,13 +1,14 @@ --- -title: 'Create end-to-end tests for a webpage' +title: Create end-to-end tests for a webpage shortTitle: Create end-to-end tests intro: '{% data variables.copilot.copilot_chat_short %} can help with generating end-to-end tests.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/testing-code/create-end-to-end-tests-for-a-webpage + - /copilot/copilot-chat-cookbook/testing-code/create-end-to-end-tests-for-a-webpage versions: feature: copilot category: - - 'Testing code' + - Testing code complexity: - Advanced octicon: beaker diff --git a/content/copilot/copilot-chat-cookbook/testing-code/create-mock-objects-to-abstract-layers.md b/content/copilot/tutorials/copilot-chat-cookbook/testing-code/create-mock-objects-to-abstract-layers.md similarity index 95% rename from content/copilot/copilot-chat-cookbook/testing-code/create-mock-objects-to-abstract-layers.md rename to content/copilot/tutorials/copilot-chat-cookbook/testing-code/create-mock-objects-to-abstract-layers.md index 38ceac6b4a0c..e2e9c0a28e18 100644 --- a/content/copilot/copilot-chat-cookbook/testing-code/create-mock-objects-to-abstract-layers.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/testing-code/create-mock-objects-to-abstract-layers.md @@ -1,13 +1,14 @@ --- -title: 'Create mock objects to abstract layers' +title: Create mock objects to abstract layers shortTitle: Create mock objects intro: '{% data variables.copilot.copilot_chat_short %} can help with creating mock objects that you can use for unit tests.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/testing-code/create-mock-objects-to-abstract-layers + - /copilot/copilot-chat-cookbook/testing-code/create-mock-objects-to-abstract-layers versions: feature: copilot category: - - 'Testing code' + - Testing code complexity: - Intermediate octicon: beaker diff --git a/content/copilot/copilot-chat-cookbook/testing-code/generate-unit-tests.md b/content/copilot/tutorials/copilot-chat-cookbook/testing-code/generate-unit-tests.md similarity index 96% rename from content/copilot/copilot-chat-cookbook/testing-code/generate-unit-tests.md rename to content/copilot/tutorials/copilot-chat-cookbook/testing-code/generate-unit-tests.md index 4d7da74939c5..490f40d437a7 100644 --- a/content/copilot/copilot-chat-cookbook/testing-code/generate-unit-tests.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/testing-code/generate-unit-tests.md @@ -1,13 +1,14 @@ --- -title: 'Generate unit tests' +title: Generate unit tests shortTitle: Generate unit tests intro: '{% data variables.copilot.copilot_chat_short %} can help with generating unit tests for a function.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/testing-code/generate-unit-tests + - /copilot/copilot-chat-cookbook/testing-code/generate-unit-tests versions: feature: copilot category: - - 'Testing code' + - Testing code complexity: - Intermediate octicon: beaker diff --git a/content/copilot/copilot-chat-cookbook/testing-code/index.md b/content/copilot/tutorials/copilot-chat-cookbook/testing-code/index.md similarity index 88% rename from content/copilot/copilot-chat-cookbook/testing-code/index.md rename to content/copilot/tutorials/copilot-chat-cookbook/testing-code/index.md index 2fcd8a223d6b..95f9c61b81f7 100644 --- a/content/copilot/copilot-chat-cookbook/testing-code/index.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/testing-code/index.md @@ -3,6 +3,7 @@ title: Testing code intro: 'Discover ways that you can use {% data variables.product.prodname_copilot %} to test your code.' redirect_from: - /copilot/example-prompts-for-github-copilot-chat/testing-code + - /copilot/copilot-chat-cookbook/testing-code versions: feature: copilot topics: @@ -12,3 +13,4 @@ children: - /create-mock-objects-to-abstract-layers - /create-end-to-end-tests-for-a-webpage --- + diff --git a/content/copilot/tutorials/index.md b/content/copilot/tutorials/index.md new file mode 100644 index 000000000000..7205c98edc36 --- /dev/null +++ b/content/copilot/tutorials/index.md @@ -0,0 +1,24 @@ +--- +title: 'Tutorials for {% data variables.product.prodname_copilot %}' +shortTitle: Tutorials +intro: 'Build skills and knowledge about {% data variables.product.prodname_copilot %} through examples and hands-on activities.' +versions: + feature: copilot +topics: + - Copilot +children: + - /copilot-chat-cookbook + - /choosing-the-right-ai-tool-for-your-task + - /comparing-ai-models-using-different-tasks + - /speeding-up-development-work-with-copilot-spaces + - /using-copilot-to-explore-a-codebase + - /writing-tests-with-github-copilot + - /refactoring-code-with-github-copilot + - /modernizing-legacy-code-with-github-copilot + - /using-copilot-to-migrate-a-project + - /upgrading-java-projects-with-github-copilot + - /rolling-out-github-copilot-at-scale +redirect_from: + - /copilot/using-github-copilot/guides-on-using-github-copilot +--- + diff --git a/content/copilot/using-github-copilot/guides-on-using-github-copilot/modernizing-legacy-code-with-github-copilot.md b/content/copilot/tutorials/modernizing-legacy-code-with-github-copilot.md similarity index 99% rename from content/copilot/using-github-copilot/guides-on-using-github-copilot/modernizing-legacy-code-with-github-copilot.md rename to content/copilot/tutorials/modernizing-legacy-code-with-github-copilot.md index c3d6ab21613d..fb3c6a6f2d0c 100644 --- a/content/copilot/using-github-copilot/guides-on-using-github-copilot/modernizing-legacy-code-with-github-copilot.md +++ b/content/copilot/tutorials/modernizing-legacy-code-with-github-copilot.md @@ -6,6 +6,8 @@ versions: feature: copilot topics: - Copilot +redirect_from: + - /copilot/using-github-copilot/guides-on-using-github-copilot/modernizing-legacy-code-with-github-copilot --- > [!NOTE] The responses shown in this article are examples. {% data variables.copilot.copilot_chat_short %} responses are non-deterministic, so you may get different responses from the ones shown here. diff --git a/content/copilot/using-github-copilot/guides-on-using-github-copilot/refactoring-code-with-github-copilot.md b/content/copilot/tutorials/refactoring-code-with-github-copilot.md similarity index 99% rename from content/copilot/using-github-copilot/guides-on-using-github-copilot/refactoring-code-with-github-copilot.md rename to content/copilot/tutorials/refactoring-code-with-github-copilot.md index f79a4025f398..d449e6200ff3 100644 --- a/content/copilot/using-github-copilot/guides-on-using-github-copilot/refactoring-code-with-github-copilot.md +++ b/content/copilot/tutorials/refactoring-code-with-github-copilot.md @@ -7,6 +7,7 @@ versions: feature: copilot redirect_from: - /copilot/using-github-copilot/example-use-cases/refactoring-code-with-github-copilot + - /copilot/using-github-copilot/guides-on-using-github-copilot/refactoring-code-with-github-copilot shortTitle: Refactor code --- diff --git a/content/copilot/rolling-out-github-copilot-at-scale/assigning-licenses/index.md b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/assigning-licenses/index.md similarity index 50% rename from content/copilot/rolling-out-github-copilot-at-scale/assigning-licenses/index.md rename to content/copilot/tutorials/rolling-out-github-copilot-at-scale/assigning-licenses/index.md index cdf2beb66220..cbeab12e50a2 100644 --- a/content/copilot/rolling-out-github-copilot-at-scale/assigning-licenses/index.md +++ b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/assigning-licenses/index.md @@ -7,8 +7,10 @@ versions: topics: - Copilot children: -- /setting-up-a-self-serve-process-for-github-copilot-licenses -- /reminding-inactive-users -- /managing-your-companys-spending-on-github-copilot + - /setting-up-a-self-serve-process-for-github-copilot-licenses + - /reminding-inactive-users + - /managing-your-companys-spending-on-github-copilot +redirect_from: + - /copilot/rolling-out-github-copilot-at-scale/assigning-licenses --- diff --git a/content/copilot/rolling-out-github-copilot-at-scale/assigning-licenses/managing-your-companys-spending-on-github-copilot.md b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/assigning-licenses/managing-your-companys-spending-on-github-copilot.md similarity index 98% rename from content/copilot/rolling-out-github-copilot-at-scale/assigning-licenses/managing-your-companys-spending-on-github-copilot.md rename to content/copilot/tutorials/rolling-out-github-copilot-at-scale/assigning-licenses/managing-your-companys-spending-on-github-copilot.md index 345bfce432a4..71e079b2e243 100644 --- a/content/copilot/rolling-out-github-copilot-at-scale/assigning-licenses/managing-your-companys-spending-on-github-copilot.md +++ b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/assigning-licenses/managing-your-companys-spending-on-github-copilot.md @@ -10,6 +10,7 @@ permissions: Enterprise owners and billing managers product: '{% data variables.copilot.copilot_for_business %} or {% data variables.copilot.copilot_enterprise %}' redirect_from: - /copilot/rolling-out-github-copilot-at-scale/managing-your-companys-spending-on-github-copilot + - /copilot/rolling-out-github-copilot-at-scale/assigning-licenses/managing-your-companys-spending-on-github-copilot --- When you're adopting {% data variables.product.prodname_copilot %} in an enterprise, you will want to set budgets and track spending to ensure your rollout is sustainable. {% data variables.product.github %} offers billing tools to help you visualize your spending patterns, receive alerts when you reach budget thresholds, and optimize your license usage. diff --git a/content/copilot/rolling-out-github-copilot-at-scale/assigning-licenses/reminding-inactive-users.md b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/assigning-licenses/reminding-inactive-users.md similarity index 99% rename from content/copilot/rolling-out-github-copilot-at-scale/assigning-licenses/reminding-inactive-users.md rename to content/copilot/tutorials/rolling-out-github-copilot-at-scale/assigning-licenses/reminding-inactive-users.md index 3513c408b8e0..6199dee5b060 100644 --- a/content/copilot/rolling-out-github-copilot-at-scale/assigning-licenses/reminding-inactive-users.md +++ b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/assigning-licenses/reminding-inactive-users.md @@ -12,6 +12,7 @@ allowTitleToDifferFromFilename: true layout: inline redirect_from: - /copilot/rolling-out-github-copilot-at-scale/reminding-inactive-users + - /copilot/rolling-out-github-copilot-at-scale/assigning-licenses/reminding-inactive-users --- When you're rolling out {% data variables.product.prodname_copilot %} in a business, it's important to keep track of which users are using their {% data variables.product.prodname_copilot_short %} license, so you can respond effectively by reassigning unused licenses or helping people to get started with {% data variables.product.prodname_copilot_short %}. diff --git a/content/copilot/rolling-out-github-copilot-at-scale/assigning-licenses/setting-up-a-self-serve-process-for-github-copilot-licenses.md b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/assigning-licenses/setting-up-a-self-serve-process-for-github-copilot-licenses.md similarity index 97% rename from content/copilot/rolling-out-github-copilot-at-scale/assigning-licenses/setting-up-a-self-serve-process-for-github-copilot-licenses.md rename to content/copilot/tutorials/rolling-out-github-copilot-at-scale/assigning-licenses/setting-up-a-self-serve-process-for-github-copilot-licenses.md index d4333b91367e..d12ae1062006 100644 --- a/content/copilot/rolling-out-github-copilot-at-scale/assigning-licenses/setting-up-a-self-serve-process-for-github-copilot-licenses.md +++ b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/assigning-licenses/setting-up-a-self-serve-process-for-github-copilot-licenses.md @@ -8,6 +8,7 @@ topics: - Copilot redirect_from: - /copilot/rolling-out-github-copilot-at-scale/setting-up-a-self-serve-process-for-github-copilot-licenses + - /copilot/rolling-out-github-copilot-at-scale/assigning-licenses/setting-up-a-self-serve-process-for-github-copilot-licenses --- When you've enabled {% data variables.product.prodname_copilot %} in an organization or enterprise, you can set up a self-serve workflow to allow users to request licenses. This allows you to allocate licenses to people who want them, and means people can get started with {% data variables.product.prodname_copilot_short %} quickly. diff --git a/content/copilot/rolling-out-github-copilot-at-scale/enabling-developers/driving-copilot-adoption-in-your-company.md b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/enabling-developers/driving-copilot-adoption-in-your-company.md similarity index 98% rename from content/copilot/rolling-out-github-copilot-at-scale/enabling-developers/driving-copilot-adoption-in-your-company.md rename to content/copilot/tutorials/rolling-out-github-copilot-at-scale/enabling-developers/driving-copilot-adoption-in-your-company.md index 86600e5bb2af..8556ebd7360e 100644 --- a/content/copilot/rolling-out-github-copilot-at-scale/enabling-developers/driving-copilot-adoption-in-your-company.md +++ b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/enabling-developers/driving-copilot-adoption-in-your-company.md @@ -8,6 +8,7 @@ topics: - Copilot redirect_from: - /copilot/rolling-out-github-copilot-at-scale/driving-copilot-adoption-in-your-company + - /copilot/rolling-out-github-copilot-at-scale/enabling-developers/driving-copilot-adoption-in-your-company --- An effective enablement process is essential to drive adoption of {% data variables.product.prodname_copilot_short %} in your organization. This process should be tailored to your organization's needs and goals, and should be designed to help your teams understand how to use {% data variables.product.prodname_copilot_short %} effectively. diff --git a/content/copilot/rolling-out-github-copilot-at-scale/enabling-developers/index.md b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/enabling-developers/index.md similarity index 80% rename from content/copilot/rolling-out-github-copilot-at-scale/enabling-developers/index.md rename to content/copilot/tutorials/rolling-out-github-copilot-at-scale/enabling-developers/index.md index 5dafde249fbf..c0d1002da13d 100644 --- a/content/copilot/rolling-out-github-copilot-at-scale/enabling-developers/index.md +++ b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/enabling-developers/index.md @@ -10,4 +10,7 @@ children: - /driving-copilot-adoption-in-your-company - /integrating-agentic-ai - /using-copilot-coding-agent-in-org +redirect_from: + - /copilot/rolling-out-github-copilot-at-scale/enabling-developers --- + diff --git a/content/copilot/rolling-out-github-copilot-at-scale/enabling-developers/integrating-agentic-ai.md b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/enabling-developers/integrating-agentic-ai.md similarity index 99% rename from content/copilot/rolling-out-github-copilot-at-scale/enabling-developers/integrating-agentic-ai.md rename to content/copilot/tutorials/rolling-out-github-copilot-at-scale/enabling-developers/integrating-agentic-ai.md index cdca5e8ca48f..70c09c04a099 100644 --- a/content/copilot/rolling-out-github-copilot-at-scale/enabling-developers/integrating-agentic-ai.md +++ b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/enabling-developers/integrating-agentic-ai.md @@ -7,6 +7,8 @@ versions: topics: - Copilot allowTitleToDifferFromFilename: true +redirect_from: + - /copilot/rolling-out-github-copilot-at-scale/enabling-developers/integrating-agentic-ai --- ## About AI agents on {% data variables.product.github %} diff --git a/content/copilot/rolling-out-github-copilot-at-scale/enabling-developers/using-copilot-coding-agent-in-org.md b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/enabling-developers/using-copilot-coding-agent-in-org.md similarity index 99% rename from content/copilot/rolling-out-github-copilot-at-scale/enabling-developers/using-copilot-coding-agent-in-org.md rename to content/copilot/tutorials/rolling-out-github-copilot-at-scale/enabling-developers/using-copilot-coding-agent-in-org.md index e5976c4488d1..6c3dfec45c67 100644 --- a/content/copilot/rolling-out-github-copilot-at-scale/enabling-developers/using-copilot-coding-agent-in-org.md +++ b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/enabling-developers/using-copilot-coding-agent-in-org.md @@ -8,6 +8,8 @@ versions: topics: - Copilot product: '{% data reusables.gated-features.copilot-coding-agent %}' +redirect_from: + - /copilot/rolling-out-github-copilot-at-scale/enabling-developers/using-copilot-coding-agent-in-org --- diff --git a/content/copilot/rolling-out-github-copilot-at-scale/index.md b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/index.md similarity index 83% rename from content/copilot/rolling-out-github-copilot-at-scale/index.md rename to content/copilot/tutorials/rolling-out-github-copilot-at-scale/index.md index 534f8a9ac811..fc0a7eb017f0 100644 --- a/content/copilot/rolling-out-github-copilot-at-scale/index.md +++ b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/index.md @@ -11,5 +11,7 @@ children: - /assigning-licenses - /enabling-developers - /measuring-adoption +redirect_from: + - /copilot/rolling-out-github-copilot-at-scale --- diff --git a/content/copilot/rolling-out-github-copilot-at-scale/measuring-adoption/analyzing-usage-over-time-with-the-copilot-metrics-api.md b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/measuring-adoption/analyzing-usage-over-time-with-the-copilot-metrics-api.md similarity index 98% rename from content/copilot/rolling-out-github-copilot-at-scale/measuring-adoption/analyzing-usage-over-time-with-the-copilot-metrics-api.md rename to content/copilot/tutorials/rolling-out-github-copilot-at-scale/measuring-adoption/analyzing-usage-over-time-with-the-copilot-metrics-api.md index 5b1994e6ca4f..04a35a3cb57e 100644 --- a/content/copilot/rolling-out-github-copilot-at-scale/measuring-adoption/analyzing-usage-over-time-with-the-copilot-metrics-api.md +++ b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/measuring-adoption/analyzing-usage-over-time-with-the-copilot-metrics-api.md @@ -8,6 +8,7 @@ product: '{% data variables.copilot.copilot_for_business %} or {% data variables redirect_from: - /copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-activity-related-to-github-copilot-in-your-organization/analyzing-usage-over-time-with-the-copilot-metrics-api - /copilot/rolling-out-github-copilot-at-scale/analyzing-usage-over-time-with-the-copilot-metrics-api + - /copilot/rolling-out-github-copilot-at-scale/measuring-adoption/analyzing-usage-over-time-with-the-copilot-metrics-api permissions: 'Organization owners, enterprise owners, and billing managers' layout: inline topics: diff --git a/content/copilot/rolling-out-github-copilot-at-scale/measuring-adoption/index.md b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/measuring-adoption/index.md similarity index 78% rename from content/copilot/rolling-out-github-copilot-at-scale/measuring-adoption/index.md rename to content/copilot/tutorials/rolling-out-github-copilot-at-scale/measuring-adoption/index.md index 38bcbc83ac86..b1d0dadf0740 100644 --- a/content/copilot/rolling-out-github-copilot-at-scale/measuring-adoption/index.md +++ b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/measuring-adoption/index.md @@ -8,5 +8,7 @@ topics: - Copilot children: - /analyzing-usage-over-time-with-the-copilot-metrics-api +redirect_from: + - /copilot/rolling-out-github-copilot-at-scale/measuring-adoption --- diff --git a/content/copilot/rolling-out-github-copilot-at-scale/planning-your-rollout/choosing-your-enterprises-plan-for-github-copilot.md b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/planning-your-rollout/choosing-your-enterprises-plan-for-github-copilot.md similarity index 98% rename from content/copilot/rolling-out-github-copilot-at-scale/planning-your-rollout/choosing-your-enterprises-plan-for-github-copilot.md rename to content/copilot/tutorials/rolling-out-github-copilot-at-scale/planning-your-rollout/choosing-your-enterprises-plan-for-github-copilot.md index 25c693186da3..30565e42d330 100644 --- a/content/copilot/rolling-out-github-copilot-at-scale/planning-your-rollout/choosing-your-enterprises-plan-for-github-copilot.md +++ b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/planning-your-rollout/choosing-your-enterprises-plan-for-github-copilot.md @@ -9,6 +9,7 @@ topics: permissions: Enterprise owners and billing managers redirect_from: - /copilot/rolling-out-github-copilot-at-scale/choosing-your-enterprises-plan-for-github-copilot + - /copilot/rolling-out-github-copilot-at-scale/planning-your-rollout/choosing-your-enterprises-plan-for-github-copilot --- When you adopt {% data variables.product.prodname_copilot %} in a company, you will sign up to a {% data variables.product.prodname_copilot_short %} plan designed for businesses. These plans allow you to: diff --git a/content/copilot/rolling-out-github-copilot-at-scale/planning-your-rollout/index.md b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/planning-your-rollout/index.md similarity index 74% rename from content/copilot/rolling-out-github-copilot-at-scale/planning-your-rollout/index.md rename to content/copilot/tutorials/rolling-out-github-copilot-at-scale/planning-your-rollout/index.md index c19e9423cf2c..41d619e2ee7e 100644 --- a/content/copilot/rolling-out-github-copilot-at-scale/planning-your-rollout/index.md +++ b/content/copilot/tutorials/rolling-out-github-copilot-at-scale/planning-your-rollout/index.md @@ -8,5 +8,7 @@ topics: - Copilot children: - /choosing-your-enterprises-plan-for-github-copilot +redirect_from: + - /copilot/rolling-out-github-copilot-at-scale/planning-your-rollout --- diff --git a/content/copilot/using-github-copilot/copilot-spaces/speeding-up-development-work-with-copilot-spaces.md b/content/copilot/tutorials/speeding-up-development-work-with-copilot-spaces.md similarity index 97% rename from content/copilot/using-github-copilot/copilot-spaces/speeding-up-development-work-with-copilot-spaces.md rename to content/copilot/tutorials/speeding-up-development-work-with-copilot-spaces.md index 8b881e197c95..fdafcf40ca72 100644 --- a/content/copilot/using-github-copilot/copilot-spaces/speeding-up-development-work-with-copilot-spaces.md +++ b/content/copilot/tutorials/speeding-up-development-work-with-copilot-spaces.md @@ -8,6 +8,8 @@ versions: type: how_to topics: - Copilot +redirect_from: + - /copilot/using-github-copilot/copilot-spaces/speeding-up-development-work-with-copilot-spaces --- {% data reusables.copilot.copilot-spaces.preview-note %} diff --git a/content/copilot/using-github-copilot/guides-on-using-github-copilot/upgrading-java-projects-with-github-copilot.md b/content/copilot/tutorials/upgrading-java-projects-with-github-copilot.md similarity index 97% rename from content/copilot/using-github-copilot/guides-on-using-github-copilot/upgrading-java-projects-with-github-copilot.md rename to content/copilot/tutorials/upgrading-java-projects-with-github-copilot.md index ed9aadd21d7c..3e9c8e2207aa 100644 --- a/content/copilot/using-github-copilot/guides-on-using-github-copilot/upgrading-java-projects-with-github-copilot.md +++ b/content/copilot/tutorials/upgrading-java-projects-with-github-copilot.md @@ -6,6 +6,8 @@ versions: feature: copilot topics: - Copilot +redirect_from: + - /copilot/using-github-copilot/guides-on-using-github-copilot/upgrading-java-projects-with-github-copilot --- > [!NOTE] diff --git a/content/copilot/using-github-copilot/guides-on-using-github-copilot/using-copilot-to-explore-a-codebase.md b/content/copilot/tutorials/using-copilot-to-explore-a-codebase.md similarity index 98% rename from content/copilot/using-github-copilot/guides-on-using-github-copilot/using-copilot-to-explore-a-codebase.md rename to content/copilot/tutorials/using-copilot-to-explore-a-codebase.md index ac524c3fae2a..a71d97e78efa 100644 --- a/content/copilot/using-github-copilot/guides-on-using-github-copilot/using-copilot-to-explore-a-codebase.md +++ b/content/copilot/tutorials/using-copilot-to-explore-a-codebase.md @@ -6,6 +6,8 @@ topics: - Copilot versions: feature: copilot +redirect_from: + - /copilot/using-github-copilot/guides-on-using-github-copilot/using-copilot-to-explore-a-codebase --- ## Introduction diff --git a/content/copilot/using-github-copilot/guides-on-using-github-copilot/using-copilot-to-migrate-a-project.md b/content/copilot/tutorials/using-copilot-to-migrate-a-project.md similarity index 99% rename from content/copilot/using-github-copilot/guides-on-using-github-copilot/using-copilot-to-migrate-a-project.md rename to content/copilot/tutorials/using-copilot-to-migrate-a-project.md index 63e5576c7f0e..8fb2696d4212 100644 --- a/content/copilot/using-github-copilot/guides-on-using-github-copilot/using-copilot-to-migrate-a-project.md +++ b/content/copilot/tutorials/using-copilot-to-migrate-a-project.md @@ -7,6 +7,8 @@ topics: versions: feature: copilot shortTitle: Migrate a project +redirect_from: + - /copilot/using-github-copilot/guides-on-using-github-copilot/using-copilot-to-migrate-a-project --- ## Introduction diff --git a/content/copilot/using-github-copilot/guides-on-using-github-copilot/writing-tests-with-github-copilot.md b/content/copilot/tutorials/writing-tests-with-github-copilot.md similarity index 99% rename from content/copilot/using-github-copilot/guides-on-using-github-copilot/writing-tests-with-github-copilot.md rename to content/copilot/tutorials/writing-tests-with-github-copilot.md index 24d6820fd89d..7a573772e13f 100644 --- a/content/copilot/using-github-copilot/guides-on-using-github-copilot/writing-tests-with-github-copilot.md +++ b/content/copilot/tutorials/writing-tests-with-github-copilot.md @@ -7,6 +7,7 @@ versions: feature: copilot redirect_from: - /copilot/using-github-copilot/example-use-cases/writing-tests-with-github-copilot + - /copilot/using-github-copilot/guides-on-using-github-copilot/writing-tests-with-github-copilot shortTitle: Write tests --- diff --git a/content/copilot/using-github-copilot/ai-models/index.md b/content/copilot/using-github-copilot/ai-models/index.md index 8773c1d217d0..60f7397c7ee0 100644 --- a/content/copilot/using-github-copilot/ai-models/index.md +++ b/content/copilot/using-github-copilot/ai-models/index.md @@ -1,16 +1,14 @@ --- title: AI models for Copilot shortTitle: AI models -intro: "Learn how to use alternative large language models for {% data variables.product.prodname_copilot %}." +intro: 'Learn how to use alternative large language models for {% data variables.product.prodname_copilot %}.' versions: feature: copilot topics: - Copilot children: - - /supported-ai-models-in-copilot - - /choosing-the-right-ai-model-for-your-task - - /comparing-ai-models-using-different-tasks - /configuring-access-to-ai-models-in-copilot - /changing-the-ai-model-for-copilot-chat - /changing-the-ai-model-for-copilot-code-completion --- + diff --git a/content/copilot/using-github-copilot/coding-agent/best-practices-for-using-copilot-to-work-on-tasks.md b/content/copilot/using-github-copilot/coding-agent/best-practices-for-using-copilot-to-work-on-tasks.md index e0193d48ceea..93db42cc6a3a 100644 --- a/content/copilot/using-github-copilot/coding-agent/best-practices-for-using-copilot-to-work-on-tasks.md +++ b/content/copilot/using-github-copilot/coding-agent/best-practices-for-using-copilot-to-work-on-tasks.md @@ -105,7 +105,7 @@ This is a Go based repository with a Ruby client for certain API endpoints. It i ## Using the Model Context Protocol (MCP) -You can extend the capabilities of {% data variables.copilot.copilot_coding_agent %} by using MCP. This allows {% data variables.copilot.copilot_coding_agent %} use tools provided by local MCP servers. For more information, see [AUTOTITLE](/copilot/using-github-copilot/coding-agent/extending-copilot-coding-agent-with-mcp). +You can extend the capabilities of {% data variables.copilot.copilot_coding_agent %} by using MCP. This allows {% data variables.copilot.copilot_coding_agent %} to use tools provided by local MCP servers. The {% data variables.product.github %} MCP server is enabled by default. For more information, see [AUTOTITLE](/copilot/using-github-copilot/coding-agent/extending-copilot-coding-agent-with-mcp). ## Pre-installing dependencies in {% data variables.product.prodname_copilot %}'s environment diff --git a/content/copilot/using-github-copilot/coding-agent/extending-copilot-coding-agent-with-mcp.md b/content/copilot/using-github-copilot/coding-agent/extending-copilot-coding-agent-with-mcp.md index f2a1d8538d23..4aeeeddee2e2 100644 --- a/content/copilot/using-github-copilot/coding-agent/extending-copilot-coding-agent-with-mcp.md +++ b/content/copilot/using-github-copilot/coding-agent/extending-copilot-coding-agent-with-mcp.md @@ -21,7 +21,7 @@ redirect_from: {% data reusables.copilot.coding-agent.mcp-brief-intro %} -The agent can use tools provided by local MCP servers. For example, the [Playwright MCP server](https://github.com/microsoft/playwright-mcp) provides tools to interact with web pages and pull in additional context when executing on the requested task. +The agent can use tools provided by local MCP servers. For example, the [Playwright MCP server](https://github.com/microsoft/playwright-mcp) provides tools to interact with web pages and pull in additional context when executing on the requested task. Some MCP servers are configured by default to provide the best experience for getting started. For more information on MCP, see [the official MCP documentation](https://modelcontextprotocol.io/introduction). For information on some of the currently available MCP servers, see [the MCP servers repository](https://github.com/modelcontextprotocol/servers/tree/main). @@ -29,17 +29,23 @@ For more information on MCP, see [the official MCP documentation](https://modelc > * {% data variables.copilot.copilot_coding_agent %} only supports tools provided by MCP servers. It does not support resources or prompts. > * {% data variables.copilot.copilot_coding_agent %} currently only supports local MCP servers. To learn more about transport types, see the [official MCP documentation](https://modelcontextprotocol.io/docs/concepts/transports). -## Staying safe with MCP servers +## Default MCP servers -Once you've configured an MCP server, {% data variables.product.prodname_copilot_short %} will be able to use the tools provided by the server autonomously, and will not ask for your approval before using them. +The following MCP servers are configured automatically for {% data variables.copilot.copilot_coding_agent %}: -We recommend that you restrict your servers to read-only tools. You can use the `tools` configuration option to only expose known, safe tools to {% data variables.product.prodname_copilot_short %}. +* **{% data variables.product.github %}**: The {% data variables.product.github %} MCP server gives {% data variables.product.prodname_copilot_short %} access to {% data variables.product.github %} data like issues and pull requests. To learn more, see [AUTOTITLE](/copilot/customizing-copilot/using-model-context-protocol/using-the-github-mcp-server). + * By default, the {% data variables.product.github %} MCP server connects to {% data variables.product.github %} using a specially scoped token that only has read-only access to the current repository. You can customize it to use a different token with broader access. For more details, see [Customizing the built-in {% data variables.product.github %} MCP server](#customizing-the-built-in-github-mcp-server) below. -## About setting up MCP servers in a repository +## Setting up MCP servers in a repository + +> [!WARNING] +> Once you've configured an MCP server, {% data variables.product.prodname_copilot_short %} will be able to use the tools provided by the server autonomously, and will not ask for your approval before using them. As a repository administrator, you can configure MCP servers for use within your repository. This is done via a JSON-formatted configuration that specifies the details of the MCP servers you want to use. You enter the JSON configuration directly into the settings for the repository on {% data variables.product.prodname_dotcom_the_website %}. -Once MCP servers are configured for use within a repository, the tools specified in the configuration will be available to {% data variables.copilot.copilot_coding_agent %} on each assigned task. +Once MCP servers are configured for use within a repository, the tools specified in the configuration will be available to {% data variables.copilot.copilot_coding_agent %} during each assigned task. + +{% data variables.product.prodname_copilot_short %} will use available tools autonomously, and will not ask for approval before use. ### Creating your JSON MCP configuration @@ -67,15 +73,15 @@ The configuration object can contain the following keys: * `command` (`string`): The command to run to start the MCP server. * `args` (`string[]`): The arguments to pass to the `command`. -* `tools` (`string[]`): The tools from the MCP server to enable. You may be able to find a list of tools in the server's documentation, or in its code. We recommend that you allowlist specific tools, but you can also enable all tools by including `*` in the array. +* `tools` (`string[]`): The tools from the MCP server to enable. You may be able to find a list of tools in the server's documentation, or in its code. We strongly recommend that you allowlist specific read-only tools, since the agent will be able to use these tools autonomously and will not ask you for approval first. You can also enable all tools by including `*` in the array. * `type` (`string`): Optional field. {% data variables.copilot.copilot_coding_agent %} only accepts `"local"`. * `env` (`object`): 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 {% data variables.product.prodname_actions %} secret you have configured, beginning with `COPILOT_MCP_`. * A string value. -## Example configurations +### Example configurations -### Example: Playwright +#### Example: Playwright The [Playwright MCP server](https://github.com/microsoft/playwright-mcp) provides tools which allow {% data variables.product.prodname_copilot_short %} to browse the internet. @@ -91,7 +97,7 @@ The [Playwright MCP server](https://github.com/microsoft/playwright-mcp) provide } ``` -### Example: Sentry +#### Example: Sentry The [Sentry MCP server](https://github.com/getsentry/sentry-mcp) gives {% data variables.product.prodname_copilot_short %} authenticated access to exceptions recorded in [Sentry](https://sentry.io). @@ -117,7 +123,7 @@ The [Sentry MCP server](https://github.com/getsentry/sentry-mcp) gives {% data v } ``` -### Example: Notion +#### Example: Notion The [Notion MCP server](https://github.com/makenotion/notion-mcp-server) gives {% data variables.product.prodname_copilot_short %} authenticated access to notes and other content from [Notion](https://notion.so). @@ -148,7 +154,7 @@ The [Notion MCP server](https://github.com/makenotion/notion-mcp-server) gives { } ``` -### Example: Azure +#### Example: Azure The [Azure MCP server](https://github.com/Azure/azure-mcp) creates a seamless connection between {% data variables.product.prodname_copilot_short %} and key Azure services such as Azure Cosmos DB and the Azure Storage platform. @@ -202,7 +208,7 @@ To use the Azure MCP with {% data variables.copilot.copilot_coding_agent %}, you } ``` -## Reusing your MCP configuration from {% data variables.product.prodname_vscode %} +### Reusing your MCP configuration from {% data variables.product.prodname_vscode %} If you have already configured MCP servers in {% data variables.product.prodname_vscode_shortname %}, you can leverage a similar configuration for {% data variables.copilot.copilot_coding_agent %}. @@ -217,7 +223,7 @@ To adapt the configuration for {% data variables.copilot.copilot_coding_agent %} For more information on MCP in {% data variables.product.prodname_vscode_shortname %}, see the [{% data variables.product.prodname_vscode_shortname %} docs](https://code.visualstudio.com/docs/copilot/chat/mcp-servers). -## Adding your configuration to your repository +### Adding your configuration to your repository Repository administrators can configure MCP servers by following these steps: @@ -245,7 +251,7 @@ You must be a repository administrator to configure a {% data variables.product. 1. Under "Environment secrets", click **Add environment secret**. 1. Give the secret a name beginning `COPILOT_MCP_`, add the secret value, then click **Add secret**. -## Validating your MCP configuration +### Validating your MCP configuration Once you've set up your MCP configuration, you should test it to make sure it is set up correctly. @@ -262,9 +268,7 @@ If your MCP servers require any dependencies that are not installed on the {% da ## Customizing the built-in {% data variables.product.github %} MCP server -The {% data variables.product.github %} MCP server is enabled by default, giving {% data variables.product.prodname_copilot_short %} access to {% data variables.product.github %} data like issues and pull requests. - -By default, the MCP server connects to {% data variables.product.github %} with a specially scoped token that only has read-only access to the current repository. +The {% data variables.product.github %} MCP server is enabled by default and connects to {% data variables.product.github %} with a specially scoped token that only has read-only access to the current repository. If you want to allow {% data variables.product.prodname_copilot_short %} to access data outside the current repository, you can give it a {% data variables.product.pat_generic %} with wider access. diff --git a/content/copilot/using-github-copilot/coding-agent/index.md b/content/copilot/using-github-copilot/coding-agent/index.md index 0676a4d73f6b..9e14545e584a 100644 --- a/content/copilot/using-github-copilot/coding-agent/index.md +++ b/content/copilot/using-github-copilot/coding-agent/index.md @@ -6,7 +6,6 @@ versions: topics: - Copilot children: - - /about-assigning-tasks-to-copilot - /best-practices-for-using-copilot-to-work-on-tasks - /enabling-copilot-coding-agent - /using-copilot-to-work-on-an-issue @@ -20,3 +19,4 @@ redirect_from: - /copilot/using-github-copilot/using-copilot-coding-agent-to-work-on-issues - /early-access/copilot/coding-agent --- + diff --git a/content/copilot/using-github-copilot/copilot-chat/index.md b/content/copilot/using-github-copilot/copilot-chat/index.md index a26c8415bd79..200cf6daff5d 100644 --- a/content/copilot/using-github-copilot/copilot-chat/index.md +++ b/content/copilot/using-github-copilot/copilot-chat/index.md @@ -11,8 +11,5 @@ children: - /asking-github-copilot-questions-in-your-ide - /asking-github-copilot-questions-in-github - /asking-github-copilot-questions-in-github-mobile - - /indexing-repositories-for-copilot-chat - - /prompt-engineering-for-copilot-chat - - /github-copilot-chat-cheat-sheet --- diff --git a/content/copilot/using-github-copilot/copilot-spaces/index.md b/content/copilot/using-github-copilot/copilot-spaces/index.md index 7c8d726f6307..f822637359ea 100644 --- a/content/copilot/using-github-copilot/copilot-spaces/index.md +++ b/content/copilot/using-github-copilot/copilot-spaces/index.md @@ -1,13 +1,12 @@ --- title: Copilot Spaces -intro: "Organize and centralize relevant content into {% data variables.copilot.copilot_spaces_short %} that ground {% data variables.product.prodname_copilot_short %}’s responses in the right context for a specific task." +intro: 'Organize and centralize relevant content into {% data variables.copilot.copilot_spaces_short %} that ground {% data variables.product.prodname_copilot_short %}’s responses in the right context for a specific task.' versions: feature: copilot topics: - Copilot children: - - /about-organizing-and-sharing-context-with-copilot-spaces - /creating-and-using-copilot-spaces - - /speeding-up-development-work-with-copilot-spaces - /collaborating-with-your-team-using-copilot-spaces --- + diff --git a/content/copilot/using-github-copilot/guides-on-using-github-copilot/index.md b/content/copilot/using-github-copilot/guides-on-using-github-copilot/index.md deleted file mode 100644 index bd4d228fc640..000000000000 --- a/content/copilot/using-github-copilot/guides-on-using-github-copilot/index.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Guides on using GitHub Copilot -shortTitle: Guides -intro: 'Learn how to optimize your use of {% data variables.product.prodname_copilot %} for various use cases.' -versions: - feature: copilot -topics: - - Copilot -redirect_from: - - /copilot/using-github-copilot/example-use-cases -children: - - /choosing-the-right-ai-tool-for-your-task - - /using-copilot-to-explore-a-codebase - - /refactoring-code-with-github-copilot - - /using-copilot-to-migrate-a-project - - /writing-tests-with-github-copilot - - /modernizing-legacy-code-with-github-copilot - - /upgrading-java-projects-with-github-copilot ---- diff --git a/content/copilot/using-github-copilot/index.md b/content/copilot/using-github-copilot/index.md index d2dcecc2e602..dc89ef943309 100644 --- a/content/copilot/using-github-copilot/index.md +++ b/content/copilot/using-github-copilot/index.md @@ -20,7 +20,6 @@ children: - /finding-public-code-that-matches-github-copilot-suggestions - /creating-a-pull-request-summary-with-github-copilot - /using-github-copilot-to-create-issues - - /guides-on-using-github-copilot redirect_from: - /copilot/github-copilot-chat - /copilot/github-copilot-in-the-cli diff --git a/content/index.md b/content/index.md index dc84bc28b192..54c915288405 100644 --- a/content/index.md +++ b/content/index.md @@ -107,9 +107,9 @@ childGroups: children: - copilot - copilot/using-github-copilot/getting-code-suggestions-in-your-ide-with-github-copilot - - copilot/using-github-copilot/copilot-chat/prompt-engineering-for-copilot-chat + - copilot/concepts/prompt-engineering-for-copilot-chat - copilot/using-github-copilot/copilot-chat/asking-github-copilot-questions-in-github - - copilot/copilot-chat-cookbook + - copilot/tutorials/copilot-chat-cookbook - copilot/using-github-copilot/coding-agent - name: CI/CD and DevOps octicon: GearIcon diff --git a/content/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization.md b/content/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization.md index 9adeed2f6cab..e7d997675541 100644 --- a/content/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization.md +++ b/content/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization.md @@ -124,86 +124,86 @@ Some of the features listed below are limited to organizations using {% data var | Organization permission | Owners | Members | Moderators | Billing managers | Security managers | |:------------------------|:------:|:-------:|:----------:|:----------------:|:-----------------:| -| Create repositories (see [AUTOTITLE](/organizations/managing-organization-settings/restricting-repository-creation-in-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| View and edit billing information | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | -| Invite people to join the organization | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Edit and cancel invitations to join the organization | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} |{% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Remove members from the organization | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} |{% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Reinstate former members to the organization | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Add and remove people from **all teams** | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Promote organization members to _team maintainer_ | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Configure code review assignments (see [AUTOTITLE](/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Set scheduled reminders (see [AUTOTITLE](/organizations/organizing-members-into-teams/managing-scheduled-reminders-for-your-team)) | {% octicon "check" aria-label="Yes" %} |{% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Add collaborators to **all repositories** | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Access the organization audit log | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Edit the organization's profile page (see [AUTOTITLE](/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/about-your-organizations-profile)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | +| Create repositories (see [AUTOTITLE](/organizations/managing-organization-settings/restricting-repository-creation-in-your-organization)) | | | | | | +| View and edit billing information | | | | | | +| Invite people to join the organization | | | | | | +| Edit and cancel invitations to join the organization | | | | | | +| Remove members from the organization | | | | | | +| Reinstate former members to the organization | | | | | | +| Add and remove people from **all teams** | | | | | | +| Promote organization members to _team maintainer_ | | | | | | +| Configure code review assignments (see [AUTOTITLE](/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team)) | | | | | | +| Set scheduled reminders (see [AUTOTITLE](/organizations/organizing-members-into-teams/managing-scheduled-reminders-for-your-team)) | | | | | | +| Add collaborators to **all repositories** | | | | | | +| Access the organization audit log | | | | | | +| Edit the organization's profile page (see [AUTOTITLE](/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/about-your-organizations-profile)) | | | | | | | {% ifversion ghec %} | -| Verify the organization's domains (see [AUTOTITLE](/organizations/managing-organization-settings/verifying-or-approving-a-domain-for-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} |{% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Restrict email notifications to verified or approved domains (see [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/restricting-email-notifications-for-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | +| Verify the organization's domains (see [AUTOTITLE](/organizations/managing-organization-settings/verifying-or-approving-a-domain-for-your-organization)) | | | | | | +| Restrict email notifications to verified or approved domains (see [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/restricting-email-notifications-for-your-organization)) | | | | | | | {% endif %} | -| Delete **all teams** | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Delete the organization account, including all repositories | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Create teams (see [AUTOTITLE](/organizations/managing-organization-settings/setting-team-creation-permissions-in-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| [Move teams in an organization's hierarchy](/organizations/organizing-members-into-teams/moving-a-team-in-your-organizations-hierarchy) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | +| Delete **all teams** | | | | | | +| Delete the organization account, including all repositories | | | | | | +| Create teams (see [AUTOTITLE](/organizations/managing-organization-settings/setting-team-creation-permissions-in-your-organization)) | | | | | | +| [Move teams in an organization's hierarchy](/organizations/organizing-members-into-teams/moving-a-team-in-your-organizations-hierarchy) | | | | | | | {% ifversion projects-v1 %} | -| Create projects (see [AUTOTITLE](/organizations/managing-access-to-your-organizations-project-boards/project-board-permissions-for-an-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| Create projects (see [AUTOTITLE](/organizations/managing-access-to-your-organizations-project-boards/project-board-permissions-for-an-organization)) | | | | | | | {% endif %} | -| See all organization members and teams | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| @mention any visible team | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| Can be made a _team maintainer_ | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| See all organization members and teams | | | | | | +| @mention any visible team | | | | | | +| Can be made a _team maintainer_ | | | | | | | {% ifversion ghec %} | -| View organization insights (see [AUTOTITLE](/organizations/collaborating-with-groups-in-organizations/viewing-insights-for-dependencies-in-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| View organization insights (see [AUTOTITLE](/organizations/collaborating-with-groups-in-organizations/viewing-insights-for-dependencies-in-your-organization)) | | | | | | | {% endif %} | -| Hide comments on writable commits, pull requests, and issues (see [AUTOTITLE](/communities/moderating-comments-and-conversations/managing-disruptive-comments#hiding-a-comment)) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| Hide comments on _all_ commits, pull requests, and issues (see [AUTOTITLE](/communities/moderating-comments-and-conversations/managing-disruptive-comments#hiding-a-comment)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| Block and unblock non-member contributors (see [AUTOTITLE](/communities/maintaining-your-safety-on-github/blocking-a-user-from-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} |{% octicon "x" aria-label="No" %} | -| Limit interactions for certain users in public repositories (see [AUTOTITLE](/communities/moderating-comments-and-conversations/limiting-interactions-in-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | +| Hide comments on writable commits, pull requests, and issues (see [AUTOTITLE](/communities/moderating-comments-and-conversations/managing-disruptive-comments#hiding-a-comment)) | | | | | | +| Hide comments on _all_ commits, pull requests, and issues (see [AUTOTITLE](/communities/moderating-comments-and-conversations/managing-disruptive-comments#hiding-a-comment)) | | | | | | +| Block and unblock non-member contributors (see [AUTOTITLE](/communities/maintaining-your-safety-on-github/blocking-a-user-from-your-organization)) | | | | | | +| Limit interactions for certain users in public repositories (see [AUTOTITLE](/communities/moderating-comments-and-conversations/limiting-interactions-in-your-organization)) | | | | | | | {% ifversion ghec %} | -| Manage viewing of organization dependency insights (see [AUTOTITLE](/organizations/managing-organization-settings/changing-the-visibility-of-your-organizations-dependency-insights)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | +| Manage viewing of organization dependency insights (see [AUTOTITLE](/organizations/managing-organization-settings/changing-the-visibility-of-your-organizations-dependency-insights)) | | | | | | | {% endif %} | -| Set a team profile picture in **all teams** (see [AUTOTITLE](/organizations/organizing-members-into-teams/setting-your-teams-profile-picture)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Sponsor accounts and manage the organization's sponsorships (see [AUTOTITLE](/sponsors/sponsoring-open-source-contributors)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Manage email updates from sponsored accounts (see [AUTOTITLE](/organizations/managing-organization-settings/managing-updates-from-accounts-your-organization-sponsors)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Attribute your sponsorships to another organization (see [AUTOTITLE](/sponsors/sponsoring-open-source-contributors/attributing-sponsorships-to-your-organization) for details ) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Manage the publication of {% data variables.product.prodname_pages %} sites from repositories in the organization (see [AUTOTITLE](/organizations/managing-organization-settings/managing-the-publication-of-github-pages-sites-for-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Manage security and analysis settings (see [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| View security overview for the organization (see [AUTOTITLE](/code-security/security-overview/about-security-overview)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| Set a team profile picture in **all teams** (see [AUTOTITLE](/organizations/organizing-members-into-teams/setting-your-teams-profile-picture)) | | | | | | +| Sponsor accounts and manage the organization's sponsorships (see [AUTOTITLE](/sponsors/sponsoring-open-source-contributors)) | | | | | | +| Manage email updates from sponsored accounts (see [AUTOTITLE](/organizations/managing-organization-settings/managing-updates-from-accounts-your-organization-sponsors)) | | | | | | +| Attribute your sponsorships to another organization (see [AUTOTITLE](/sponsors/sponsoring-open-source-contributors/attributing-sponsorships-to-your-organization) for details ) | | | | | | +| Manage the publication of {% data variables.product.prodname_pages %} sites from repositories in the organization (see [AUTOTITLE](/organizations/managing-organization-settings/managing-the-publication-of-github-pages-sites-for-your-organization)) | | | | | | +| Manage security and analysis settings (see [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization)) | | | | | | +| View security overview for the organization (see [AUTOTITLE](/code-security/security-overview/about-security-overview)) | | | | | | | {% ifversion ghec %} | -| Enable and enforce [SAML single sign-on](/organizations/managing-saml-single-sign-on-for-your-organization/about-identity-and-access-management-with-saml-single-sign-on) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| [Manage a user's SAML access to your organization](/organizations/granting-access-to-your-organization-with-saml-single-sign-on/viewing-and-managing-a-members-saml-access-to-your-organization) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Manage an organization's SSH certificate authorities (see [AUTOTITLE](/organizations/managing-git-access-to-your-organizations-repositories/managing-your-organizations-ssh-certificate-authorities)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | +| Enable and enforce [SAML single sign-on](/organizations/managing-saml-single-sign-on-for-your-organization/about-identity-and-access-management-with-saml-single-sign-on) | | | | | | +| [Manage a user's SAML access to your organization](/organizations/granting-access-to-your-organization-with-saml-single-sign-on/viewing-and-managing-a-members-saml-access-to-your-organization) | | | | | | +| Manage an organization's SSH certificate authorities (see [AUTOTITLE](/organizations/managing-git-access-to-your-organizations-repositories/managing-your-organizations-ssh-certificate-authorities)) | | | | | | | {% endif %} | -| Transfer repositories | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Purchase, install, manage billing for, and cancel {% data variables.product.prodname_marketplace %} apps | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| List apps in {% data variables.product.prodname_marketplace %} | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Receive [{% data variables.product.prodname_dependabot_alerts %} about insecure dependencies](/code-security/dependabot/dependabot-alerts/about-dependabot-alerts) for all of an organization's repositories | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| Manage {% data variables.product.prodname_dependabot_security_updates %} (see [AUTOTITLE](/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| [Manage the forking policy](/organizations/managing-organization-settings/managing-the-forking-policy-for-your-organization) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| [Limit activity in public repositories in an organization](/communities/moderating-comments-and-conversations/limiting-interactions-in-your-organization) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Pull (read) _all repositories_ in the organization | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| Push (write) and clone (copy) _all repositories_ in the organization | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Convert organization members to {% ifversion repository-collaborators %}[outside collaborators or repository collaborators](#outside-collaborators-or-repository-collaborators){% else %}[outside collaborators](#outside-collaborators){% endif %} | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| [View people with access to an organization repository](/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/viewing-people-with-access-to-your-repository) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | +| Transfer repositories | | | | | | +| Purchase, install, manage billing for, and cancel {% data variables.product.prodname_marketplace %} apps | | | | | | +| List apps in {% data variables.product.prodname_marketplace %} | | | | | | +| Receive [{% data variables.product.prodname_dependabot_alerts %} about insecure dependencies](/code-security/dependabot/dependabot-alerts/about-dependabot-alerts) for all of an organization's repositories | | | | | | +| Manage {% data variables.product.prodname_dependabot_security_updates %} (see [AUTOTITLE](/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates)) | | | | | | +| [Manage the forking policy](/organizations/managing-organization-settings/managing-the-forking-policy-for-your-organization) | | | | | | +| [Limit activity in public repositories in an organization](/communities/moderating-comments-and-conversations/limiting-interactions-in-your-organization) | | | | | | +| Pull (read) _all repositories_ in the organization | | | | | | +| Push (write) and clone (copy) _all repositories_ in the organization | | | | | | +| Convert organization members to {% ifversion repository-collaborators %}[outside collaborators or repository collaborators](#outside-collaborators-or-repository-collaborators){% else %}[outside collaborators](#outside-collaborators){% endif %} | | | | | | +| [View people with access to an organization repository](/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/viewing-people-with-access-to-your-repository) | | | | | | | {% ifversion ghec %} | -| [Export a list of people with access to an organization repository](/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/viewing-people-with-access-to-your-repository#exporting-a-list-of-people-with-access-to-your-repository) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | +| [Export a list of people with access to an organization repository](/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/viewing-people-with-access-to-your-repository#exporting-a-list-of-people-with-access-to-your-repository) | | | | | | | {% endif %} | -| Manage the default branch name (see [AUTOTITLE](/organizations/managing-organization-settings/managing-the-default-branch-name-for-repositories-in-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Manage default labels (see [AUTOTITLE](/organizations/managing-organization-settings/managing-default-labels-for-repositories-in-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | +| Manage the default branch name (see [AUTOTITLE](/organizations/managing-organization-settings/managing-the-default-branch-name-for-repositories-in-your-organization)) | | | | | | +| Manage default labels (see [AUTOTITLE](/organizations/managing-organization-settings/managing-default-labels-for-repositories-in-your-organization)) | | | | | | | {% ifversion ghec %} | -| Enable team synchronization (see [AUTOTITLE](/organizations/managing-saml-single-sign-on-for-your-organization/managing-team-synchronization-for-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | +| Enable team synchronization (see [AUTOTITLE](/organizations/managing-saml-single-sign-on-for-your-organization/managing-team-synchronization-for-your-organization)) | | | | | | | {% endif %} | -| Manage pull request reviews in the organization (see [AUTOTITLE](/organizations/managing-organization-settings/managing-pull-request-reviews-in-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | +| Manage pull request reviews in the organization (see [AUTOTITLE](/organizations/managing-organization-settings/managing-pull-request-reviews-in-your-organization)) | | | | | | | {% ifversion repo-rules-enterprise %} | -| Manage organization-level rulesets (see [AUTOTITLE](/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | +| Manage organization-level rulesets (see [AUTOTITLE](/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization)) | | | | | | | {% endif %} | | {% ifversion push-protection-bypass-fine-grained-permissions %} | -| Review and manage {% data variables.product.prodname_secret_scanning %} bypass requests (see [AUTOTITLE](/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/delegated-bypass-for-push-protection)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| Review and manage {% data variables.product.prodname_secret_scanning %} bypass requests (see [AUTOTITLE](/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/delegated-bypass-for-push-protection)) | | | | | | | {% endif %} | | {% ifversion security-delegated-alert-dismissal %} | -| Review and manage {% data variables.product.prodname_secret_scanning %} dismissal requests (see [AUTOTITLE](/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/enabling-delegated-alert-dismissal-for-secret-scanning)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| Review and manage {% data variables.product.prodname_secret_scanning %} dismissal requests (see [AUTOTITLE](/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/enabling-delegated-alert-dismissal-for-secret-scanning)) | | | | | | | {% endif %} | | {% ifversion security-delegated-alert-dismissal %} | -| Review and manage {% data variables.product.prodname_code_scanning %} dismissal requests (see [AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/enabling-delegated-alert-dismissal-for-code-scanning)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| Review and manage {% data variables.product.prodname_code_scanning %} dismissal requests (see [AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/enabling-delegated-alert-dismissal-for-code-scanning)) | | | | | | | {% endif %} | {% endrowheaders %} @@ -215,50 +215,50 @@ Some of the features listed below are limited to organizations using {% data var | Organization action | Owners | Members | Security managers | |:--------------------|:------:|:-------:|:-------:| -| Invite people to join the organization | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} |{% octicon "x" aria-label="No" %} | -| Edit and cancel invitations to join the organization | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Remove members from the organization | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Reinstate former members to the organization | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Add and remove people from **all teams** | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Promote organization members to _team maintainer_ | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Configure code review assignments (see [AUTOTITLE](/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Add collaborators to **all repositories** | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Access the organization audit log | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Edit the organization's profile page (see [AUTOTITLE](/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/about-your-organizations-profile)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Verify the organization's domains (see [AUTOTITLE](/organizations/managing-organization-settings/verifying-or-approving-a-domain-for-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Restrict email notifications to verified or approved domains (see [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/restricting-email-notifications-for-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Delete **all teams** | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Delete the organization account, including all repositories | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Create teams (see [AUTOTITLE](/organizations/managing-organization-settings/setting-team-creation-permissions-in-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| See all organization members and teams | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| @mention any visible team | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Can be made a _team maintainer_ | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Transfer repositories | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Manage security and analysis settings (see [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| View the security overview for the organization (see [AUTOTITLE](/code-security/security-overview/about-the-security-overview)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| Invite people to join the organization | | | | +| Edit and cancel invitations to join the organization | | | | +| Remove members from the organization | | | | | +| Reinstate former members to the organization | | | | | +| Add and remove people from **all teams** | | | | +| Promote organization members to _team maintainer_ | | | | +| Configure code review assignments (see [AUTOTITLE](/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team)) | | | | +| Add collaborators to **all repositories** | | | | +| Access the organization audit log | | | | +| Edit the organization's profile page (see [AUTOTITLE](/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/about-your-organizations-profile)) | | | | +| Verify the organization's domains (see [AUTOTITLE](/organizations/managing-organization-settings/verifying-or-approving-a-domain-for-your-organization)) | | | | +| Restrict email notifications to verified or approved domains (see [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/restricting-email-notifications-for-your-organization)) | | | | +| Delete **all teams** | | | | +| Delete the organization account, including all repositories | | | | +| Create teams (see [AUTOTITLE](/organizations/managing-organization-settings/setting-team-creation-permissions-in-your-organization)) | | | | +| See all organization members and teams | | | | +| @mention any visible team | | | | +| Can be made a _team maintainer_ | | | | +| Transfer repositories | | | | +| Manage security and analysis settings (see [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization)) | | | | +| View the security overview for the organization (see [AUTOTITLE](/code-security/security-overview/about-the-security-overview)) | | | | | {% ifversion security-delegated-alert-dismissal %} | -| Review and manage {% data variables.product.prodname_secret_scanning %} dismissal requests | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| Review and manage {% data variables.product.prodname_secret_scanning %} dismissal requests | | | | | | | {% endif %} | | {% ifversion security-delegated-alert-dismissal %} | -| Review and manage {% data variables.product.prodname_code_scanning %} dismissal requests | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| Review and manage {% data variables.product.prodname_code_scanning %} dismissal requests | | | | | | | {% endif %} | -| Manage {% data variables.product.prodname_dependabot_security_updates %} (see [AUTOTITLE](/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| Manage an organization's SSH certificate authorities (see [AUTOTITLE](/organizations/managing-git-access-to-your-organizations-repositories/managing-your-organizations-ssh-certificate-authorities)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | +| Manage {% data variables.product.prodname_dependabot_security_updates %} (see [AUTOTITLE](/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates)) | | | | +| Manage an organization's SSH certificate authorities (see [AUTOTITLE](/organizations/managing-git-access-to-your-organizations-repositories/managing-your-organizations-ssh-certificate-authorities)) | | | | | {% ifversion projects-v1 %} | -| Create {% data variables.projects.projects_v1_boards %} (see [AUTOTITLE](/organizations/managing-access-to-your-organizations-project-boards/project-board-permissions-for-an-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| Create {% data variables.projects.projects_v1_boards %} (see [AUTOTITLE](/organizations/managing-access-to-your-organizations-project-boards/project-board-permissions-for-an-organization)) | | | | | {% endif %} | -| Hide comments on commits, pull requests, and issues (see [AUTOTITLE](/communities/moderating-comments-and-conversations/managing-disruptive-comments#hiding-a-comment)) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Set a team profile picture in **all teams** (see [AUTOTITLE](/organizations/organizing-members-into-teams/setting-your-teams-profile-picture)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Manage the publication of {% data variables.product.prodname_pages %} sites from repositories in the organization (see [AUTOTITLE](/organizations/managing-organization-settings/managing-the-publication-of-github-pages-sites-for-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| [Move teams in an organization's hierarchy](/organizations/organizing-members-into-teams/moving-a-team-in-your-organizations-hierarchy) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Pull (read) _all repositories_ in the organization | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| Push (write) and clone (copy) _all repositories_ in the organization | {% octicon "check" aria-label="Yes" %} |{% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Convert organization members to {% ifversion repository-collaborators %}[outside collaborators or repository collaborators](#outside-collaborators-or-repository-collaborators){% else %}[outside collaborators](#outside-collaborators){% endif %} | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| [View people with access to an organization repository](/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/viewing-people-with-access-to-your-repository) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| [Export a list of people with access to an organization repository](/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/viewing-people-with-access-to-your-repository#exporting-a-list-of-people-with-access-to-your-repository) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | -| Manage default labels (see [AUTOTITLE](/organizations/managing-organization-settings/managing-default-labels-for-repositories-in-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | +| Hide comments on commits, pull requests, and issues (see [AUTOTITLE](/communities/moderating-comments-and-conversations/managing-disruptive-comments#hiding-a-comment)) | | | | +| Set a team profile picture in **all teams** (see [AUTOTITLE](/organizations/organizing-members-into-teams/setting-your-teams-profile-picture)) | | | | +| Manage the publication of {% data variables.product.prodname_pages %} sites from repositories in the organization (see [AUTOTITLE](/organizations/managing-organization-settings/managing-the-publication-of-github-pages-sites-for-your-organization)) | | | | +| [Move teams in an organization's hierarchy](/organizations/organizing-members-into-teams/moving-a-team-in-your-organizations-hierarchy) | | | | +| Pull (read) _all repositories_ in the organization | | | | +| Push (write) and clone (copy) _all repositories_ in the organization | | | | +| Convert organization members to {% ifversion repository-collaborators %}[outside collaborators or repository collaborators](#outside-collaborators-or-repository-collaborators){% else %}[outside collaborators](#outside-collaborators){% endif %} | | | | +| [View people with access to an organization repository](/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/viewing-people-with-access-to-your-repository) | | | | +| [Export a list of people with access to an organization repository](/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/viewing-people-with-access-to-your-repository#exporting-a-list-of-people-with-access-to-your-repository) | | | | +| Manage default labels (see [AUTOTITLE](/organizations/managing-organization-settings/managing-default-labels-for-repositories-in-your-organization)) | | | | | {% ifversion pull-request-approval-limit %} | -| Manage pull request reviews in the organization (see [AUTOTITLE](/organizations/managing-organization-settings/managing-pull-request-reviews-in-your-organization)) | {% octicon "check" aria-label="Yes" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | +| Manage pull request reviews in the organization (see [AUTOTITLE](/organizations/managing-organization-settings/managing-pull-request-reviews-in-your-organization)) | | | | | | {% endif %} | {% endrowheaders %} diff --git a/content/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/repository-roles-for-an-organization.md b/content/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/repository-roles-for-an-organization.md index 6e6a9df1cb70..c783f2155e72 100644 --- a/content/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/repository-roles-for-an-organization.md +++ b/content/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/repository-roles-for-an-organization.md @@ -57,114 +57,116 @@ Some of the features listed below are limited to organizations using {% data var | Repository action | Read | Triage | Write | Maintain | Admin | |:---|:---:|:---:|:---:|:---:|:---:| -| Manage [individual](/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/managing-an-individuals-access-to-an-organization-repository), [team](/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/managing-team-access-to-an-organization-repository), and [outside collaborator](/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization) access to the repository | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| Pull from the person or team's assigned repositories | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Fork the person or team's assigned repositories | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Edit and delete their own comments | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Open issues | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Close issues they opened themselves | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Reopen issues they closed themselves | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Have an issue assigned to them | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Send pull requests from forks of the team's assigned repositories | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Submit reviews on pull requests](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Approve or request changes to a pull request with required reviews](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/approving-a-pull-request-with-required-reviews) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Apply suggested changes](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/incorporating-feedback-in-your-pull-request) to pull requests | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| View published releases | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| Manage [individual](/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/managing-an-individuals-access-to-an-organization-repository), [team](/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/managing-team-access-to-an-organization-repository), and [outside collaborator](/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization) access to the repository | | | | | | +| Pull from the person or team's assigned repositories | | | | | | +| Fork the person or team's assigned repositories | | | | | | +| Edit and delete their own comments | | | | | | +| Open issues | | | | | | +| Close issues they opened themselves | | | | | | +| Reopen issues they closed themselves | | | | | | +| Have an issue assigned to them | | | | | | +| Send pull requests from forks of the team's assigned repositories | | | | | | +| [Submit reviews on pull requests](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request) | | | | | | +| [Approve or request changes to a pull request with required reviews](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/approving-a-pull-request-with-required-reviews) | | | | | | +| [Apply suggested changes](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/incorporating-feedback-in-your-pull-request) to pull requests | | | | | | +| View published releases | | | | | | | {% ifversion fpt or ghec %} | -| View [GitHub Actions workflow runs](/actions/managing-workflow-runs) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| View [GitHub Actions workflow runs](/actions/managing-workflow-runs) | | | | | | | {% endif %} | -| Edit wikis in public repositories | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Edit wikis in private repositories | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| Edit wikis in public repositories | | | | | | +| Edit wikis in private repositories | | | | | | | {% ifversion fpt or ghec %} | -| [Report abusive or spammy content](/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| [Report abusive or spammy content](/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam) | | | | | | | {% endif %} | -| Apply/dismiss labels | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Create, edit, delete labels | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Close, reopen, and assign all issues and pull requests | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Enable and disable auto-merge on a pull request](/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Create, edit, delete milestones | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Apply milestones | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Mark [duplicate issues and pull requests](/issues/tracking-your-work-with-issues/marking-issues-or-pull-requests-as-a-duplicate)| {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Request [pull request reviews](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review) | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Merge a [pull request](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Push to (write) the person or team's assigned repositories | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Edit and delete anyone's comments on commits, pull requests, and issues | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Hide anyone's comments](/communities/moderating-comments-and-conversations/managing-disruptive-comments) | {% octicon "x" aria-label="No" %} | {% ifversion discussions-moderators-control-who-can-report %}{% octicon "check" aria-label="Yes" %}{% endif %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} || [Lock conversations](/communities/moderating-comments-and-conversations/locking-conversations) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Transfer issues (see [AUTOTITLE](/issues/tracking-your-work-with-issues/transferring-an-issue-to-another-repository) for details) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Act as a designated code owner for a repository](/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Mark a draft pull request as ready for review](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Convert a pull request to a draft](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Create [status checks](/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| Apply/dismiss labels | | | | | | +| Create, edit, delete labels | | | | | | +| Close, reopen, and assign all issues and pull requests | | | | | | +| [Enable and disable auto-merge on a pull request](/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository) | | | | | | +| Create, edit, delete milestones | | | | | | +| Apply milestones | | | | | | +| Mark [duplicate issues and pull requests](/issues/tracking-your-work-with-issues/marking-issues-or-pull-requests-as-a-duplicate)| | | | | | +| Request [pull request reviews](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review) | | | | | | +| Merge a [pull request](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges) | | | | | | +| Push to (write) the person or team's assigned repositories | | | | | | +| Edit and delete anyone's comments on commits, pull requests, and issues | | | | | | +| [Hide anyone's comments](/communities/moderating-comments-and-conversations/managing-disruptive-comments) | | {% ifversion discussions-moderators-control-who-can-report %}{% endif %} | | | | +| [Lock conversations](/communities/moderating-comments-and-conversations/locking-conversations) | | | | | | +| Transfer issues (see [AUTOTITLE](/issues/tracking-your-work-with-issues/transferring-an-issue-to-another-repository) for details) | | | | | | +| [Act as a designated code owner for a repository](/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) | | | | | | +| [Mark a draft pull request as ready for review](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request) | | | | | | +| [Convert a pull request to a draft](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request) | | | | | | +| Create [status checks](/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks) | | | | | | | {% ifversion fpt or ghec %} | -| Create, edit, run, re-run, and cancel [GitHub Actions workflows](/actions) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| Create, edit, run, re-run, and cancel [GitHub Actions workflows](/actions) | | | | | | | {% endif %} | -| Create, update, and delete [GitHub Actions secrets](/actions/security-guides/using-secrets-in-github-actions) on GitHub.com | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| Create, update, and delete [GitHub Actions secrets](/rest/actions/secrets) using the REST API | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Create and edit releases | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| View draft releases | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Edit a repository's description | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| Create, update, and delete [GitHub Actions secrets](/actions/security-guides/using-secrets-in-github-actions) on GitHub.com | | | | | | +| Create, update, and delete [GitHub Actions secrets](/rest/actions/secrets) using the REST API | | | | | | +| Create and edit releases | | | | | | +| View draft releases | | | | | | +| Edit a repository's description | | | | | | | {% ifversion fpt or ghec %} | -| [View and install packages](/packages/learn-github-packages) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Publish packages](/packages/learn-github-packages/publishing-a-package) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Delete and restore packages](/packages/learn-github-packages/deleting-and-restoring-a-package) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| [View and install packages](/packages/learn-github-packages) | | | | | | +| [Publish packages](/packages/learn-github-packages/publishing-a-package) | | | | | | +| [Delete and restore packages](/packages/learn-github-packages/deleting-and-restoring-a-package) | | | | | | | {% endif %} | -| Manage [topics](/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/classifying-your-repository-with-topics) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Enable wikis and restrict wiki editors | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| Manage [topics](/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/classifying-your-repository-with-topics) | | | | | | +| Enable wikis and restrict wiki editors | | | | | | | {% ifversion projects-v1 %} | -| Enable {% data variables.projects.projects_v1_boards %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| Enable {% data variables.projects.projects_v1_boards %} | | | | | | | {% endif %} | -| Configure [pull request merges](/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Configure [a publishing source for {% data variables.product.prodname_pages %}](/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| Configure [pull request merges](/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges) | | | | | | +| Configure [a publishing source for {% data variables.product.prodname_pages %}](/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site) | | | | | | | {% ifversion copilot %} | -| View [content exclusion settings](/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-github-copilot-features-in-your-organization/about-content-exclusions-for-github-copilot) for {% data variables.product.prodname_copilot %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| View [content exclusion settings](/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-github-copilot-features-in-your-organization/about-content-exclusions-for-github-copilot) for {% data variables.product.prodname_copilot %} | | | | | | | {% endif %} | -| Manage [branch protection rules](/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/managing-a-branch-protection-rule) and [repository rulesets](/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| View [rulesets for a repository](/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Push to protected branches](/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches)
Doesn't apply to rulesets as these have a different bypass model. See [Granting bypass permissions for your branch or tag ruleset](/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/creating-rulesets-for-a-repository#granting-bypass-permissions-for-your-branch-or-tag-ruleset). | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Merge pull requests on protected branches, even if there are no approving reviews | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| Manage [branch protection rules](/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/managing-a-branch-protection-rule) and [repository rulesets](/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets) | | | | | | +| View [rulesets for a repository](/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets) | | | | | | +| [Push to protected branches](/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches)
Doesn't apply to rulesets as these have a different bypass model. See [Granting bypass permissions for your branch or tag ruleset](/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/creating-rulesets-for-a-repository#granting-bypass-permissions-for-your-branch-or-tag-ruleset). | | | | | | +| Merge pull requests on protected branches, even if there are no approving reviews | | | | | | | {% ifversion ghes < 3.16 %} | -| Create tags that match a [tag protection rule](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/configuring-tag-protection-rules) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Delete tags that match a [tag protection rule](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/configuring-tag-protection-rules) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| Create tags that match a [tag protection rule](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/configuring-tag-protection-rules) | | | | | | +| Delete tags that match a [tag protection rule](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/configuring-tag-protection-rules) | | | | | | | {% endif %} | -| [Create and edit repository social cards](/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/customizing-your-repositorys-social-media-preview) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| [Create and edit repository social cards](/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/customizing-your-repositorys-social-media-preview) | | | | | | | {% ifversion fpt or ghec %} | -| Limit [interactions in a repository](/communities/moderating-comments-and-conversations/limiting-interactions-in-your-repository)| {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| Limit [interactions in a repository](/communities/moderating-comments-and-conversations/limiting-interactions-in-your-repository)| | | | | | | {% endif %} | -| Delete an issue (see [AUTOTITLE](/issues/tracking-your-work-with-issues/deleting-an-issue)) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| [Define code owners for a repository](/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Add a repository to a team (see [AUTOTITLE](/organizations/managing-user-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository#giving-a-team-access-to-a-repository) for details) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| [Manage outside collaborator access to a repository](/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| [Change a repository's visibility](/organizations/managing-organization-settings/restricting-repository-visibility-changes-in-your-organization) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| Make a repository a template (see [AUTOTITLE](/repositories/creating-and-managing-repositories/creating-a-template-repository)) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| Change a repository's settings | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| Manage team and collaborator access to the repository | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| Edit the repository's default branch | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| Rename the repository's default branch (see [AUTOTITLE](/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch)) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| Rename a branch other than the repository's default branch (see [AUTOTITLE](/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch)) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| Manage webhooks and deploy keys | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| [Manage the forking policy for a repository](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-the-forking-policy-for-your-repository) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| [Transfer repositories into the organization](/organizations/managing-organization-settings/restricting-repository-creation-in-your-organization) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| [Delete or transfer repositories out of the organization](/organizations/managing-organization-settings/setting-permissions-for-deleting-or-transferring-repositories) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| [Archive repositories](/repositories/archiving-a-github-repository/archiving-repositories) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| Delete an issue (see [AUTOTITLE](/issues/tracking-your-work-with-issues/deleting-an-issue)) | | | | | | +| [Define code owners for a repository](/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) | | | | | | +| Add a repository to a team (see [AUTOTITLE](/organizations/managing-user-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository#giving-a-team-access-to-a-repository) for details) | | | | | | +| [Manage outside collaborator access to a repository](/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization) | | | | | | +| [Change a repository's visibility](/organizations/managing-organization-settings/restricting-repository-visibility-changes-in-your-organization) | | | | | | +| Make a repository a template (see [AUTOTITLE](/repositories/creating-and-managing-repositories/creating-a-template-repository)) | | | | | | +| Change a repository's settings | | | | | | +| Manage team and collaborator access to the repository | | | | | | +| Edit the repository's default branch | | | | | | +| Rename the repository's default branch (see [AUTOTITLE](/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch)) | | | | | | +| Rename a branch other than the repository's default branch (see [AUTOTITLE](/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch)) | | | | | | +| Manage webhooks and deploy keys | | | | | | +| [Manage the forking policy for a repository](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-the-forking-policy-for-your-repository) | | | | | | +| [Transfer repositories into the organization](/organizations/managing-organization-settings/restricting-repository-creation-in-your-organization) | | | | | | +| [Delete or transfer repositories out of the organization](/organizations/managing-organization-settings/setting-permissions-for-deleting-or-transferring-repositories) | | | | | | +| [Archive repositories](/repositories/archiving-a-github-repository/archiving-repositories) | | | | | | | {% ifversion fpt or ghec %} | -| Display a sponsor button (see [AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository)) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| Display a sponsor button (see [AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository)) | | | | | | | {% endif %} | -| Create autolink references to external resources, like Jira or Zendesk (see [AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/configuring-autolinks-to-reference-external-resources)) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | -| [Enable {% data variables.product.prodname_discussions %}](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/enabling-or-disabling-github-discussions-for-a-repository) in a repository | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Create and edit categories](/discussions/managing-discussions-for-your-community/managing-categories-for-discussions) for {% data variables.product.prodname_discussions %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Move a discussion to a different category](/discussions/managing-discussions-for-your-community/managing-discussions) | {% octicon "x" aria-label="No" %} | {% ifversion discussions-moderators-control-who-can-report %}{% octicon "check" aria-label="Yes" %}{% endif %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} || [Transfer a discussion](/discussions/managing-discussions-for-your-community/managing-discussions) to a new repository| {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Manage pinned discussions](/discussions/managing-discussions-for-your-community/managing-discussions) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Convert issues to discussions in bulk](/discussions/managing-discussions-for-your-community/managing-discussions) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Lock and unlock discussions](/discussions/managing-discussions-for-your-community/moderating-discussions) | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Individually convert issues to discussions](/discussions/managing-discussions-for-your-community/moderating-discussions) | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Create new discussions and comment on existing discussions](/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Delete a discussion](/discussions/managing-discussions-for-your-community/managing-discussions#deleting-a-discussion) | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| Create autolink references to external resources, like Jira or Zendesk (see [AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/configuring-autolinks-to-reference-external-resources)) | | | | | | +| [Enable {% data variables.product.prodname_discussions %}](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/enabling-or-disabling-github-discussions-for-a-repository) in a repository | | | | | | +| [Create and edit categories](/discussions/managing-discussions-for-your-community/managing-categories-for-discussions) for {% data variables.product.prodname_discussions %} | | | | | | +| [Move a discussion to a different category](/discussions/managing-discussions-for-your-community/managing-discussions) | | {% ifversion discussions-moderators-control-who-can-report %}{% endif %} | | | | +| [Transfer a discussion](/discussions/managing-discussions-for-your-community/managing-discussions) to a new repository| | | | | | +| [Manage pinned discussions](/discussions/managing-discussions-for-your-community/managing-discussions) | | | | | | +| [Convert issues to discussions in bulk](/discussions/managing-discussions-for-your-community/managing-discussions) | | | | | | +| [Lock and unlock discussions](/discussions/managing-discussions-for-your-community/moderating-discussions) | | | | | | +| [Individually convert issues to discussions](/discussions/managing-discussions-for-your-community/moderating-discussions) | | | | | | +| [Create new discussions and comment on existing discussions](/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion) | | | | | | +| [Delete a discussion](/discussions/managing-discussions-for-your-community/managing-discussions#deleting-a-discussion) | | | | | | | {% ifversion fpt or ghec %} | -| [Create codespaces](/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository?tool=webui) for private{% ifversion ghec %}/internal{% endif %} repositories | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Create codespaces](/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository?tool=webui) for private{% ifversion ghec %}/internal{% endif %} repositories with [Codespaces secrets access](/codespaces/managing-codespaces-for-your-organization/managing-development-environment-secrets-for-your-repository-or-organization?tool=webui) | {% octicon "check" aria-label="No" %} | {% octicon "check" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Create codespaces](/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository?tool=webui) for public repositories
(users with read-only access can only create codespaces at their own expense) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| [Create codespaces](/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository?tool=webui) for private{% ifversion ghec %}/internal{% endif %} repositories | | | | | | +| [Create codespaces](/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository?tool=webui) for private{% ifversion ghec %}/internal{% endif %} repositories with [Codespaces secrets access](/codespaces/managing-codespaces-for-your-organization/managing-development-environment-secrets-for-your-repository-or-organization?tool=webui) | {% octicon "check" aria-label="No" %} | {% octicon "check" aria-label="No" %} | | | | +| [Create codespaces](/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository?tool=webui) for public repositories
(users with read-only access can only create codespaces at their own expense) | | | | | | | {% endif %} | -| Edit the custom property values for the repository | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| Edit the custom property values for the repository | | | | | | {% endrowheaders %} @@ -178,26 +180,26 @@ In this section, you can find the access required for security features, such as | Repository action | Read | Triage | Write | Maintain | Admin | |:---|:---:|:---:|:---:|:---:|:---:| -| Receive [{% data variables.product.prodname_dependabot_alerts %} for insecure dependencies](/code-security/dependabot/dependabot-alerts/about-dependabot-alerts) in a repository | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [Dismiss {% data variables.product.prodname_dependabot_alerts %}](/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| Receive [{% data variables.product.prodname_dependabot_alerts %} for insecure dependencies](/code-security/dependabot/dependabot-alerts/about-dependabot-alerts) in a repository | | | | | | +| [Dismiss {% data variables.product.prodname_dependabot_alerts %}](/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts) | | | | | | | {% ifversion ghes or ghec %}| -| [Designate additional people or teams to receive security alerts](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| [Designate additional people or teams to receive security alerts](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts) | | | | | | | {% endif %} | | {% ifversion fpt or ghec %} | -| Create [security advisories](/code-security/security-advisories/working-with-repository-security-advisories/about-repository-security-advisories) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} |{% endif %}{% ifversion ghes or ghec %} -| Manage access to {% data variables.product.prodname_GHAS %} features (see [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization)) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} |{% endif %}{% ifversion fpt or ghec %} -| [Enable the dependency graph](/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository) for a private repository | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| Create [security advisories](/code-security/security-advisories/working-with-repository-security-advisories/about-repository-security-advisories) | | | | | |{% endif %}{% ifversion ghes or ghec %} +| Manage access to {% data variables.product.prodname_GHAS %} features (see [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization)) | | | | | |{% endif %}{% ifversion fpt or ghec %} +| [Enable the dependency graph](/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository) for a private repository | | | | | | | {% endif %} | | {% ifversion ghes or ghec %} | -| [View dependency reviews](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| [View dependency reviews](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review) | | | | | | | {% endif %} | -| [View {% data variables.product.prodname_code_scanning %} alerts on pull requests](/code-security/code-scanning/managing-code-scanning-alerts/triaging-code-scanning-alerts-in-pull-requests) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [List, dismiss, and delete {% data variables.product.prodname_code_scanning %} alerts](/code-security/code-scanning/managing-code-scanning-alerts/resolving-code-scanning-alerts) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | -| [View and dismiss {% data variables.secret-scanning.alerts %} in a repository](/code-security/secret-scanning/managing-alerts-from-secret-scanning) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} |{% ifversion ghes or ghec %} -| [Resolve, revoke, or re-open {% data variables.secret-scanning.alerts %}](/code-security/secret-scanning/managing-alerts-from-secret-scanning) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | +| [View {% data variables.product.prodname_code_scanning %} alerts on pull requests](/code-security/code-scanning/managing-code-scanning-alerts/triaging-code-scanning-alerts-in-pull-requests) | | | | | | +| [List, dismiss, and delete {% data variables.product.prodname_code_scanning %} alerts](/code-security/code-scanning/managing-code-scanning-alerts/resolving-code-scanning-alerts) | | | | | | +| [View and dismiss {% data variables.secret-scanning.alerts %} in a repository](/code-security/secret-scanning/managing-alerts-from-secret-scanning) | | | | | |{% ifversion ghes or ghec %} +| [Resolve, revoke, or re-open {% data variables.secret-scanning.alerts %}](/code-security/secret-scanning/managing-alerts-from-secret-scanning) | | | | | | | {% endif %} | | {% ifversion ghes or ghec %} | -| [Designate additional people or teams to receive {% data variables.secret-scanning.alerts %}](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts) in repositories | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +| [Designate additional people or teams to receive {% data variables.secret-scanning.alerts %}](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts) in repositories | | | | | | | {% endif %} | {% endrowheaders %} diff --git a/src/content-render/stylesheets/index.scss b/src/content-render/stylesheets/index.scss index 956f1f6c35fd..d386ca6973a2 100644 --- a/src/content-render/stylesheets/index.scss +++ b/src/content-render/stylesheets/index.scss @@ -3,3 +3,4 @@ @import "markdown-overrides.scss"; @import "syntax-highlighting.scss"; @import "alerts.scss"; +@import "octicon-table-optimization.scss"; diff --git a/src/content-render/stylesheets/octicon-table-optimization.scss b/src/content-render/stylesheets/octicon-table-optimization.scss new file mode 100644 index 000000000000..ee298a533cf6 --- /dev/null +++ b/src/content-render/stylesheets/octicon-table-optimization.scss @@ -0,0 +1,46 @@ +// Octicon table optimization for pages with hundreds of repeated icons +// Uses CSS background images instead of inline SVGs to dramatically reduce HTML size + +$octicon-check-path: "M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"; +$octicon-x-path: "M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"; + +$light-color: "%23000000"; +$dark-color: "%23ffffff"; + +@function octicon-svg($path, $color) { + @return url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='#{$color}'%3E%3Cpath d='#{$path}'/%3E%3C/svg%3E"); +} + +@mixin octicon-bg-base { + display: inline-block; + width: 16px; + height: 16px; + text-indent: -9999px; + background-repeat: no-repeat; + background-position: center; + background-size: 16px 16px; +} + +@mixin octicon-dark-mode($path) { + [data-color-mode="dark"] & { + background-image: octicon-svg($path, $dark-color); + } + + @media (prefers-color-scheme: dark) { + [data-color-mode="auto"][data-dark-theme="dark"] & { + background-image: octicon-svg($path, $dark-color); + } + } +} + +.octicon-bg-check { + @include octicon-bg-base; + background-image: octicon-svg($octicon-check-path, $light-color); + @include octicon-dark-mode($octicon-check-path); +} + +.octicon-bg-x { + @include octicon-bg-base; + background-image: octicon-svg($octicon-x-path, $light-color); + @include octicon-dark-mode($octicon-x-path); +} diff --git a/src/landings/components/SidebarProduct.tsx b/src/landings/components/SidebarProduct.tsx index 1057debad720..f35efcd47954 100644 --- a/src/landings/components/SidebarProduct.tsx +++ b/src/landings/components/SidebarProduct.tsx @@ -79,7 +79,7 @@ function NavListItem({ childPage }: { childPage: ProductTreeNode }) { const { asPath, locale } = useRouter() const routePath = `/${locale}${asPath.split('?')[0].split('#')[0]}` const isActive = routePath === childPage.href - const specialCategory = childPage.href.endsWith('/copilot/copilot-chat-cookbook') + const specialCategory = childPage.href.endsWith('/copilot/tutorials/copilot-chat-cookbook') return ( +

Getting started with GitHub

+``` + +## Comment Format + +Comments include the following information: + +- `TRANSLATION_FALLBACK` - Searchable tag to identify fallback comments +- `prop=` - Which property failed (title, intro, markdown, etc.) +- `type=` - Type of error (ParseError, RenderError, TokenizationError, etc.) +- `file=` - File where the error occurred (when available) +- `line=` - Line number of the error (when available) +- `col=` - Column number of the error (when available) +- `msg=""` - Sanitized error message with debugging hints + +## Error Types + +### Liquid Errors +- **ParseError**: Syntax errors in Liquid tags (malformed brackets, unknown tags) +- **RenderError**: Runtime errors (unknown variables, missing data) +- **TokenizationError**: Issues parsing Liquid tokens + +### Other Errors +- **TitleFromAutotitleError**: AUTOTITLE link resolution failures +- **EmptyTitleError**: Content becomes empty after rendering + +## Translator Workflow + +### Finding Translation Issues + +1. **View page source** in your browser (Ctrl+U or Cmd+Option+U) +2. **Search for "TRANSLATION_FALLBACK"** (Ctrl+F or Cmd+F) +3. **Review the error information** to understand what went wrong + +### Example Debugging Session + +If you see this comment: +```html + +``` + +This tells you: +- The `intro` property failed to render +- It's a `RenderError` (runtime issue, not syntax) +- The error is in `/content/copilot/getting-started.md` at line 15, column 8 +- There's an unknown variable reference that needs to be fixed + +### Browser Console Helper + +You can also use this JavaScript snippet in the browser console to extract all fallback information: + +```javascript +// Extract all translation fallback comments from the page +const comments = document.documentElement.outerHTML.match(//g) || [] +console.log('Translation fallbacks found:', comments.length) +comments.forEach((comment, i) => { + console.log(`${i + 1}:`, comment) +}) +``` + +## Implementation Details + +### When Comments Are Added + +Comments are added when: +- The page language is not English (`currentLanguage !== 'en'`) +- A translation error occurs that can be fallen back to English +- The output is HTML content (not plain text) + +### When Comments Are NOT Added + +Comments are skipped for: +- English content (no fallback needed) +- Text-only rendering (to avoid breaking plain text output) +- Non-fallbackable errors (these throw and stop rendering) + +### Error Message Sanitization + +Error messages are cleaned up for security and readability: +- Limited to 200 characters maximum +- Double quotes escaped to single quotes +- Newlines converted to spaces +- Multiple whitespace collapsed + +### Performance Impact + +- Minimal overhead: only adds HTML comments when errors occur +- Comment generation: ~1-5ms per error +- HTML size increase: ~100-200 bytes per comment +- No impact on successful translation rendering + +## Code Implementation + +The feature is implemented in `src/languages/lib/render-with-fallback.js`: + +- `createTranslationFallbackComment()` - Generates the HTML comment +- Enhanced `renderContentWithFallback()` - Adds comments for page properties +- Enhanced `executeWithFallback()` - Adds comments for general content + +### Key Functions + +```javascript +// Main rendering function with comment support +export async function renderContentWithFallback(page, property, context, options) + +// General fallback function with comment support +export async function executeWithFallback(context, callable, fallback) +``` + +## Examples + +### Liquid Syntax Error +```html + +

GitHub Actions

+``` + +### Unknown Variable +```html + +

GitHub Copilot helps you code faster and with confidence.

+``` + +### AUTOTITLE Error +```html + +

For more information, see Getting started.

+``` + +### Missing File Reference +```html + +

Welcome to GitHub documentation.

+``` + +## Troubleshooting + +### Common Issues + +**Q: I don't see any TRANSLATION_FALLBACK comments** +A: This means your translations are working correctly! Comments only appear when errors occur. + +**Q: Comments appear in the wrong language** +A: Comments are only added for non-English pages. Check that you're viewing a translated version of the page. + +**Q: The error message is truncated** +A: Messages are limited to 200 characters for readability. The truncation ensures comments don't become too large. + +**Q: File paths show as relative paths** +A: File paths are shown as they exist in the repository structure for easy navigation. + +### Getting Help + +If you need assistance interpreting error messages or fixing translation issues: + +1. Note the error type and message from the comment +2. Check the file and line number mentioned +3. Compare with the working English version +4. Reach out to the docs engineering team with specific error details + +## Technical Notes + +### Browser Compatibility +HTML comments are supported by all browsers and are invisible to end users. + +### Security Considerations +- No sensitive file paths or internal data exposed +- Error messages are sanitized and length-limited +- Only translation-related debugging information included + +### Monitoring +Translation fallback frequency can be monitored by tracking comment generation in logs or analytics. + +This feature helps translation teams identify and fix issues more efficiently while maintaining the reliability of the docs site for all users. \ No newline at end of file diff --git a/src/languages/lib/render-with-fallback.js b/src/languages/lib/render-with-fallback.js index 382f1cba40ad..0dbaf13d2ea3 100644 --- a/src/languages/lib/render-with-fallback.js +++ b/src/languages/lib/render-with-fallback.js @@ -2,7 +2,7 @@ import { renderContent } from '#src/content-render/index.js' import Page from '#src/frame/lib/page.js' import { TitleFromAutotitleError } from '#src/content-render/unified/rewrite-local-links.js' -class EmptyTitleError extends Error {} +export class EmptyTitleError extends Error {} const LIQUID_ERROR_NAMES = new Set(['RenderError', 'ParseError', 'TokenizationError']) export const isLiquidError = (error) => @@ -14,6 +14,64 @@ const isEmptyTitleError = (error) => error instanceof EmptyTitleError const isFallbackableError = (error) => isLiquidError(error) || isAutotitleError(error) || isEmptyTitleError(error) +/** + * Creates an HTML comment with translation fallback error information + * Includes detailed debugging information for translators + */ +export function createTranslationFallbackComment(error, property) { + const errorType = error.name || 'UnknownError' + let errorDetails = [] + + // Add basic error information + errorDetails.push(`TRANSLATION_FALLBACK`) + errorDetails.push(`prop=${property}`) + errorDetails.push(`type=${errorType}`) + + // Extract detailed error information based on error type + if (isLiquidError(error)) { + // For Liquid errors, we can extract rich debugging information + if (error.token) { + if (error.token.file) { + errorDetails.push(`file=${error.token.file}`) + } + if (error.token.getPosition) { + const [line, col] = error.token.getPosition() + errorDetails.push(`line=${line}`) + errorDetails.push(`col=${col}`) + } + } + + // Include the original error message if available + const originalMessage = error.originalError?.message || error.message + if (originalMessage) { + // Clean up the message but keep useful information + let cleanMessage = originalMessage.replace(/\n/g, ' ').replace(/\s+/g, ' ').trim() + + // Limit message length to keep comment manageable + if (cleanMessage.length > 200) { + cleanMessage = cleanMessage.substring(0, 200) + '...' + } + + errorDetails.push(`msg="${cleanMessage.replace(/"/g, "'")}"`) + } + } else if (isAutotitleError(error)) { + // For AUTOTITLE errors, include the error message + if (error.message) { + let cleanMessage = error.message + .replace(/\n/g, ' ') + .replace(/\s+/g, ' ') + .trim() + .substring(0, 200) + errorDetails.push(`msg="${cleanMessage.replace(/"/g, "'")}"`) + } + } else if (isEmptyTitleError(error)) { + // For empty title errors, include the property info + errorDetails.push(`msg="Content became empty after rendering"`) + } + + return `` +} + // Returns a string by wrapping `renderContent()`. The input string to // `renderContent` is one that contains Liquid and Markdown. The output // is HTML. @@ -47,8 +105,18 @@ export async function renderContentWithFallback(page, property, context, options // If you don't change the context, it'll confuse the liquid plugins // like `data.js` that uses `environment.scope.currentLanguage` const enContext = Object.assign({}, context, { currentLanguage: 'en' }) - // Try again! - return await renderContent(englishTemplate, enContext, options) + + // Render the English fallback content + const fallbackContent = await renderContent(englishTemplate, enContext, options) + + // Add HTML comment with error details for non-English languages + // Skip for textOnly rendering to avoid breaking plain text output + if (context.currentLanguage !== 'en' && !options?.textOnly) { + const errorComment = createTranslationFallbackComment(error, property) + return errorComment + '\n' + fallbackContent + } + + return fallbackContent } throw error } @@ -75,7 +143,16 @@ export async function executeWithFallback(context, callable, fallback) { } catch (error) { if (isFallbackableError(error) && context.currentLanguage !== 'en') { const enContext = Object.assign({}, context, { currentLanguage: 'en' }) - return await fallback(enContext) + const fallbackContent = await fallback(enContext) + + // Add HTML comment with error details for non-English languages + // Only for HTML content (detected by presence of HTML tags) + if (typeof fallbackContent === 'string' && /<[^>]+>/.test(fallbackContent)) { + const errorComment = createTranslationFallbackComment(error, 'content') + return errorComment + '\n' + fallbackContent + } + + return fallbackContent } throw error } diff --git a/src/languages/tests/translation-error-comments.js b/src/languages/tests/translation-error-comments.js new file mode 100644 index 000000000000..1217e656e267 --- /dev/null +++ b/src/languages/tests/translation-error-comments.js @@ -0,0 +1,425 @@ +import { describe, expect, test, vi, beforeEach, afterEach } from 'vitest' +import { + createTranslationFallbackComment, + EmptyTitleError, + renderContentWithFallback, + executeWithFallback, +} from '../lib/render-with-fallback.js' +import { TitleFromAutotitleError } from '#src/content-render/unified/rewrite-local-links.js' +import Page from '#src/frame/lib/page.js' + +describe('Translation Error Comments', () => { + // Mock renderContent for integration tests + let mockRenderContent + + beforeEach(() => { + mockRenderContent = vi.fn() + vi.stubGlobal('renderContent', mockRenderContent) + }) + + afterEach(() => { + vi.unstubAllGlobals() + }) + + describe('createTranslationFallbackComment', () => { + describe('Liquid ParseError', () => { + test('includes all fields when token information is available', () => { + const error = new Error("Unknown tag 'badtag', line:1, col:3") + error.name = 'ParseError' + error.token = { + file: '/content/test/article.md', + getPosition: () => [1, 3], + } + + const result = createTranslationFallbackComment(error, 'rawTitle') + + expect(result).toContain('')).toBe(true) + }) + }) + + describe('Liquid RenderError', () => { + test('includes original error message when available', () => { + const error = new Error("Unknown variable 'variables.nonexistent.value'") + error.name = 'RenderError' + error.token = { + file: '/content/test/intro.md', + getPosition: () => [3, 15], + } + error.originalError = new Error('Variable not found: variables.nonexistent.value') + + const result = createTranslationFallbackComment(error, 'rawIntro') + + expect(result).toContain('prop=rawIntro') + expect(result).toContain('type=RenderError') + expect(result).toContain('file=/content/test/intro.md') + expect(result).toContain('line=3') + expect(result).toContain('col=15') + expect(result).toContain('msg="Variable not found: variables.nonexistent.value"') + }) + + test('falls back to main error message when no originalError', () => { + const error = new Error('Main error message') + error.name = 'RenderError' + error.token = { + file: '/content/test.md', + getPosition: () => [1, 1], + } + + const result = createTranslationFallbackComment(error, 'rawTitle') + + expect(result).toContain('msg="Main error message"') + }) + }) + + describe('Liquid TokenizationError', () => { + test('includes tokenization error details', () => { + const error = new Error('Unexpected token, line:1, col:10') + error.name = 'TokenizationError' + error.token = { + file: '/content/test/page.md', + getPosition: () => [1, 10], + } + + const result = createTranslationFallbackComment(error, 'markdown') + + expect(result).toContain('prop=markdown') + expect(result).toContain('type=TokenizationError') + expect(result).toContain('file=/content/test/page.md') + expect(result).toContain('line=1') + expect(result).toContain('col=10') + expect(result).toContain('msg="Unexpected token, line:1, col:10"') + }) + }) + + describe('TitleFromAutotitleError', () => { + test('includes AUTOTITLE error message', () => { + const error = new TitleFromAutotitleError( + 'Could not find target page for [AUTOTITLE] link to invalid-link', + ) + error.name = 'TitleFromAutotitleError' + + const result = createTranslationFallbackComment(error, 'rawTitle') + + expect(result).toContain('prop=rawTitle') + expect(result).toContain('type=TitleFromAutotitleError') + expect(result).toContain( + 'msg="Could not find target page for [AUTOTITLE] link to invalid-link"', + ) + // Should not contain file/line/col since AUTOTITLE errors don't have tokens + expect(result).not.toContain('file=') + expect(result).not.toContain('line=') + expect(result).not.toContain('col=') + }) + }) + + describe('EmptyTitleError', () => { + test('includes empty content message', () => { + const error = new EmptyTitleError("output for property 'rawTitle' became empty") + error.name = 'EmptyTitleError' + + const result = createTranslationFallbackComment(error, 'rawTitle') + + expect(result).toContain('prop=rawTitle') + expect(result).toContain('type=EmptyTitleError') + expect(result).toContain('msg="Content became empty after rendering"') + }) + }) + + describe('Error handling edge cases', () => { + test('handles error with no token information gracefully', () => { + const error = new Error('Generic liquid error without token info') + error.name = 'RenderError' + // No token property + + const result = createTranslationFallbackComment(error, 'rawIntro') + + expect(result).toContain('prop=rawIntro') + expect(result).toContain('type=RenderError') + expect(result).toContain('msg="Generic liquid error without token info"') + // Should not contain file/line/col since no token + expect(result).not.toContain('file=') + expect(result).not.toContain('line=') + expect(result).not.toContain('col=') + }) + + test('handles error with token but no file', () => { + const error = new Error('Error message') + error.name = 'ParseError' + error.token = { + // No file property + getPosition: () => [5, 10], + } + + const result = createTranslationFallbackComment(error, 'markdown') + + expect(result).toContain('line=5') + expect(result).toContain('col=10') + expect(result).not.toContain('file=') + }) + + test('handles error with token but no getPosition method', () => { + const error = new Error('Error message') + error.name = 'ParseError' + error.token = { + file: '/content/test.md', + // No getPosition method + } + + const result = createTranslationFallbackComment(error, 'title') + + expect(result).toContain('file=/content/test.md') + expect(result).not.toContain('line=') + expect(result).not.toContain('col=') + }) + + test('truncates very long error messages', () => { + const longMessage = 'A'.repeat(300) // Very long error message + const error = new Error(longMessage) + error.name = 'ParseError' + + const result = createTranslationFallbackComment(error, 'rawTitle') + + expect(result).toContain('msg="') + expect(result).toContain('...') + + // Extract the message part to verify truncation + const msgMatch = result.match(/msg="([^"]*)"/) + expect(msgMatch).toBeTruthy() + expect(msgMatch[1].length).toBeLessThanOrEqual(203) // 200 + '...' + }) + + test('properly escapes quotes in error messages', () => { + const error = new Error('Error with "double quotes" and more') + error.name = 'RenderError' + + const result = createTranslationFallbackComment(error, 'rawTitle') + + expect(result).toContain('msg="Error with \'double quotes\' and more"') + expect(result).not.toContain('msg="Error with "double quotes"') + }) + + test('handles error with unknown type', () => { + const error = new Error('Some error') + // No name property (will default to 'Error') + + const result = createTranslationFallbackComment(error, 'content') + + expect(result).toContain('type=Error') + expect(result).toContain('prop=content') + // Non-liquid errors without specific handling don't get messages + expect(result).not.toContain('msg=') + }) + + test('handles error with no message', () => { + const error = new Error() + error.name = 'ParseError' + // Message will be empty string by default + + const result = createTranslationFallbackComment(error, 'title') + + expect(result).toContain('type=ParseError') + expect(result).toContain('prop=title') + // Should handle gracefully, might not have msg or have empty msg + }) + + test('cleans up multiline messages', () => { + const error = new Error('Line 1\nLine 2\n Line 3 \n\nLine 5') + error.name = 'RenderError' + + const result = createTranslationFallbackComment(error, 'content') + + expect(result).toContain('msg="Line 1 Line 2 Line 3 Line 5"') + expect(result).not.toContain('\n') + }) + }) + + describe('Comment format validation', () => { + test('comment format is valid HTML', () => { + const error = new Error('Test error') + error.name = 'ParseError' + error.token = { + file: '/content/test.md', + getPosition: () => [1, 1], + } + + const result = createTranslationFallbackComment(error, 'rawTitle') + + // Should be a proper HTML comment + expect(result.startsWith('')).toBe(true) + + // Should be on a single line + expect(result).not.toContain('\n') + }) + + test('contains all required fields when available', () => { + const error = new Error('Detailed error message') + error.name = 'RenderError' + error.token = { + file: '/content/detailed-test.md', + getPosition: () => [42, 15], + } + + const result = createTranslationFallbackComment(error, 'rawIntro') + + expect(result).toContain('TRANSLATION_FALLBACK') + expect(result).toContain('prop=rawIntro') + expect(result).toContain('type=RenderError') + expect(result).toContain('file=/content/detailed-test.md') + expect(result).toContain('line=42') + expect(result).toContain('col=15') + expect(result).toContain('msg="Detailed error message"') + }) + + test('maintains consistent field order', () => { + const error = new Error('Test message') + error.name = 'ParseError' + error.token = { + file: '/content/test.md', + getPosition: () => [1, 1], + } + + const result = createTranslationFallbackComment(error, 'title') + + // Should follow the expected structure with all required fields + expect(result.startsWith('')).toBe(true) + }) + }) + }) + + describe('Integration Tests', () => { + describe('renderContentWithFallback', () => { + test('adds HTML comment when translation fails and fallback succeeds', async () => { + // Mock a simple page object that satisfies instanceof Page check + const mockPage = Object.create(Page.prototype) + mockPage.rawTitle = '{% badtag %}' + + const context = { + currentLanguage: 'ja', + getEnglishPage: () => { + const enPage = Object.create(Page.prototype) + enPage.rawTitle = 'English Title' + return enPage + }, + } + + // Mock renderContent to simulate error for Japanese, success for English + mockRenderContent.mockImplementation((template, context) => { + if (context.currentLanguage !== 'en' && template.includes('badtag')) { + const error = new Error("Unknown tag 'badtag'") + error.name = 'ParseError' + error.token = { + file: '/content/test.md', + getPosition: () => [1, 5], + } + throw error + } + return context.currentLanguage === 'en' ? 'English Title' : template + }) + + const result = await renderContentWithFallback(mockPage, 'rawTitle', context) + + expect(result).toContain('