Skip to content

Commit 72b7a47

Browse files
authored
Merge pull request #44744 from github/repo-sync
Repo sync
2 parents f10b171 + 444e74a commit 72b7a47

11 files changed

Lines changed: 508 additions & 96 deletions

File tree

content/code-security/reference/security-incident-response/investigation-areas.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,8 @@ You found suspicious code in your repository, a security researcher reported an
109109

110110
* Review the **Actions** tab for unexpected workflow runs, especially those triggered by unfamiliar users or at unusual times.
111111
* Inspect workflow run logs for suspicious output.
112+
* Review the credentials accessible to suspicious workflow runs, including the default `GITHUB_TOKEN`, any {% data variables.product.pat_generic_plural %}, {% data variables.product.prodname_github_app %} tokens, or other credentials stored as secrets. The `GITHUB_TOKEN` is scoped to the job and expires when the job completes, but other credentials have their own lifecycle and do not expire with the job. Any credential that may have been exposed should be treated as compromised and rotated or replaced immediately.
113+
* Be aware that workflow run logs only capture standard output from workflow steps. Activity that does not write to standard output (such as network calls, file system modifications, or background processes) will not appear in the logs. For a more comprehensive investigation, correlate with audit log events.
112114
* Use {% data variables.product.github %} code search to find suspicious files or code additions, particularly in workflow files (`.github/workflows/`), shell scripts, or configuration files.
113115
* Use the Activity view to check for pushes to unusual branch names, force pushes, pushes from unexpected actors.
114116
* Check the audit logs for changes to security settings or disablement actions (look for events like `repository_ruleset.destroy`, `repository_secret_scanning_push_protection.disable`, or other `.delete`, `.disable`, `.destroy` events).
@@ -127,6 +129,8 @@ You found suspicious code in your repository, a security researcher reported an
127129
### Key resources
128130

