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
2 changes: 1 addition & 1 deletion content/code-security/concepts/about-code-quality.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ With {% data variables.product.prodname_code_quality_short %}, you can:
* Review clear explanations for findings and apply one-click **{% data variables.product.prodname_copilot_short %}-powered autofixes**.
* Use **repository dashboards** to track reliability and maintainability scores, identify areas needing attention, and prioritize remediation.
* Monitor **organization dashboards** to understand the code health of your repositories at a glance and determine which repositories to investigate further.
* Set up **rulesets** for pull requests to enforce code quality standards and block changes that do not meet your criteria.
* Set up **rulesets** for pull requests to enforce code quality standards and block changes that do not meet your criteria. You can also enforce coverage thresholds with rulesets to block pull requests that don't meet a minimum coverage percentage or that cause coverage to drop by more than the allowed amount.
* Upload **code coverage** reports to see test coverage metrics directly on pull requests, helping reviewers identify untested code.
* Easily assign remediation work to **{% data variables.copilot.copilot_cloud_agent %}**, if you have a {% data variables.product.prodname_copilot_short %} license.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ children:
- /set-up-code-coverage
- /interpret-results
- /set-pr-thresholds
- /restrict-code-coverage
- /unblock-your-pr
redirect_from:
- /code-security/code-quality/how-tos
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
title: Restricting code coverage on pull requests
shortTitle: Restrict code coverage
intro: Protect your test coverage by automatically blocking pull requests that fall below the coverage levels your team requires.
versions:
feature: code-quality
permissions: '{% data reusables.permissions.code-quality-repo-enable %}'
contentType: how-tos
category:
- Improve code quality
---

> [!NOTE]
> This feature is in {% data variables.release-phases.public_preview %} and subject to change.

## Prerequisites

* {% data variables.product.prodname_code_quality %} is enabled on the repository.
* Code coverage data is uploaded to {% data variables.product.github %} for the pull request branch. See [AUTOTITLE](/code-security/how-tos/maintain-quality-code/set-up-code-coverage).

## Creating a coverage threshold rule

{% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.sidebar-settings %}
{% data reusables.repositories.repo-rulesets-settings %}
1. Create a new branch ruleset or click an existing one to edit it.
1. Under "Branch rules", select **Restrict code coverage**.
1. Expand **Additional settings** to configure thresholds. A value of 0 means that the threshold is disabled.

* **Minimum coverage percentage**: enter a value to block pull requests where aggregated coverage falls below this percentage.
* **Maximum coverage drop**: enter a value to block pull requests where coverage drops by more than this many percentage points relative to the default branch.

1. Click **Create** or **Save changes**.

{% ifversion repo-rules-enterprise %}

> [!TIP]
> Consider setting your ruleset to **Evaluate** mode before switching to **Active**. This lets you observe which pull requests would have been blocked without enforcing the rule, giving you a chance to calibrate your thresholds.
{% endif %}
Original file line number Diff line number Diff line change
Expand Up @@ -127,3 +127,4 @@ jobs:
## Next steps

* **Interpret results:** Understand coverage metrics and per-file breakdowns on your pull requests. See [AUTOTITLE](/code-security/how-tos/maintain-quality-code/interpret-results).
* **Enforce coverage thresholds:** Block pull requests that don't meet a minimum coverage percentage or that cause coverage to drop. See [AUTOTITLE](/code-security/how-tos/maintain-quality-code/restrict-code-coverage).
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Resolving a block on your pull request
shortTitle: Unblock your PR
intro: Identify and resolve a code quality block on your pull request so you can merge your changes.
intro: Identify and resolve a code quality or coverage threshold block on your pull request so you can merge your changes.
versions:
feature: code-quality
permissions: '{% data reusables.permissions.code-quality-see-repo-findings %}'
Expand All @@ -16,10 +16,14 @@ category:

## Understanding why your pull request is blocked

Repository administrators can set code quality gates for maintainability and reliability using {% data variables.product.prodname_code_quality %}. When you open a pull request, a scan automatically runs to check your changes against these standards.
Repository administrators can set quality gates using {% data variables.product.prodname_code_quality %}. When you open a pull request, checks automatically run to evaluate your changes against these standards.

If your pull request introduces code that falls below the required quality threshold, you’ll see a merge block banner at the bottom of the pull request in the Checks section:
"Merging is blocked: Code quality findings were detected."
There are two types of blocks:

