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
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,9 @@ The table below shows the package managers that support `cooldown`. The `default
| {% ifversion dependabot-conda-support %} |
| Conda | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} |
| {% endif %} |
| {% ifversion dependabot-deno-support %} |
| Deno | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} |
| {% endif %} |
| Devcontainers | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} |
| Docker | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} |
| Docker Compose | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} |
Expand Down Expand Up @@ -559,6 +561,9 @@ Package manager | YAML value | Supported versions |
| {% ifversion dependabot-conda-support %} |
| Conda | `conda` | Not applicable |
| {% endif %} |
| {% ifversion dependabot-deno-support %} |
| Deno | `deno` | >=v2 |
| {% endif %} |
| Dev containers | `devcontainers` | Not applicable |
| Docker | `docker` | v1 |
| {% ifversion dependabot-docker-compose-support %} |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ In the table below:
| {% endif %} |
| Cargo | Rust | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | `Cargo.lock` | `Cargo.toml` |
| Composer | PHP | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | `composer.lock` | `composer.json` |
| {% ifversion dependabot-deno-support %} |
| Deno | TypeScript, JavaScript | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | `deno.lock` | `deno.json`, `deno.jsonc` |
| {% endif %} |
| NuGet | .NET languages (C#, F#, VB), C++ | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | `.csproj`, `.vbproj`, `.nuspec`, `.vcxproj`, `.fsproj` | `packages.config` |
| {% data variables.product.prodname_actions %} workflows | YAML | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | `.yml`, `.yaml` | {% octicon "x" aria-label="None" %} |
| Go modules | Go | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | `go.mod`| {% octicon "x" aria-label="None" %} |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ To be included in the {% data variables.product.prodname_copilot_short %} usage
| Eclipse | 4.31 | 0.9.3.202507240902 |
| JetBrains / IntelliJ | 2024.2.6 | 1.5.52-241 |
| {% data variables.product.prodname_vs %} | 17.14.13 | 18.0.471.29466 |
| {% data variables.product.prodname_vscode_shortname %} | 1.101 | 0.28.0 |
| {% data variables.product.prodname_vscode_shortname %} | 1.107.1 | 0.35.3 |
| Xcode | 13.2.1 | 0.40.0 |

## Data freshness
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,31 @@ Sessions sort by the following modes:

Sessions already open in another window float to the top in all non-relevance sort modes. When no working-directory context is available, the `relevance` mode is skipped.

## Diff mode shortcuts

When diff mode is open (entered via `/diff`):

| Shortcut | Purpose |
|----------|---------|
| <kbd>↑</kbd> / `k` | Move selection up one line. |
| <kbd>↓</kbd> / `j` | Move selection down one line. |
| <kbd>←</kbd> / `h` | Jump to the previous file. |
| <kbd>→</kbd> / `l` | Jump to the next file. |
| <kbd>Home</kbd> | Jump to the first line. |
| <kbd>End</kbd> | Jump to the last line. |
| <kbd>Page Up</kbd> | Scroll up one page. |
| <kbd>Page Down</kbd> | Scroll down one page. |
| `Click` | Select the clicked diff line (requires mouse support). |
| Mouse scroll | Scroll up or down. |
| `c` | Add or edit a comment on the selected line. |
| `s` | Show comments summary (when comments exist). |
| `b` | Toggle between unstaged changes and branch diff. |
| <kbd>Enter</kbd> | Submit all comments (when comments exist). |
| `r` | Refresh the diff (remote sessions only). |
| <kbd>Esc</kbd> / <kbd>Ctrl</kbd>+<kbd>C</kbd> | Exit diff mode. |

Holding <kbd>↑</kbd> or <kbd>↓</kbd> accelerates scrolling after the first 10 rapid presses. Mouse support requires `--mouse` (enabled by default in alt-screen mode). Disable with `--no-mouse`.

## Navigation shortcuts in the interactive interface

| Shortcut | Purpose |
Expand Down Expand Up @@ -183,7 +208,7 @@ Sessions already open in another window float to the top in all non-relevance so
| `/copy` | Copy the last response to the clipboard. |
| `/cwd`, `/cd [PATH]` | Change the working directory or display the current directory. |
| `/delegate [PROMPT]` | Delegate changes to a remote repository with an AI-generated pull request. See [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/delegate-tasks-to-cca). |
| `/diff` | Review the changes made in the current directory. |
| `/diff` | Review changes in the current directory; auto-switches to branch diff when the working tree is clean (experimental). |
| `/downgrade <VERSION>` | Download and restart into a specific CLI version. Available for team accounts. |
| `/env` | Show loaded environment details (instructions, MCP servers, skills, agents, plugins, LSPs, extensions). |
| `/exit`, `/quit` | Exit the CLI. |
Expand Down Expand Up @@ -484,6 +509,27 @@ Use `copilot mcp` to manage MCP server configurations from the command line with
| `timeout` | No | Tool call timeout in milliseconds. |
| `type` | No | `"local"` or `"stdio"`. Default: `"local"`. |

### Private npm registry

Use `--registry` in the `args` array to pull a package from a private npm registry—for example, Artifactory or a {% data variables.product.github %} Packages feed:

```json
{
"mcpServers": {
"my-internal-server": {
"command": "npx",
"args": [
"--registry", "https://npm.pkg.github.com",
"@my-org/internal-mcp-server"
],
"tools": ["*"]
}
}
}
```

The `--registry` flag and other npm config flags (`--userconfig`, `--globalconfig`, `--prefix`, `--cache`, `--node-options`, `--workspace`, `-w`) are treated as value-consuming arguments when computing the server's identity fingerprint. This ensures enterprise allowlist checks and registry verification work correctly when these flags appear before the package name.

### Remote server configuration fields

| Field | Required | Description |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,7 @@ These settings apply across all your sessions and repositories. You can edit thi
| `banner` | `"always"` \| `"once"` \| `"never"` | `"once"` | Animated banner display frequency. |
| `bashEnv` | `boolean` | `false` | Enable `BASH_ENV` support for bash shells. Can also be set with `--bash-env` or `--no-bash-env`. |
| `beep` | `boolean` | `true` | Play an audible beep when attention is required. |
| `builtInAgents.rubberDuck` | `boolean` | `true` | Enable the rubber-duck subagent that provides adversarial feedback on agent plans. |
| `colorMode` | `"default"` \| `"dim"` \| `"high-contrast"` \| `"colorblind"` | `"default"` | Color contrast mode. Managed by the `/theme` slash command. |
| `compactPaste` | `boolean` | `true` | Collapse large pastes (more than 10 lines) into compact tokens. |
| `companyAnnouncements` | `string[]` | `[]` | Custom messages shown randomly on startup. One message is randomly selected each time the CLI starts. Useful for team announcements or reminders. |
Expand Down Expand Up @@ -241,6 +242,7 @@ These settings apply across all your sessions and repositories. You can edit thi
| `remoteExport` | `boolean` | `true` | Export sessions remotely when session sync is available. Set to `false` to opt out of remote export by default. The `remoteSessions` setting when set to `true`, or the `--remote` flag, still enables export and steering regardless of this setting. |
| `respectGitignore` | `boolean` | `true` | Exclude gitignored files from the `@` file mention picker. When `false`, the picker includes files normally excluded by `.gitignore`. |
| `screenReader` | `boolean` | `false` | Enable screen reader optimizations. |
| `showTipsOnStartup` | `boolean` | `true` | Show a random command tip when the CLI starts. |
| `skillDirectories` | `string[]` | `[]` | Additional directories to search for custom skill definitions (in addition to `~/.copilot/skills/`). |
| `statusLine` | `object` | — | Custom status line display. `type`: must be `"command"`. `command`: path to an executable script that receives session JSON on stdin and prints status content to stdout. `padding`: optional number of left-padding spaces. |
| `storeTokenPlaintext` | `boolean` | `false` | Allow authentication tokens to be stored in plain text in `config.json` when no system keychain is available. |
Expand Down
10 changes: 8 additions & 2 deletions content/copilot/reference/hooks-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,9 @@ When configured with the PascalCase event name `PreToolUse`, the payload uses sn
}
```