129131
* [Containment actions](/code-security/tutorials/secure-your-organization/responding-to-security-incidents#step-2-contain-the-threat)
132+
* [AUTOTITLE](/actions/concepts/security/github_token)
133+
* [AUTOTITLE](/actions/reference/security/secure-use)
130134

131135
{% ifversion fpt or ghec %}
132136

content/code-security/reference/security-incident-response/investigation-tools.md

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,8 @@ Read access to the repository.
156156

157157
* Confirm what executed in CI/CD at a given time (such as the commands executed, or the dependency installed).
158158
* Investigate suspicious workflow runs, such as those triggered by an unfamiliar user or at an unusual time, to see what actions were performed, which secrets were accessed, and what code was executed.
159-
* Determine whether a workflow had access to any secrets.
159+
* Review what credentials a workflow job had access to, including the default `GITHUB_TOKEN`, any {% data variables.product.pat_generic_plural %}, {% data variables.product.prodname_github_app %} tokens, other credentials stored as secrets, and access tokens obtained during the workflow run.
160+
* Retrieve logs programmatically via the REST API for archival, forensic, or automation purposes.
160161

161162
#### Permissions required
162163

@@ -166,8 +167,22 @@ Read access to the repository.
166167

167168
* [AUTOTITLE](/actions/how-tos/monitor-workflows/view-workflow-run-history)
168169
* [AUTOTITLE](/actions/how-tos/monitor-workflows/use-workflow-run-logs)
170+
* [AUTOTITLE](/actions/how-tos/manage-workflow-runs/download-workflow-artifacts)
171+
* [AUTOTITLE](/actions/concepts/security/github_token)
172+
* [AUTOTITLE](/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets)
173+
* [AUTOTITLE](/actions/reference/security/secure-use)
174+
* [AUTOTITLE](/rest/actions/workflow-runs)
175+
* [AUTOTITLE](/rest/actions/workflow-jobs)
176+
* [AUTOTITLE](/code-security/tutorials/implement-supply-chain-best-practices/securing-builds)
169177

170178
### Notes and limitations
171179

172180
* {% data variables.product.github %} automatically redacts secrets from workflow logs.
173-
* By default, workflow logs are retained by {% data variables.product.github %} for 90 days, but you can configure this retention period to be longer (up to 400 days for private repositories).
181+
* By default, workflow logs are retained by {% data variables.product.github %} for 90 days, but you can configure this retention period. {% ifversion fpt or ghec %}For public repositories, the maximum retention is 90 days. For private{% ifversion ghec %} and internal{% endif %} repositories, the maximum is 400 days.{% else %}The maximum retention is 400 days.{% endif %} Retention can be configured at the enterprise, organization, or repository level. If a workflow run occurred outside of your configured retention window, the logs may no longer be available. For more information, see [AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository), [AUTOTITLE](/organizations/managing-organization-settings/configuring-the-retention-period-for-github-actions-artifacts-and-logs-in-your-organization), or [AUTOTITLE](/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise).
182+
* Workflow runs (including their logs) can also be deleted via the REST API. To check whether a run was deleted, query for `workflows.delete_workflow_run` events in the audit log.
183+
* The default `GITHUB_TOKEN` issued to each job is scoped to that job and expires when the job finishes or after its effective maximum lifetime (up to 24 hours on self-hosted runners). Even if a step captured the token, it cannot be reused after the job finishes. For more information, see [AUTOTITLE](/actions/concepts/security/github_token).
184+
* Other credentials referenced in workflows, such as {% data variables.product.pat_generic_plural %}, {% data variables.product.prodname_github_app %} installation tokens, or third-party API keys stored as secrets, have their own lifecycle and do not expire when the job ends. If a workflow step exposed one of these credentials, the token remains valid until it is revoked or expires according to its own policy. Any credential that may have been exposed should be treated as compromised and rotated or replaced immediately. Review the workflow file and the repository, organization, and environment secrets to determine which credentials were accessible. For more information, see [AUTOTITLE](/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets).
185+
* You can download logs for an entire workflow run or for a specific job programmatically using the REST API. Both endpoints return a redirect URL that is valid for one minute. For more information, see [AUTOTITLE](/rest/actions/workflow-runs) and [AUTOTITLE](/rest/actions/workflow-jobs).
186+
* Workflow run logs only capture standard output from workflow steps. Activity that does not write to standard output, such as network calls, file system modifications, or background processes, does not appear in the logs.
187+
* For {% data variables.product.github %}-hosted runners, the runner environment is ephemeral and destroyed after the job completes. {% data variables.product.github %} does not retain any data beyond the workflow run logs for these runners. For self-hosted runners, additional host-level or network telemetry may be available from your own infrastructure.
188+
* For a more comprehensive investigation, correlate workflow run logs with audit log events. Events such as `git.clone`, `git.fetch`, `git.push`, `protected_branch.create`, and `protected_branch.policy_override` can provide additional context. Because Git events in {% data variables.product.github %}-hosted audit logs are currently retained for only 7 days for enterprises, setting up streamed enterprise audit logs ahead of time is important for this type of investigation. For more information, see [AUTOTITLE](/code-security/tutorials/secure-your-organization/preparing-for-security-incidents).

content/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers.md

Lines changed: 110 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,15 @@ The Model Context Protocol (MCP) is an open standard that defines how applicatio
2222
2323
If your organization or enterprise has configured a registry URL and allowlist policy, those settings apply to {% data variables.copilot.copilot_cli_short %}. The configured registry URL will appear as a discovery source, and only servers permitted by the allowlist policy can run.
2424

25-
You can add MCP servers using the interactive `/mcp add` command within the CLI, or by editing the configuration file directly.
25+
You can add MCP servers in the following ways:
26+
* [Using the `/mcp add` command](#using-the-mcp-add-command)
27+
* [Using the `copilot mcp add` subcommand](#using-the-copilot-mcp-add-subcommand)
28+
* [Editing the configuration file](#editing-the-configuration-file)
29+
* [Searching and installing from the registry (experimental)](#searching-and-installing-from-the-registry)
2630

2731
For installation instructions, available tools, and URLs for specific MCP servers, see the [{% data variables.product.github %} MCP Registry](https://github.com/mcp).
2832

33+
2934
### Using the `/mcp add` command
3035

3136
1. In interactive mode, enter `/mcp add`. A configuration form is displayed. Use <kbd>Tab</kbd> to navigate between fields.
@@ -50,6 +55,59 @@ For installation instructions, available tools, and URLs for specific MCP server
5055
1. Next to **Tools**, specify which tools from the server should be available. Enter `*` to include all tools, or provide a comma-separated list of tool names (no quotes needed). The default is `*`.
5156
1. Press <kbd>Ctrl</kbd>+<kbd>S</kbd> to save the configuration. The MCP server is added and available immediately without restarting the CLI.
5257

58+
### Using the `copilot mcp add` subcommand
59+
60+
You can add MCP servers from the terminal using the `copilot mcp add` subcommand, without entering interactive mode. The server is added to the user configuration at `~/.copilot/mcp-config.json`.
61+
62+
For local (stdio) servers, provide the command after `--`:
63+
64+
```shell copy
65+
copilot mcp add SERVER-NAME -- COMMAND [ARGS...]
66+
```
67+
68+
For remote (HTTP/SSE) servers, specify the transport and provide the URL:
69+
70+
```shell copy
71+
copilot mcp add --transport http SERVER-NAME URL
72+
```
73+
74+
You can also pass additional options:
75+
76+
* `--env KEY=VALUE`: Set environment variables for the server. Repeat for multiple variables.
77+
* `--header "HEADER: VALUE"`: Set HTTP headers for remote servers. Repeat for multiple headers.
78+
* `--transport TRANSPORT`: Set the transport type (`stdio`, `http`, or `sse`). The default is `stdio`.
79+
* `--tools TOOLS`: Specify which tools to enable. Use `*` for all tools (default), a comma-separated list, or `""` for none.
80+
* `--timeout MS`: Set a timeout in milliseconds.
81+
82+
#### Examples
83+
84+
Add a local stdio server:
85+
86+
```shell copy
87+
copilot mcp add context7 -- npx -y @upstash/context7-mcp
88+
```
89+
90+
Add a local server with environment variables:
91+
92+
```shell copy
93+
copilot mcp add github -e GITHUB_PERSONAL_ACCESS_TOKEN=YOUR_GITHUB_PAT -- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
94+
```
95+
96+
Add a remote HTTP server:
97+
98+
```shell copy
99+
copilot mcp add --transport http notion \
100+
https://mcp.notion.com/mcp
101+
```
102+
103+
Add a remote server with an authorization header:
104+
105+
```shell copy
106+
copilot mcp add --transport http \
107+
--header "Authorization: Bearer YOUR-TOKEN" \
108+
stripe https://mcp.stripe.com
109+
```
110+
53111
### Editing the configuration file
54112

55113
You can also add MCP servers by editing the configuration file at `~/.copilot/mcp-config.json`. This is useful if you want to share configurations or add multiple servers at once.
@@ -80,9 +138,31 @@ The following example shows a configuration file with a local server and a remot
80138

81139
For more information on MCP server configuration, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/extend-cloud-agent-with-mcp#writing-a-json-configuration-for-mcp-servers).
82140

141+
### Searching and installing from the registry
142+
143+
> [!NOTE]
144+
> The `/mcp search` command is currently an experimental feature. To use it, start {% data variables.copilot.copilot_cli_short %} with the `--experimental` command line option, or enter `/experimental on` during a session.
145+
146+
You can discover and install MCP servers directly from the [{% data variables.product.github %} MCP Registry](https://github.com/mcp) using the `/mcp search` command in interactive mode. This lets you browse available servers, view their details, and install them without manually filling out the configuration form.
147+
148+
If your organization has configured a custom MCP registry URL, `/mcp search` connects to that registry instead of the default {% data variables.product.github %} registry.
149+
150+
1. In interactive mode, enter `/mcp search` to browse top servers by stars, or `/mcp search QUERY` to search for a specific server. For example:
151+
152+
```text
153+
/mcp search context7
154+
```
155+
156+
1. A keyboard-navigable list of matching servers is displayed. Use the arrow keys to browse the results.
157+
1. Select a server to open its configuration form. The form is pre-populated with the server's configuration from the registry. Fill in any required fields, such as API keys or tokens.
158+
1. Press <kbd>Ctrl</kbd>+<kbd>S</kbd> to save. The server is added to your `mcp-config.json` and started immediately.
159+
160+
83161
## Managing MCP servers
84162

85-
You can manage your configured MCP servers using the following `/mcp` commands in {% data variables.copilot.copilot_cli_short %}.
163+
You can manage your configured MCP servers using the `/mcp` commands in interactive mode or the `copilot mcp` subcommands from the terminal.
164+
165+
### Using `/mcp` commands in interactive mode
86166

87167
* **List configured MCP servers:** Use the command `/mcp show`. This displays all configured MCP servers and their current status.
88168

@@ -96,6 +176,34 @@ You can manage your configured MCP servers using the following `/mcp` commands i
96176

97177
* **Enable a previously disabled server:** Use the command `/mcp enable SERVER-NAME`.
98178

179+
### Using `copilot mcp` subcommands from the terminal
180+
181+
You can also manage MCP servers from the terminal without entering interactive mode.
182+
183+
* **List all configured servers:**
184+
185+
```shell copy
186+
copilot mcp list
187+
```
188+
189+
Lists servers from all configuration sources (user, workspace, and plugin). Add `--json` for JSON output.
190+
191+
* **View server details:**
192+
193+
```shell copy
194+
copilot mcp get SERVER-NAME
195+
```
196+
197+
Shows a server's type, status, and available tools. Add `--json` for JSON output.
198+
199+
* **Remove a server:**
200+
201+
```shell copy
202+
copilot mcp remove SERVER-NAME
203+
```
204+
205+
Removes the server from the user configuration.
206+
99207
## Using MCP servers
100208

101209
Once you have added an MCP server, {% data variables.product.prodname_copilot_short %} can automatically use the tools it provides when relevant to your prompt. You can also directly reference an MCP server and specific tools in a prompt to ensure they are used.

content/copilot/how-tos/troubleshoot-copilot/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ children:
1111
- /troubleshoot-firewall-settings
1212
- /troubleshoot-network-errors
1313
- /troubleshoot-spark
14+
- /troubleshoot-copilot-slowness
1415
redirect_from:
1516
- /copilot/troubleshooting-github-copilot
1617
- /copilot/how-tos/troubleshoot
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
---
2+
title: Troubleshooting slow responses from GitHub Copilot
3+
intro: Troubleshooting help for slow responses from {% data variables.product.prodname_copilot %}.
4+
allowTitleToDifferFromFilename: true
5+
versions:
6+
feature: copilot
7+
shortTitle: Troubleshoot slow responses
8+
redirect_from:
9+
- /copilot/troubleshooting-github-copilot/troubleshooting-copilot-slowness
10+
- /copilot/how-tos/troubleshoot/troubleshooting-copilot-slowness
11+
- /copilot/how-tos/troubleshoot/troubleshoot-copilot-slowness
12+
contentType: how-tos
13+
category:
14+
- Troubleshooting Copilot
15+
---
16+
17+
## About the problem
18+
19+
If {% data variables.product.prodname_copilot %} is responding more slowly than expected, the problem may be related to network conditions, local system performance, editor configuration, or connectivity restrictions such as proxies or firewalls. Because {% data variables.product.prodname_copilot_short %} relies on remote services to generate responses, issues that affect communication with {% data variables.product.github %} services can reduce responsiveness or cause delays. The troubleshooting steps below can help you determine whether the problem is caused by your environment or by a broader service issue.
20+
21+
If {% data variables.product.prodname_copilot_short %} is responding slowly, work through the following troubleshooting steps.
22+
23+
## Check your internet connection
24+
25+
Make sure you have a stable, high-speed internet connection. Slow or inconsistent connectivity can increase latency and affect how quickly {% data variables.product.prodname_copilot_short %} returns responses.
26+
27+
## Check the GitHub status page
28+
29+
Visit the [GitHub status page](https://www.githubstatus.com/) to confirm whether there is an ongoing incident affecting {% data variables.product.prodname_copilot_short %} or related GitHub services.
30+
31+
## Update your editor and {% data variables.product.prodname_copilot_short %} extension
32+
33+
Make sure your editor and the {% data variables.product.prodname_copilot_short %} extension or plugin are up to date. After updating, restart your editor.
34+
35+
## Check for extension conflicts
36+
37+
Temporarily disable other extensions or plugins, especially ones related to AI coding assistants, linting, formatting, or code analysis. Conflicts between extensions can sometimes affect editor responsiveness and make {% data variables.product.prodname_copilot_short %} appear slow.
38+
39+
## Try a smaller or simpler file
40+
41+
{% data variables.product.prodname_copilot_short %} may respond more slowly in very large files or in projects with high complexity. Test whether performance improves in a smaller file or after splitting large files into smaller units.
42+
43+
## Test in a new project or workspace
44+
45+
Open a new minimal project or workspace and test {% data variables.product.prodname_copilot_short %} there. If response times improve, the issue may be related to the size, dependencies, or configuration of your main project.
46+
47+
## Review system resource usage
48+
49+
Check CPU and memory usage on your machine. High system load or limited available resources can slow down your editor and affect how quickly {% data variables.product.prodname_copilot_short %} responds.
50+
51+
## Check proxy, VPN, and firewall settings
52+
53+
If you use a proxy, VPN, firewall, or security software that inspects web traffic, verify that it is not blocking or interfering with connections required by {% data variables.product.prodname_copilot_short %}. If you work behind a corporate proxy or firewall, you may need to review your organization's network configuration and make sure to follow [AUTOTITLE](/copilot/how-tos/troubleshoot-copilot/troubleshoot-firewall-settings).
54+
55+
## Review logs for errors or timeouts
56+
57+
Check your editor logs for errors, timeouts, or connectivity problems.
58+
59+
* In **Visual Studio Code**, open the **Output** panel and select **GitHub Copilot** from the dropdown.
60+
* In **JetBrains IDEs**, open the logs from the **Help** menu.
61+
62+
For more information, see [AUTOTITLE](/copilot/how-tos/troubleshoot-copilot/view-logs?tool=vscode#viewing-and-collecting-log-files). Save any relevant logs if you need to report the problem.
63+
64+
## Try a different network or device
65+
66+
If possible, test {% data variables.product.prodname_copilot_short %} on a different network or another device. This can help determine whether the issue is specific to your current environment.
67+
68+
## Check GitHub Docs and known issues
69+
70+
Review [AUTOTITLE](/copilot/how-tos/troubleshoot-copilot/troubleshoot-common-issues), similar reports, or environment-specific guidance.
71+
72+
## Contact GitHub Support with diagnostic details
73+
74+
If the problem persists, collect relevant diagnostic information before contacting GitHub Support. Include your editor and {% data variables.product.prodname_copilot_short %} extension or plugin versions, steps to reproduce the problem, example files if available, and any related log messages or errors.

content/copilot/reference/copilot-billing/models-and-pricing.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ All prices are **per 1 million tokens**.
4343

4444
Anthropic models include a cache write cost in addition to cached input.
4545

46+
{% data reusables.copilot.model-fable-disabled %}
47+
4648
| Model | Release status | Category | Input | Cached input | Cache write | Output |
4749
| --- | --- | --- | ---: | ---: | ---: | ---: |
4850
| {% for entry in tables.copilot.models-and-pricing %}{% if entry.provider == "anthropic" %} |

0 commit comments

Comments
 (0)