* **Code quality findings**: your changes introduce issues that fall below the required quality threshold.
* **Coverage threshold**: your changes cause code coverage to fall below a required minimum, or cause coverage to drop by more than a permitted amount relative to the default branch.

If your pull request introduces code that falls below the required quality threshold, you'll see a merge block banner at the bottom of the pull request in the "Checks" section: "Merging is blocked: Code quality findings were detected."

![Screenshot of the merge block banner in the Checks section of a pull request.](/assets/images/help/code-quality/code-quality-merge-block.png)

Expand Down Expand Up @@ -64,6 +68,19 @@ In order to unblock your pull request, you need to resolve each required finding

To see if you've met the code quality requirements, look at the "Checks" section at the bottom of your pull request. The merge block banner should no longer be present, and you should be able to merge your changes as usual.

## Resolving a coverage threshold block

If your pull request is blocked by a coverage threshold rule, you'll see a merge block banner in the "Checks" section with a message describing which threshold was not met. For example:

* "Coverage 22.0% is below minimum 50.0%": your pull request branch coverage is below the minimum coverage percentage configured in the ruleset.
* "Coverage decreased by 2.5%, maximum allowed drop is 1.0%": your changes caused coverage to drop by more than the permitted amount relative to the default branch.

To unblock your pull request, you need to add or modify tests so that more of the codebase is executed:

1. Review the coverage summary comment on your pull request to identify which files or areas lack coverage.
1. Add or update tests to increase execution coverage.
1. Push your changes. The coverage check will re-run automatically.

## Next steps

Reduce technical debt by fixing findings in recently changed files. See [AUTOTITLE](/code-security/code-quality/tutorials/improve-recent-merges).
79 changes: 79 additions & 0 deletions content/copilot/concepts/agents/copilot-in-jetbrains.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
---
title: Using GitHub Copilot in JetBrains IDEs
shortTitle: Copilot in JetBrains
intro: 'Learn about the different ways to use {% data variables.product.prodname_copilot %} in {% data variables.product.prodname_jetbrains_ides %}, including the {% data variables.product.prodname_copilot %} plugin, JetBrains AI Assistant, and {% data variables.copilot.copilot_cli_short %}.'
versions:
feature: copilot
contentType: concepts
category:
- Learn about Copilot
allowTitleToDifferFromFilename: true
---

## Introduction

There are three ways to use {% data variables.product.prodname_copilot %} in {% data variables.product.prodname_jetbrains_ides %}: the {% data variables.product.prodname_copilot %} plugin, {% data variables.product.prodname_copilot %} as an agent in JetBrains AI Assistant, and {% data variables.copilot.copilot_cli %} in the integrated terminal. Each entry point provides a different set of capabilities depending on how you prefer to work.

## Comparing entry points

| | {% data variables.product.prodname_copilot %} plugin | {% data variables.product.prodname_copilot %} in AI Assistant | {% data variables.copilot.copilot_cli_short %} |
|---|---|---|---|
| **Best for** | Comprehensive AI coding workflow | Quick {% data variables.product.prodname_copilot_short %} access without a separate plugin | Terminal-first workflows |
| **Entry point** | Chat panel, inline chat, code suggestions, code review, commit message | Default agent picker, ACP Registry | Terminal or shell |
| **Code completion** | Yes | Not included | Not included |
| **Next edit suggestions** | Yes | Coming soon | Not included |
| **Agentic experience** | Multiple agent harnesses | {% data variables.product.prodname_copilot_short %} as agent via ACP, Default agent picker | {% data variables.copilot.copilot_cli_short %} |
| **IDE tools** | Yes | Yes | Not included |
| **Model selection** | Yes | Yes | Yes |
| **Inline chat** | Yes | Not included | Not included |
| **Code review** | Yes | Not included | Not included |
| **Commit message generation** | Yes | Not included | Not included |
| **Subscription** | {% data variables.product.prodname_copilot %} | {% data variables.product.prodname_copilot %} | {% data variables.product.prodname_copilot %} |

## {% data variables.product.prodname_copilot %} plugin

The {% data variables.product.prodname_copilot %} plugin for {% data variables.product.prodname_jetbrains_ides %} is the most comprehensive way to use {% data variables.product.prodname_copilot_short %} and is the recommended choice.