> [!IMPORTANT]
> **Command vs HTTP fail behavior for `preToolUse`:** Command `preToolUse` hooks are **fail-closed**—a crash or non-zero exit denies the tool call. HTTP `preToolUse` hooks are **fail-open**—a network error, timeout, or non-2xx response falls through to the default permission flow. Choose the variant that matches your security requirements.

### `postToolUse` / `PostToolUse`

**camelCase input:**
Expand Down Expand Up @@ -632,15 +635,18 @@ Several events accept an optional `matcher` regex on each hook entry that filter
| `view` | Read file contents. |
| `web_fetch` | Fetch web pages. |

If multiple hooks of the same type are configured, they execute in order. For `preToolUse`, if any hook returns `"deny"`, the tool is blocked. Hook failures (non-zero exit codes other than `2`, or timeouts) are logged and skipped—they never block agent execution.
If multiple hooks of the same type are configured, they execute in order. For `preToolUse`, if any hook returns `"deny"`, the tool is blocked. For most events, hook failures (non-zero exit codes other than `2`, or timeouts) are logged and skipped. **Exception: `preToolUse` is fail-closed**—a crash, non-zero exit (other than exit 2), or timeout denies the tool call rather than silently allowing it.

## Exit codes for command hooks

| Exit code | Meaning |
|-----------|---------|
| `0` | Success. `stdout` is parsed as the hook output JSON if present. |
| `2` | Treated as a warning by default. `stderr` is surfaced to the user but the run continues. For `permissionRequest`, exit `2` is treated as `{"behavior":"deny"}` and any `stdout` JSON is merged in. For `postToolUseFailure`, exit `2` is treated as `additionalContext` and `stdout` is appended to the failure shown to the agent. |
| Other non-zero | Logged as a hook failure. The run continues (fail-open). |
| Other non-zero | Logged as a hook failure. The run continues (fail-open). **Exception: `preToolUse` is fail-closed**—a non-zero exit (other than exit 2) denies the tool call with `"Denied by preToolUse hook (hook errored)"`. |
| Timeout | Killed after `timeoutSec`. Error logged, agent continues. **Exception: `preToolUse` is fail-closed**—timeout denies the tool call. |

