Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 70 additions & 32 deletions content/copilot/reference/copilot-feature-matrix.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,23 @@ contentType: reference

**Key:**

* ✓ = supported
* ✗ = not supported
* P = under preview
* C = closing down
{% for level in tables.copilot.matrix-meta.supportLevels %}
* {{ level.symbol }} = {{ level.label }}
{%- endfor %}
{%- assign anyNotApplicable = false %}
{%- for ideKey in tables.copilot.matrix-meta.ideOrder %}
{%- assign naList = tables.copilot.matrix[ideKey].notApplicable %}
{%- if naList and naList.size > 0 %}{% assign anyNotApplicable = true %}{% endif %}
{%- endfor %}
{%- if anyNotApplicable %}
* — = does not apply to this IDE
{%- endif %}

<!-- Source for the following tables lives in data/tables/copilot/copilot-matrix.yml -->
{%- comment %}
Source for the following tables lives in:
data/tables/copilot/matrix-meta.yml shared config: ideOrder, featureOrder, supportLevels
data/tables/copilot/matrix/<ide>.yml one file per IDE, owned by that IDE's product owner
{%- endcomment %}

{% ides %}

Expand All @@ -30,31 +41,34 @@ The following table shows supported {% data variables.product.prodname_copilot_s

{%- comment %}
This loop generates the "Features by IDE" comparison table:
- Outer loop: Iterates through each feature from VS Code's feature list (using VS Code as the canonical source)
- Inner loop: For each feature, iterates through all IDEs to check support in their latest versions
- Gets the latest version using ideEntry[1].versions | first
- Looks up the support level for that feature in that version
- Outputs ✓ (supported), P (preview), or ✗ (not supported)
- Column order comes from matrix-meta.ideOrder
- Row order comes from matrix-meta.featureOrder, so a feature that ships first in an
IDE other than VS Code still appears here
- For each cell, looks up the feature in that IDE's latest version (versions | first)
- A feature listed in an IDE's `notApplicable` renders as — (does not apply), which is
distinct from ✗ (not supported)
Example row: | Agent mode | ✓ | ✓ | P | ✗ | ... |
{%- endcomment %}
{%- assign matrix = tables.copilot.matrix %}
{%- assign meta = tables.copilot.matrix-meta %}

| Feature{%- for entry in tables.copilot.copilot-matrix.ides %} | {{ entry[0] }}{%- endfor %} |
|:----{%- for entry in tables.copilot.copilot-matrix.ides %}|:----:{%- endfor %}|
{%- for featureEntry in tables.copilot.copilot-matrix.ides["VS Code"].features %}
| {{ featureEntry[0] }}{%- for ideEntry in tables.copilot.copilot-matrix.ides %}{%- assign latestVersion = ideEntry[1].versions | first %}{%- assign supportLevel = ideEntry[1].features[featureEntry[0]][latestVersion] %} | {%- case supportLevel -%}{%- when "supported" %}✓{%- when "preview" %}P{%- when "closing-down" %}C{%- else %}✗{%- endcase -%}{%- endfor %} |
| Feature{%- for ideKey in meta.ideOrder %} | {{ matrix[ideKey].name }}{%- endfor %} |
|:----{%- for ideKey in meta.ideOrder %}|:----:{%- endfor %}|
{%- for feature in meta.featureOrder %}
| {{ feature }}{%- for ideKey in meta.ideOrder %}{%- assign ide = matrix[ideKey] %}{%- assign latestVersion = ide.versions | first %}{%- assign supportLevel = ide.features[feature][latestVersion] %} | {%- if ide.notApplicable contains feature -%}—{%- else -%}{%- case supportLevel -%}{%- when "supported" %}✓{%- when "preview" %}P{%- when "closing-down" %}C{%- else %}✗{%- endcase -%}{%- endif -%}{%- endfor %} |
{%- endfor %}

{% endides %}

{% vscode %}

{% assign ideEntry = tables.copilot.copilot-matrix.ides["VS Code"] %}
{% assign ideEntry = tables.copilot.matrix.vs-code %}

## Features by VS Code version

The following table shows supported {% data variables.product.prodname_copilot_short %} features across recent versions of the IDE.
The following table shows supported {% data variables.product.prodname_copilot_short %} features across recent versions of the {% if ideEntry.versionType == "extension" %}{% data variables.copilot.copilot_extension %} for the {% endif %}IDE.

{%- comment %} Use the predefined versionGroups from JSON data {%- endcomment %}
{%- comment %} Use the predefined versionGroups from the IDE's data file {%- endcomment %}
{% for groupEntry in ideEntry.versionGroups %}
{%- assign groupName = groupEntry[0] %}
{%- assign groupVersions = groupEntry[1] %}
Expand All @@ -66,20 +80,24 @@ The following table shows supported {% data variables.product.prodname_copilot_s
{%- for featureEntry in ideEntry.features %}
| {{ featureEntry[0] }}{%- for version in groupVersions %}{%- assign supportLevel = featureEntry[1][version] %} | {%- case supportLevel -%}{%- when "supported" %}✓{%- when "preview" %}P{%- when "closing-down" %}C{%- else %}✗{%- endcase -%}{%- endfor %} |
{%- endfor %}
{%- comment %} Features that do not apply to this IDE at all, rendered as — not ✗ {%- endcomment %}
{%- for naFeature in ideEntry.notApplicable %}
| {{ naFeature }}{%- for version in groupVersions %} | —{%- endfor %} |
{%- endfor %}

{% endfor %}

{% endvscode %}

{% visualstudio %}

{% assign ideEntry = tables.copilot.copilot-matrix.ides["Visual Studio"] %}
{% assign ideEntry = tables.copilot.matrix.visual-studio %}

## Features by Visual Studio version

The following table shows supported {% data variables.product.prodname_copilot_short %} features across recent versions of the IDE.
The following table shows supported {% data variables.product.prodname_copilot_short %} features across recent versions of the {% if ideEntry.versionType == "extension" %}{% data variables.copilot.copilot_extension %} for the {% endif %}IDE.

{%- comment %} Use the predefined versionGroups from JSON data {%- endcomment %}
{%- comment %} Use the predefined versionGroups from the IDE's data file {%- endcomment %}
{% for groupEntry in ideEntry.versionGroups %}
{%- assign groupName = groupEntry[0] %}
{%- assign groupVersions = groupEntry[1] %}
Expand All @@ -91,20 +109,24 @@ The following table shows supported {% data variables.product.prodname_copilot_s
{%- for featureEntry in ideEntry.features %}
| {{ featureEntry[0] }}{%- for version in groupVersions %}{%- assign supportLevel = featureEntry[1][version] %} | {%- case supportLevel -%}{%- when "supported" %}✓{%- when "preview" %}P{%- when "closing-down" %}C{%- else %}✗{%- endcase -%}{%- endfor %} |
{%- endfor %}
{%- comment %} Features that do not apply to this IDE at all, rendered as — not ✗ {%- endcomment %}
{%- for naFeature in ideEntry.notApplicable %}
| {{ naFeature }}{%- for version in groupVersions %} | —{%- endfor %} |
{%- endfor %}

{% endfor %}

{% endvisualstudio %}

{% jetbrains %}

{% assign ideEntry = tables.copilot.copilot-matrix.ides["JetBrains"] %}
{% assign ideEntry = tables.copilot.matrix.jetbrains %}

## Features by JetBrains version

The following table shows supported {% data variables.product.prodname_copilot_short %} features across recent versions of the {% data variables.copilot.copilot_extension %} for the IDE.
The following table shows supported {% data variables.product.prodname_copilot_short %} features across recent versions of the {% if ideEntry.versionType == "extension" %}{% data variables.copilot.copilot_extension %} for the {% endif %}IDE.

{%- comment %} Use the predefined versionGroups from JSON data {%- endcomment %}
{%- comment %} Use the predefined versionGroups from the IDE's data file {%- endcomment %}
{% for groupEntry in ideEntry.versionGroups %}
{%- assign groupName = groupEntry[0] %}
{%- assign groupVersions = groupEntry[1] %}
Expand All @@ -116,20 +138,24 @@ The following table shows supported {% data variables.product.prodname_copilot_s
{%- for featureEntry in ideEntry.features %}
| {{ featureEntry[0] }}{%- for version in groupVersions %}{%- assign supportLevel = featureEntry[1][version] %} | {%- case supportLevel -%}{%- when "supported" %}✓{%- when "preview" %}P{%- when "closing-down" %}C{%- else %}✗{%- endcase -%}{%- endfor %} |
{%- endfor %}
{%- comment %} Features that do not apply to this IDE at all, rendered as — not ✗ {%- endcomment %}
{%- for naFeature in ideEntry.notApplicable %}
| {{ naFeature }}{%- for version in groupVersions %} | —{%- endfor %} |
{%- endfor %}

{% endfor %}

{% endjetbrains %}

{% eclipse %}

{% assign ideEntry = tables.copilot.copilot-matrix.ides["Eclipse"] %}
{% assign ideEntry = tables.copilot.matrix.eclipse %}

## Features by Eclipse version

The following table shows supported {% data variables.product.prodname_copilot_short %} features across recent versions of the {% data variables.copilot.copilot_extension %} for the IDE.
The following table shows supported {% data variables.product.prodname_copilot_short %} features across recent versions of the {% if ideEntry.versionType == "extension" %}{% data variables.copilot.copilot_extension %} for the {% endif %}IDE.

{%- comment %} Use the predefined versionGroups from JSON data {%- endcomment %}
{%- comment %} Use the predefined versionGroups from the IDE's data file {%- endcomment %}
{% for groupEntry in ideEntry.versionGroups %}
{%- assign groupName = groupEntry[0] %}
{%- assign groupVersions = groupEntry[1] %}
Expand All @@ -141,20 +167,24 @@ The following table shows supported {% data variables.product.prodname_copilot_s
{%- for featureEntry in ideEntry.features %}
| {{ featureEntry[0] }}{%- for version in groupVersions %}{%- assign supportLevel = featureEntry[1][version] %} | {%- case supportLevel -%}{%- when "supported" %}✓{%- when "preview" %}P{%- when "closing-down" %}C{%- else %}✗{%- endcase -%}{%- endfor %} |
{%- endfor %}
{%- comment %} Features that do not apply to this IDE at all, rendered as — not ✗ {%- endcomment %}
{%- for naFeature in ideEntry.notApplicable %}
| {{ naFeature }}{%- for version in groupVersions %} | —{%- endfor %} |
{%- endfor %}

{% endfor %}

{% endeclipse %}

{% xcode %}

{% assign ideEntry = tables.copilot.copilot-matrix.ides["Xcode"] %}
{% assign ideEntry = tables.copilot.matrix.xcode %}

## Features by Xcode version

The following table shows supported {% data variables.product.prodname_copilot_short %} features across recent versions of the {% data variables.copilot.copilot_extension %} for the IDE.
The following table shows supported {% data variables.product.prodname_copilot_short %} features across recent versions of the {% if ideEntry.versionType == "extension" %}{% data variables.copilot.copilot_extension %} for the {% endif %}IDE.

{%- comment %} Use the predefined versionGroups from JSON data {%- endcomment %}
{%- comment %} Use the predefined versionGroups from the IDE's data file {%- endcomment %}
{% for groupEntry in ideEntry.versionGroups %}
{%- assign groupName = groupEntry[0] %}
{%- assign groupVersions = groupEntry[1] %}
Expand All @@ -166,20 +196,24 @@ The following table shows supported {% data variables.product.prodname_copilot_s
{%- for featureEntry in ideEntry.features %}
| {{ featureEntry[0] }}{%- for version in groupVersions %}{%- assign supportLevel = featureEntry[1][version] %} | {%- case supportLevel -%}{%- when "supported" %}✓{%- when "preview" %}P{%- when "closing-down" %}C{%- else %}✗{%- endcase -%}{%- endfor %} |
{%- endfor %}
{%- comment %} Features that do not apply to this IDE at all, rendered as — not ✗ {%- endcomment %}
{%- for naFeature in ideEntry.notApplicable %}
| {{ naFeature }}{%- for version in groupVersions %} | —{%- endfor %} |
{%- endfor %}

{% endfor %}

{% endxcode %}

{% vimneovim %}

{% assign ideEntry = tables.copilot.copilot-matrix.ides["NeoVim"] %}
{% assign ideEntry = tables.copilot.matrix.neovim %}

## Features by NeoVim version

The following table shows supported {% data variables.product.prodname_copilot_short %} features across recent versions of the {% data variables.copilot.copilot_extension %} for the IDE.
The following table shows supported {% data variables.product.prodname_copilot_short %} features across recent versions of the {% if ideEntry.versionType == "extension" %}{% data variables.copilot.copilot_extension %} for the {% endif %}IDE.

{%- comment %} Use the predefined versionGroups from JSON data {%- endcomment %}
{%- comment %} Use the predefined versionGroups from the IDE's data file {%- endcomment %}
{% for groupEntry in ideEntry.versionGroups %}
{%- assign groupName = groupEntry[0] %}
{%- assign groupVersions = groupEntry[1] %}
Expand All @@ -191,6 +225,10 @@ The following table shows supported {% data variables.product.prodname_copilot_s
{%- for featureEntry in ideEntry.features %}
| {{ featureEntry[0] }}{%- for version in groupVersions %}{%- assign supportLevel = featureEntry[1][version] %} | {%- case supportLevel -%}{%- when "supported" %}✓{%- when "preview" %}P{%- when "closing-down" %}C{%- else %}✗{%- endcase -%}{%- endfor %} |
{%- endfor %}
{%- comment %} Features that do not apply to this IDE at all, rendered as — not ✗ {%- endcomment %}
{%- for naFeature in ideEntry.notApplicable %}
| {{ naFeature }}{%- for version in groupVersions %} | —{%- endfor %} |
{%- endfor %}

{% endfor %}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,24 @@ You can import a ruleset from another repository or organization using the expor
{% data reusables.repositories.import-a-ruleset %}

{% endif %}

{% ifversion rule-insights-dashboard-org-level %}

## Viewing the rule insights dashboard

Use the rule insights dashboard to review the evaluation activity of rulesets across your organization. You can:

* Review aggregated rule evaluation metrics across all repositories in your organization to understand where and how your rulesets take effect.
* Identify the repositories with the most bypasses so you can prioritize your review.
* Filter results by evaluation status, branch, ruleset, and date range to focus on the activity that matters to you.
* Export the data to a CSV file for further analysis.

{% data reusables.profile.access_org %}
{% data reusables.profile.org_settings %}
1. {% data reusables.user-settings.code-planning-automation %} click **{% octicon "repo" aria-hidden="true" aria-label="repo" %} Repository**, then click **Dashboard**.

{% endif %}

{% ifversion not fpt %}

## Viewing insights for rulesets
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,15 +113,15 @@ You can view insights for rulesets to see how rulesets are affecting a repositor

{% ifversion rule-insights-dashboard %}

### Rule insights dashboard
### Viewing the rule insights dashboard

> [!NOTE]
> The rule insights dashboard is in {% data variables.release-phases.public_preview %} and subject to change. It is available for {% data variables.product.prodname_team %} and {% data variables.product.prodname_ghe_cloud %} plans.
> The rule insights dashboard is available for {% data variables.product.prodname_team %} and {% data variables.product.prodname_ghe_cloud %} plans.

The rule insights dashboard gives you a visual, high-level summary of rule evaluation activity for your repository, including:

- **Successes, failures, and bypasses over time**: A chart showing trends in rule evaluation results, helping you spot spikes in blocked pushes or unusual patterns.
- **Top bypassers**: A list of the most active bypassers for your rulesets.
* **Successes, failures, and bypasses over time**: A chart showing trends in rule evaluation results, helping you spot spikes in blocked pushes or unusual patterns.
* **Top bypassers**: A list of the most active bypassers for your rulesets.

Each chart links back to the rule insights page with filters prefilled, so you can quickly drill into specific statuses, bypassers, or time ranges.

Expand All @@ -132,6 +132,8 @@ To view the dashboard:
1. In the left sidebar, under "Code and automation," click **Rules**, then click **Insights**.
1. At the top of the "Rule Insights" page, view the dashboard charts for an overview of rule evaluation activity.

At the organization level, you can view the rule insights dashboard to review the evaluation activity of rulesets across your organization. See [AUTOTITLE](/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-the-rule-insights-dashboard).

{% endif %}

{% endif %}
Expand Down
6 changes: 6 additions & 0 deletions data/features/rule-insights-dashboard-org-level.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Rule insights dashboard at the organization level, issue #23276

versions:
fpt: '*'
ghec: '*'
ghes: '>=3.23'
Loading
Loading