The plugin is transitioning from its local agent harness to {% data variables.copilot.copilot_cli_short %} as the default agent harness, which brings faster feature parity and higher-quality results. For more information, see [{% data variables.copilot.copilot_cli_short %} is becoming the default agent harness in {% data variables.product.prodname_copilot %} for JetBrains](https://devblogs.microsoft.com/java/github-copilot-for-jetbrains-is-moving-to-copilot-cli-as-the-default-agent-harness/). For installation instructions, see [AUTOTITLE](/copilot/how-tos/set-up/install-copilot-extension).

* **Code completion and next edit suggestions**: {% data variables.product.prodname_copilot_short %} suggests completions as you type and proactively predicts your next intended edit.
* **Multiple agent harnesses**: The plugin ships its own agent experience and partners with other agent providers, giving you multiple interaction modes.
* **Full model and feature support**: All {% data variables.copilot.copilot_chat_short %} models, code completion modes, and bring-your-own-key features are available as they are released.
* **Inline chat**: Explain, refactor, document, or generate code directly in the editor gutter, without switching to a separate panel.
* **Code review**: {% data variables.product.prodname_copilot_short %} analyzes your changes and surfaces actionable feedback, flagging potential bugs, style violations, and logic issues.
* **Commit message generation**: {% data variables.product.prodname_copilot_short %} inspects your staged changes and generates a clear, conventional commit message.

## {% data variables.product.prodname_copilot %} in JetBrains AI Assistant

> [!NOTE]
> {% data variables.product.prodname_copilot %} in AI Assistant provides chat and agent capabilities only. It does not include code completion, next edit suggestions, inline chat, code review, or commit message generation.

{% data variables.product.prodname_copilot %} is available as a native agent in JetBrains AI Assistant through the Agent Client Protocol (ACP). The ACP is an open standard for connecting AI agents to the IDE. If you have a valid {% data variables.product.prodname_copilot_short %} subscription, {% data variables.product.prodname_copilot_short %} appears in the AI Assistant agent picker automatically.

This integration is designed for developers who prefer to work inside the AI Assistant chat panel or who want {% data variables.product.prodname_copilot_short %} available without installing an additional plugin.

* **No updates required**: The {% data variables.product.prodname_copilot_short %} agent is bundled directly with AI Assistant and kept current automatically. No separate plugin to install, update, or maintain.
* **Chat-centric workflow**: Ideal for multi-step reasoning tasks—describe a goal, let {% data variables.product.prodname_copilot_short %} plan and propose changes, and iterate conversationally.
* **Model selection**: Switch {% data variables.product.prodname_copilot_short %} models or adjust reasoning depth without leaving the chat panel.

### Using {% data variables.product.prodname_copilot %} in AI Assistant

1. Open JetBrains AI Assistant by pressing <kbd>Alt</kbd>+<kbd>A</kbd> (Windows/Linux) or <kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>A</kbd> (macOS), or click the AI Assistant icon in the right tool window.
1. In the agent picker dropdown at the top of the chat panel, select **{% data variables.product.prodname_copilot %}**.
1. Enter a prompt and start chatting.

### The ACP Registry

The ACP Registry is the catalog of agents that AI Assistant knows about. When the IDE starts, it consults the registry to discover which agents are available. {% data variables.product.prodname_copilot %}'s ACP entry is part of the default registry, so {% data variables.product.prodname_copilot_short %} appears in your agent list automatically when you have a valid subscription and the required credentials in place.

For more information about ACP, see the [ACP documentation](https://agentclientprotocol.com/get-started/introduction). For technical details on running {% data variables.copilot.copilot_cli_short %} as an ACP server, see [AUTOTITLE](/copilot/reference/copilot-cli-reference/acp-server).

## {% data variables.copilot.copilot_cli %} in the integrated terminal

{% data variables.copilot.copilot_cli %} brings {% data variables.product.prodname_copilot_short %}'s capabilities directly to the terminal. It is optimized for command-line workflows and can run on macOS, Linux, or Windows.

## Further reading

* [AUTOTITLE](/copilot/how-tos/chat-with-copilot/chat-in-ide)
* [AUTOTITLE](/copilot/how-tos/set-up/install-copilot-extension)
* [AUTOTITLE](/copilot/how-tos/use-ai-models/change-the-chat-model)
1 change: 1 addition & 0 deletions content/copilot/concepts/agents/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ children:
- /cloud-agent
- /copilot-cli
- /github-copilot-app
- /copilot-in-jetbrains
- /code-review
- /about-github-agentic-workflows
- /copilot-memory
Expand Down
4 changes: 2 additions & 2 deletions content/copilot/concepts/models/auto-model-selection.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ More than just a model picker, {% data variables.copilot.copilot_auto_model_sele

### Auto with task optimization

> [!NOTE] {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} with task optimization is generally available in {% data variables.copilot.copilot_chat_short %} on the {% data variables.product.github %} website and in {% data variables.product.prodname_vscode_shortname %}.
> [!NOTE] {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} with task optimization is generally available in {% data variables.copilot.copilot_chat_short %} on the {% data variables.product.github %} website, in {% data variables.product.prodname_vscode_shortname %}, and in {% data variables.copilot.copilot_cli_short %}.

{% data variables.copilot.copilot_auto_model_selection_short_cap_a %} with task optimization combines two systems to provide high quality results and better reliability. One system tracks real-time system health and availability, while the other evaluates task complexity. Putting these together, {% data variables.copilot.copilot_auto_model_selection_short %} routes the task to the optimal model.

Expand Down Expand Up @@ -60,7 +60,7 @@ When you select **Auto**, {% data variables.copilot.copilot_auto_model_selection

## {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} in {% data variables.product.prodname_copilot_short %}

{% data variables.copilot.copilot_auto_model_selection_short_cap_a %}, optimized for model reliability and availability, is available in these {% data variables.product.prodname_copilot_short %} products:
{% data variables.copilot.copilot_auto_model_selection_short_cap_a %}, optimized for model reliability and availability, is available in these {% data variables.product.prodname_copilot_short %} products:
* {% data variables.copilot.copilot_chat_short %}, on the {% data variables.product.github %} website and supported IDEs
* {% data variables.copilot.copilot_cli_short %}
* {% data variables.copilot.copilot_cloud_agent %}
Expand Down
3 changes: 3 additions & 0 deletions content/copilot/how-tos/chat-with-copilot/chat-in-ide.md
Original file line number Diff line number Diff line change
Expand Up @@ -384,6 +384,9 @@ The following agents are available:
* **{% data variables.copilot.copilot_cli_short %}**: Runs {% data variables.product.prodname_copilot_short %} through {% data variables.copilot.copilot_cli_short %}, providing a terminal-first agentic experience with support for multiple isolation modes, live session progress, and tool call visibility. For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-copilot-cli).
* **Custom agents**: Use personalized agents tailored to your specific needs. For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-custom-agents).

> [!TIP]
> You can also access {% data variables.product.prodname_copilot_short %} from JetBrains AI Assistant without installing the {% data variables.product.prodname_copilot_short %} plugin. For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-in-jetbrains).

## Submitting prompts

You can ask {% data variables.copilot.copilot_chat_short %} to give you code suggestions, explain code, generate unit tests, and suggest code fixes.
Expand Down
4 changes: 2 additions & 2 deletions content/copilot/how-tos/copilot-cli/cli-best-practices.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,14 +94,14 @@ Use `/model` to choose from available models based on your task complexity:

| Model | Best For | Tradeoffs |
| ----- | -------- | --------- |
| **Auto** | Reduced rate limiting and lower latency and errors | See [AUTOTITLE](/copilot/concepts/auto-model-selection#auto-model-selection-in-github-copilot-cli)|
| **Auto** | Reduced rate limiting and lower latency and errors | See [AUTOTITLE](/copilot/concepts/auto-model-selection) |
| **Claude Opus 4.5** (default) | Complex architecture, difficult debugging, nuanced refactoring | Most capable but more costly |
| **Claude Sonnet 4.5** | Day-to-day coding, most routine tasks | Fast, cost-effective, handles most work well |
| **GPT-5.2 Codex** | Code generation, code review, straightforward implementations | Excellent for reviewing code produced by other models |

**Recommendations:**

* **Auto** intelligently chooses models based on real time system health and model performance, reducing rate limiting and providing lower latency and errors.
* **Auto** intelligently chooses models based on real-time system health and model performance (reducing rate limiting and providing lower latency and errors), and the complexity of the task you have given {% data variables.product.prodname_copilot_short %}.
* **Opus 4.5** is ideal for tasks requiring deep reasoning, complex system design, subtle bug investigation, or extensive context understanding.
* **Switch to Sonnet 4.5** for routine tasks where speed and cost efficiency matter—it handles the majority of everyday coding effectively.
* **Use Codex** for high-volume code generation and as a second opinion for reviewing code produced by other models.
Expand Down
Loading
Loading