For most events, non-zero exits and timeouts are logged and skipped—agent execution continues. `preToolUse` is the exception: errors, crashes, and timeouts deny the tool call rather than silently allowing it. This prevents a brittle hook from being bypassed when hook input triggers an unexpected crash. Exit 2 is handled per the rules above and does not block execution.

## Disable all hooks

Expand Down
6 changes: 6 additions & 0 deletions data/features/dependabot-deno-support.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Reference: #61409
# Deno support for Dependabot
versions:
fpt: '*'
ghec: '*'
ghes: '> 3.19'
13 changes: 13 additions & 0 deletions data/reusables/dependabot/supported-package-managers.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ Composer | `composer` | v2 | {% octicon "check" aria-label="
| {% ifversion dependabot-conda-support %} |
[Conda](#conda) | `conda` | Not applicable | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} |
| {% endif %} |
| {% ifversion dependabot-deno-support %} |
[Deno](#deno) | `deno` | >=v2 | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} |
| {% endif %} |
[Dev containers](#dev-containers) | `devcontainers` | Not applicable | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} |
[Docker](#docker) | `docker` | v1 | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | Not applicable |
| {% ifversion dependabot-docker-compose-support %} |
Expand Down Expand Up @@ -91,6 +94,16 @@ Private registry support includes cargo registries, so you can use {% data varia

{% endif %}

{% ifversion dependabot-deno-support %}

### Deno

{% data variables.product.prodname_dependabot %} can update dependencies in `deno.json` and `deno.jsonc` configuration files. Deno projects can use dependencies from [JSR](https://jsr.io/) (the JavaScript Registry) or from the npm registry.

{% data variables.product.prodname_dependabot %} support for Deno does **not include private registries or vendoring**.

{% endif %}

### Dev containers

You can use `devcontainers` as a `package-ecosystem` in your `dependabot.yml` file to update Features in your `devcontainer.json` configuration files. For more information about this support, and for configuration file examples, see [General Availability of {% data variables.product.prodname_dependabot %} Integration](https://containers.dev/guide/dependabot) in the Development Containers documentation.
Expand Down
2 changes: 1 addition & 1 deletion src/content-pipelines/state/copilot-cli.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
6f4199ecdb5aec16a6caafade77d0aab7352d176
cb4c40cf4c55ea965aa476893bd504298b2ecfb4
36 changes: 23 additions & 13 deletions src/secret-scanning/data/pattern-docs/fpt/public-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -536,7 +536,7 @@
isPublic: true
isPrivateWithGhas: true
hasPushProtection: true
hasValidityCheck: true
hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}'
hasExtendedMetadata: false
base64Supported: true
isduplicate: true
Expand Down Expand Up @@ -626,7 +626,7 @@
isPublic: true
isPrivateWithGhas: true
hasPushProtection: true
hasValidityCheck: false
hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}'
hasExtendedMetadata: false
base64Supported: true
isduplicate: true
Expand Down Expand Up @@ -936,7 +936,7 @@
isPublic: true
isPrivateWithGhas: true
hasPushProtection: true
hasValidityCheck: false
hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}'
hasExtendedMetadata: false
base64Supported: false
isduplicate: false
Expand Down Expand Up @@ -1006,7 +1006,7 @@
isPublic: true
isPrivateWithGhas: true
hasPushProtection: true
hasValidityCheck: true
hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}'
hasExtendedMetadata: false
base64Supported: true
isduplicate: true
Expand Down Expand Up @@ -1496,7 +1496,7 @@
isPublic: true
isPrivateWithGhas: false
hasPushProtection: false
hasValidityCheck: false
hasValidityCheck: true
hasExtendedMetadata: false
base64Supported: false
isduplicate: false
Expand All @@ -1506,7 +1506,7 @@
isPublic: true
isPrivateWithGhas: false
hasPushProtection: false
hasValidityCheck: false
hasValidityCheck: true
hasExtendedMetadata: false
base64Supported: false
isduplicate: false
Expand Down Expand Up @@ -1536,7 +1536,7 @@
isPublic: true
isPrivateWithGhas: true
hasPushProtection: true
hasValidityCheck: true
hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}'
hasExtendedMetadata: false
base64Supported: true
isduplicate: true
Expand Down Expand Up @@ -3124,6 +3124,16 @@
hasExtendedMetadata: false
base64Supported: false
isduplicate: false
- provider: Meraki
supportedSecret: Meraki Dashboard API Key
secretType: meraki_api_key
isPublic: true
isPrivateWithGhas: false
hasPushProtection: false
hasValidityCheck: false
hasExtendedMetadata: false
base64Supported: false
isduplicate: false
- provider: Mercury
supportedSecret: Mercury Non-Production API Token
secretType: mercury_non_production_api_token
Expand Down Expand Up @@ -4140,7 +4150,7 @@
isPublic: false
isPrivateWithGhas: true
hasPushProtection: true
hasValidityCheck: false
hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}'
hasExtendedMetadata: false
base64Supported: false
isduplicate: false
Expand Down Expand Up @@ -4300,7 +4310,7 @@
isPublic: true
isPrivateWithGhas: true
hasPushProtection: true
hasValidityCheck: true
hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}'
hasExtendedMetadata: false
base64Supported: false
isduplicate: false
Expand Down Expand Up @@ -4340,7 +4350,7 @@
isPublic: true
isPrivateWithGhas: true
hasPushProtection: true
hasValidityCheck: true
hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}'
hasExtendedMetadata: false
base64Supported: false
isduplicate: false
Expand All @@ -4360,7 +4370,7 @@
isPublic: true
isPrivateWithGhas: true
hasPushProtection: true
hasValidityCheck: true
hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}'
hasExtendedMetadata: false
base64Supported: false
isduplicate: false
Expand All @@ -4380,7 +4390,7 @@
isPublic: true
isPrivateWithGhas: true
hasPushProtection: true
hasValidityCheck: true
hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}'
hasExtendedMetadata: false
base64Supported: false
isduplicate: false
Expand Down Expand Up @@ -5031,7 +5041,7 @@
isPrivateWithGhas: true
hasPushProtection: true
hasValidityCheck: true
hasExtendedMetadata: false
hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}'
base64Supported: false
isduplicate: false
- provider: Yandex
Expand Down
Loading
Loading