From 916e56e6cd6fab5b00ae6cc51b3ccf93efb86499 Mon Sep 17 00:00:00 2001 From: Sarah Schneider Date: Thu, 23 Oct 2025 08:33:30 -0400 Subject: [PATCH 1/6] Use gh auth token for the ai-tools script (#58121) --- src/ai-tools/scripts/ai-tools.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/ai-tools/scripts/ai-tools.ts b/src/ai-tools/scripts/ai-tools.ts index 0237c017b2c7..cdef22699709 100644 --- a/src/ai-tools/scripts/ai-tools.ts +++ b/src/ai-tools/scripts/ai-tools.ts @@ -4,6 +4,7 @@ import fs from 'fs' import yaml from 'js-yaml' import path from 'path' import ora from 'ora' +import { execSync } from 'child_process' import { callModelsApi } from '@/ai-tools/lib/call-models-api' import dotenv from 'dotenv' dotenv.config({ quiet: true }) @@ -13,7 +14,18 @@ const promptDir = path.join(__dirname, '../prompts') const promptTemplatePath = path.join(promptDir, 'prompt-template.yml') if (!process.env.GITHUB_TOKEN) { - throw new Error('Error! You must have a GITHUB_TOKEN set in an .env file to run this script.') + // Try to find a token via the CLI before throwing an error + const token = execSync('gh auth token').toString() + if (token.startsWith('gh')) { + process.env.GITHUB_TOKEN = token + } else { + console.warn(`🔑 A token is needed to run this script. Please do one of the following and try again: + +1. Add a GITHUB_TOKEN to a local .env file. +2. Install https://cli.github.com and authenticate via 'gh auth login'. + `) + process.exit(1) + } } interface EditorType { From 4aefc1524c1d5780b8e96c3a8adf862837ba210b Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Thu, 23 Oct 2025 13:57:24 +0100 Subject: [PATCH 2/6] Add reusable for MCP limitations note in coding agent documentation (#58022) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: timrogers <116134+timrogers@users.noreply.github.com> --- .../concepts/agents/coding-agent/mcp-and-coding-agent.md | 4 +--- .../coding-agent/extend-coding-agent-with-mcp.md | 2 ++ data/reusables/copilot/mcp/coding-agent-limitations.md | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 data/reusables/copilot/mcp/coding-agent-limitations.md diff --git a/content/copilot/concepts/agents/coding-agent/mcp-and-coding-agent.md b/content/copilot/concepts/agents/coding-agent/mcp-and-coding-agent.md index 823c65a18ede..6f6ee7ad52d3 100644 --- a/content/copilot/concepts/agents/coding-agent/mcp-and-coding-agent.md +++ b/content/copilot/concepts/agents/coding-agent/mcp-and-coding-agent.md @@ -20,9 +20,7 @@ The agent can use tools provided by local and remote MCP servers. Some MCP serve 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). -> [!NOTE] -> * {% 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 %} does not currently support remote MCP servers that leverage OAuth for authentication and authorization. +{% data reusables.copilot.mcp.coding-agent-limitations %} ## Default MCP servers diff --git a/content/copilot/how-tos/use-copilot-agents/coding-agent/extend-coding-agent-with-mcp.md b/content/copilot/how-tos/use-copilot-agents/coding-agent/extend-coding-agent-with-mcp.md index 4b4672d9ec1a..5c932ed5983a 100644 --- a/content/copilot/how-tos/use-copilot-agents/coding-agent/extend-coding-agent-with-mcp.md +++ b/content/copilot/how-tos/use-copilot-agents/coding-agent/extend-coding-agent-with-mcp.md @@ -29,6 +29,8 @@ As a repository administrator, you can configure MCP servers for use within your > [!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. +{% data reusables.copilot.mcp.coding-agent-limitations %} + ## Adding an MCP configuration to your repository Repository administrators can configure MCP servers by following these steps: diff --git a/data/reusables/copilot/mcp/coding-agent-limitations.md b/data/reusables/copilot/mcp/coding-agent-limitations.md new file mode 100644 index 000000000000..92b8cf568f14 --- /dev/null +++ b/data/reusables/copilot/mcp/coding-agent-limitations.md @@ -0,0 +1,3 @@ +> [!NOTE] +> * {% 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 %} does not currently support remote MCP servers that leverage OAuth for authentication and authorization. From 18c6c7e2f45867a2deba49e23fac88518f885956 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Thu, 23 Oct 2025 06:01:47 -0700 Subject: [PATCH 3/6] Update audit log event data (#58063) Co-authored-by: John Clement <70238417+jclement136@users.noreply.github.com> --- src/audit-logs/data/fpt/organization.json | 27 ++++++++++++++++++- src/audit-logs/data/fpt/user.json | 27 ++++++++++++++++++- src/audit-logs/data/ghec/enterprise.json | 27 ++++++++++++++++++- src/audit-logs/data/ghec/organization.json | 27 ++++++++++++++++++- src/audit-logs/data/ghec/user.json | 27 ++++++++++++++++++- src/audit-logs/data/ghes-3.19/enterprise.json | 27 ++++++++++++++++++- .../data/ghes-3.19/organization.json | 27 ++++++++++++++++++- src/audit-logs/data/ghes-3.19/user.json | 27 ++++++++++++++++++- src/audit-logs/lib/config.json | 2 +- 9 files changed, 209 insertions(+), 9 deletions(-) diff --git a/src/audit-logs/data/fpt/organization.json b/src/audit-logs/data/fpt/organization.json index f6291411b2e5..43cec6bd52b2 100644 --- a/src/audit-logs/data/fpt/organization.json +++ b/src/audit-logs/data/fpt/organization.json @@ -299,7 +299,9 @@ "old_target_amount", "old_budget_limit_type", "old_alert_enabled", - "old_target_id" + "old_target_id", + "old_pricing_target_type", + "old_pricing_target_id" ] }, { @@ -7883,6 +7885,29 @@ ], "docs_reference_titles": "Self-hosted runners" }, + { + "action": "org.set_actions_cache_retention_policy", + "description": "The cache retention policy for GitHub Actions was set for an organization.", + "docs_reference_links": "/organizations/managing-organization-settings/managing-github-actions-settings-for-your-organization", + "fields": [ + "actor", + "actor_id", + "user_agent", + "request_id", + "request_access_security_header", + "org", + "org_id", + "business", + "business_id", + "action", + "_document_id", + "@timestamp", + "created_at", + "operation_type", + "actor_is_bot" + ], + "docs_reference_titles": "/organizations/managing-organization-settings/managing-github-actions-settings-for-your-organization" + }, { "action": "org.set_actions_cache_storage_policy", "description": "The cache storage policy for GitHub Actions was set for an organization.", diff --git a/src/audit-logs/data/fpt/user.json b/src/audit-logs/data/fpt/user.json index 6eb2833c6b8a..9b2bc9848439 100644 --- a/src/audit-logs/data/fpt/user.json +++ b/src/audit-logs/data/fpt/user.json @@ -222,7 +222,9 @@ "old_target_amount", "old_budget_limit_type", "old_alert_enabled", - "old_target_id" + "old_target_id", + "old_pricing_target_type", + "old_pricing_target_id" ] }, { @@ -3652,6 +3654,29 @@ "request_access_security_header" ] }, + { + "action": "org.set_actions_cache_retention_policy", + "description": "The cache retention policy for GitHub Actions was set for an organization.", + "docs_reference_links": "/organizations/managing-organization-settings/managing-github-actions-settings-for-your-organization", + "fields": [ + "actor", + "actor_id", + "user_agent", + "request_id", + "request_access_security_header", + "org", + "org_id", + "business", + "business_id", + "action", + "_document_id", + "@timestamp", + "created_at", + "operation_type", + "actor_is_bot" + ], + "docs_reference_titles": "/organizations/managing-organization-settings/managing-github-actions-settings-for-your-organization" + }, { "action": "org.set_actions_cache_storage_policy", "description": "The cache storage policy for GitHub Actions was set for an organization.", diff --git a/src/audit-logs/data/ghec/enterprise.json b/src/audit-logs/data/ghec/enterprise.json index 2413bf0a10dc..ab4a3e14a55e 100644 --- a/src/audit-logs/data/ghec/enterprise.json +++ b/src/audit-logs/data/ghec/enterprise.json @@ -431,7 +431,9 @@ "old_target_amount", "old_budget_limit_type", "old_alert_enabled", - "old_target_id" + "old_target_id", + "old_pricing_target_type", + "old_pricing_target_id" ] }, { @@ -11149,6 +11151,29 @@ ], "docs_reference_titles": "Self-hosted runners" }, + { + "action": "org.set_actions_cache_retention_policy", + "description": "The cache retention policy for GitHub Actions was set for an organization.", + "docs_reference_links": "/organizations/managing-organization-settings/managing-github-actions-settings-for-your-organization", + "fields": [ + "actor", + "actor_id", + "user_agent", + "request_id", + "request_access_security_header", + "org", + "org_id", + "business", + "business_id", + "action", + "_document_id", + "@timestamp", + "created_at", + "operation_type", + "actor_is_bot" + ], + "docs_reference_titles": "/organizations/managing-organization-settings/managing-github-actions-settings-for-your-organization" + }, { "action": "org.set_actions_cache_storage_policy", "description": "The cache storage policy for GitHub Actions was set for an organization.", diff --git a/src/audit-logs/data/ghec/organization.json b/src/audit-logs/data/ghec/organization.json index f6291411b2e5..43cec6bd52b2 100644 --- a/src/audit-logs/data/ghec/organization.json +++ b/src/audit-logs/data/ghec/organization.json @@ -299,7 +299,9 @@ "old_target_amount", "old_budget_limit_type", "old_alert_enabled", - "old_target_id" + "old_target_id", + "old_pricing_target_type", + "old_pricing_target_id" ] }, { @@ -7883,6 +7885,29 @@ ], "docs_reference_titles": "Self-hosted runners" }, + { + "action": "org.set_actions_cache_retention_policy", + "description": "The cache retention policy for GitHub Actions was set for an organization.", + "docs_reference_links": "/organizations/managing-organization-settings/managing-github-actions-settings-for-your-organization", + "fields": [ + "actor", + "actor_id", + "user_agent", + "request_id", + "request_access_security_header", + "org", + "org_id", + "business", + "business_id", + "action", + "_document_id", + "@timestamp", + "created_at", + "operation_type", + "actor_is_bot" + ], + "docs_reference_titles": "/organizations/managing-organization-settings/managing-github-actions-settings-for-your-organization" + }, { "action": "org.set_actions_cache_storage_policy", "description": "The cache storage policy for GitHub Actions was set for an organization.", diff --git a/src/audit-logs/data/ghec/user.json b/src/audit-logs/data/ghec/user.json index 6eb2833c6b8a..9b2bc9848439 100644 --- a/src/audit-logs/data/ghec/user.json +++ b/src/audit-logs/data/ghec/user.json @@ -222,7 +222,9 @@ "old_target_amount", "old_budget_limit_type", "old_alert_enabled", - "old_target_id" + "old_target_id", + "old_pricing_target_type", + "old_pricing_target_id" ] }, { @@ -3652,6 +3654,29 @@ "request_access_security_header" ] }, + { + "action": "org.set_actions_cache_retention_policy", + "description": "The cache retention policy for GitHub Actions was set for an organization.", + "docs_reference_links": "/organizations/managing-organization-settings/managing-github-actions-settings-for-your-organization", + "fields": [ + "actor", + "actor_id", + "user_agent", + "request_id", + "request_access_security_header", + "org", + "org_id", + "business", + "business_id", + "action", + "_document_id", + "@timestamp", + "created_at", + "operation_type", + "actor_is_bot" + ], + "docs_reference_titles": "/organizations/managing-organization-settings/managing-github-actions-settings-for-your-organization" + }, { "action": "org.set_actions_cache_storage_policy", "description": "The cache storage policy for GitHub Actions was set for an organization.", diff --git a/src/audit-logs/data/ghes-3.19/enterprise.json b/src/audit-logs/data/ghes-3.19/enterprise.json index 0bf9a8338a6c..97da2a2076d5 100644 --- a/src/audit-logs/data/ghes-3.19/enterprise.json +++ b/src/audit-logs/data/ghes-3.19/enterprise.json @@ -354,7 +354,9 @@ "old_target_amount", "old_budget_limit_type", "old_alert_enabled", - "old_target_id" + "old_target_id", + "old_pricing_target_type", + "old_pricing_target_id" ] }, { @@ -8661,6 +8663,29 @@ ], "docs_reference_titles": "Self-hosted runners" }, + { + "action": "org.set_actions_cache_retention_policy", + "description": "The cache retention policy for GitHub Actions was set for an organization.", + "docs_reference_links": "/organizations/managing-organization-settings/managing-github-actions-settings-for-your-organization", + "fields": [ + "actor", + "actor_id", + "user_agent", + "request_id", + "request_access_security_header", + "org", + "org_id", + "business", + "business_id", + "action", + "_document_id", + "@timestamp", + "created_at", + "operation_type", + "actor_is_bot" + ], + "docs_reference_titles": "/organizations/managing-organization-settings/managing-github-actions-settings-for-your-organization" + }, { "action": "org.set_actions_cache_storage_policy", "description": "The cache storage policy for GitHub Actions was set for an organization.", diff --git a/src/audit-logs/data/ghes-3.19/organization.json b/src/audit-logs/data/ghes-3.19/organization.json index d67429e7ffbc..94f6e708fb12 100644 --- a/src/audit-logs/data/ghes-3.19/organization.json +++ b/src/audit-logs/data/ghes-3.19/organization.json @@ -299,7 +299,9 @@ "old_target_amount", "old_budget_limit_type", "old_alert_enabled", - "old_target_id" + "old_target_id", + "old_pricing_target_type", + "old_pricing_target_id" ] }, { @@ -7862,6 +7864,29 @@ ], "docs_reference_titles": "Self-hosted runners" }, + { + "action": "org.set_actions_cache_retention_policy", + "description": "The cache retention policy for GitHub Actions was set for an organization.", + "docs_reference_links": "/organizations/managing-organization-settings/managing-github-actions-settings-for-your-organization", + "fields": [ + "actor", + "actor_id", + "user_agent", + "request_id", + "request_access_security_header", + "org", + "org_id", + "business", + "business_id", + "action", + "_document_id", + "@timestamp", + "created_at", + "operation_type", + "actor_is_bot" + ], + "docs_reference_titles": "/organizations/managing-organization-settings/managing-github-actions-settings-for-your-organization" + }, { "action": "org.set_actions_cache_storage_policy", "description": "The cache storage policy for GitHub Actions was set for an organization.", diff --git a/src/audit-logs/data/ghes-3.19/user.json b/src/audit-logs/data/ghes-3.19/user.json index 9ff44dfb6d21..68ce65a62e55 100644 --- a/src/audit-logs/data/ghes-3.19/user.json +++ b/src/audit-logs/data/ghes-3.19/user.json @@ -222,7 +222,9 @@ "old_target_amount", "old_budget_limit_type", "old_alert_enabled", - "old_target_id" + "old_target_id", + "old_pricing_target_type", + "old_pricing_target_id" ] }, { @@ -3631,6 +3633,29 @@ "request_access_security_header" ] }, + { + "action": "org.set_actions_cache_retention_policy", + "description": "The cache retention policy for GitHub Actions was set for an organization.", + "docs_reference_links": "/organizations/managing-organization-settings/managing-github-actions-settings-for-your-organization", + "fields": [ + "actor", + "actor_id", + "user_agent", + "request_id", + "request_access_security_header", + "org", + "org_id", + "business", + "business_id", + "action", + "_document_id", + "@timestamp", + "created_at", + "operation_type", + "actor_is_bot" + ], + "docs_reference_titles": "/organizations/managing-organization-settings/managing-github-actions-settings-for-your-organization" + }, { "action": "org.set_actions_cache_storage_policy", "description": "The cache storage policy for GitHub Actions was set for an organization.", diff --git a/src/audit-logs/lib/config.json b/src/audit-logs/lib/config.json index f15b46d02e1e..9ad89a9e4ab3 100644 --- a/src/audit-logs/lib/config.json +++ b/src/audit-logs/lib/config.json @@ -9,5 +9,5 @@ "git": "Note: Git events have special access requirements and retention policies that differ from other audit log events. For GitHub Enterprise Cloud, access Git events via the REST API only with 7-day retention. For GitHub Enterprise Server, Git events must be enabled in audit log configuration and are not included in search results.", "sso_redirect": "Note: Automatically redirecting users to sign in is currently in beta for Enterprise Managed Users and subject to change." }, - "sha": "3a5aa25ce42183628586d7d70b75df063e1a63f4" + "sha": "6b52e4ab29da3cf5e16fd79318ceb4ede304f8fa" } \ No newline at end of file From 732a6b78b7dc3e08f771f077dcdaf593da6526be Mon Sep 17 00:00:00 2001 From: Greg Mondello <72952982+gmondello@users.noreply.github.com> Date: Thu, 23 Oct 2025 08:35:36 -0500 Subject: [PATCH 4/6] Add budget alerts section to documentation (#58114) --- content/billing/concepts/budgets-and-alerts.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/billing/concepts/budgets-and-alerts.md b/content/billing/concepts/budgets-and-alerts.md index b17cce752007..5664eae946e7 100644 --- a/content/billing/concepts/budgets-and-alerts.md +++ b/content/billing/concepts/budgets-and-alerts.md @@ -30,6 +30,10 @@ Each budget has a type and a scope that define which paid use contributes to spe * **Type**: Defines which metered product or SKU is measured. * **Scope**: Defines whether the budget applies to the whole account, or to a subset of repositories, organizations, or cost centers (enterprise only). +## Budget alerts + +You can enable alerts for budgets to receive emails when usage reaches 75%, 90%, and 100% of the budget amount. Emails are sent to account owners and billing managers by default. Additional recipients can be added as needed. + ## Your first billing cycle after creating a budget When you first create a budget, be aware that the budget applies only to metered usage from the date of its creation onwards. Any use made before you created the budget is not included in the calculations. This means that you may exceed your budget in the first billing cycle after you create your budget, even if you select the option stop usage when the limit is reached. From 57f6443fa07651cf4d3b659ea241019a9960fe34 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Thu, 23 Oct 2025 06:44:59 -0700 Subject: [PATCH 5/6] Delete orphaned files (2025-10-20-16-29) (#58062) Co-authored-by: John Clement <70238417+jclement136@users.noreply.github.com> --- .../webhooks/pull_request_review_thread_short_desc.md | 1 - data/reusables/webhooks/pull_request_thread_properties.md | 5 ----- data/reusables/webhooks/sponsorship_event_api_properties.md | 3 --- data/reusables/webhooks/sponsorship_properties.md | 3 --- data/reusables/webhooks/sponsorship_short_desc.md | 1 - 5 files changed, 13 deletions(-) delete mode 100644 data/reusables/webhooks/pull_request_review_thread_short_desc.md delete mode 100644 data/reusables/webhooks/pull_request_thread_properties.md delete mode 100644 data/reusables/webhooks/sponsorship_event_api_properties.md delete mode 100644 data/reusables/webhooks/sponsorship_properties.md delete mode 100644 data/reusables/webhooks/sponsorship_short_desc.md diff --git a/data/reusables/webhooks/pull_request_review_thread_short_desc.md b/data/reusables/webhooks/pull_request_review_thread_short_desc.md deleted file mode 100644 index d0496c2448db..000000000000 --- a/data/reusables/webhooks/pull_request_review_thread_short_desc.md +++ /dev/null @@ -1 +0,0 @@ -Activity related to a comment thread on a pull request being marked as resolved or unresolved. {% data reusables.webhooks.action_type_desc %} diff --git a/data/reusables/webhooks/pull_request_thread_properties.md b/data/reusables/webhooks/pull_request_thread_properties.md deleted file mode 100644 index b21679ac0ae5..000000000000 --- a/data/reusables/webhooks/pull_request_thread_properties.md +++ /dev/null @@ -1,5 +0,0 @@ -Key | Type | Description -----|------|------------ -`action` | `string` | The action that was performed. Can be one of: -`pull_request` | `object` | The [pull request](/rest/pulls) the thread pertains to. -`thread` | `object` | The thread that was affected. diff --git a/data/reusables/webhooks/sponsorship_event_api_properties.md b/data/reusables/webhooks/sponsorship_event_api_properties.md deleted file mode 100644 index 838e6444c894..000000000000 --- a/data/reusables/webhooks/sponsorship_event_api_properties.md +++ /dev/null @@ -1,3 +0,0 @@ -Key | Type | Description -----|------|------------- -`action` |`string` | The action that was performed. This can be `created`. diff --git a/data/reusables/webhooks/sponsorship_properties.md b/data/reusables/webhooks/sponsorship_properties.md deleted file mode 100644 index 6bc828cf73be..000000000000 --- a/data/reusables/webhooks/sponsorship_properties.md +++ /dev/null @@ -1,3 +0,0 @@ -`effective_date` | `string` | The `pending_cancellation` and `pending_tier_change` event types will include the date the cancellation or tier change will take effect. -`changes[tier][from]` | `object` | The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the [pending tier change payload](/webhooks-and-events/webhooks/webhook-events-and-payloads#webhook-payload-example-when-someone-downgrades-a-sponsorship). -`changes[privacy_level][from]` | `string` | The `edited` event types include the details about the change when someone edits a sponsorship to change the privacy. diff --git a/data/reusables/webhooks/sponsorship_short_desc.md b/data/reusables/webhooks/sponsorship_short_desc.md deleted file mode 100644 index d8c74695df85..000000000000 --- a/data/reusables/webhooks/sponsorship_short_desc.md +++ /dev/null @@ -1 +0,0 @@ -Activity related to a sponsorship listing. {% data reusables.webhooks.action_type_desc %} For more information, see [AUTOTITLE](/sponsors/getting-started-with-github-sponsors/about-github-sponsors). From 7fc49539845d890e435b1f9df66fb843acbe5ebd Mon Sep 17 00:00:00 2001 From: vaindil Date: Thu, 23 Oct 2025 10:04:45 -0400 Subject: [PATCH 6/6] Add shift+click option for multi-line PR comments (#58113) --- data/reusables/repositories/multiple-lines-comment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/reusables/repositories/multiple-lines-comment.md b/data/reusables/repositories/multiple-lines-comment.md index 96c50cc0a99e..e05861e6541f 100644 --- a/data/reusables/repositories/multiple-lines-comment.md +++ b/data/reusables/repositories/multiple-lines-comment.md @@ -1 +1 @@ -1. Optionally, you can add a comment on multiple lines. You can click the line number of the first line you want to comment on and drag down to select a range of lines, then click the blue comment icon on the last line you want to comment on. Alternatively, you can click the blue comment icon next to the first line you want to comment on, then drag down to the last line you want to comment on. +1. Optionally, you can add a comment on multiple lines. To select a range of lines, click the line number of the first line you want to comment on, then either drag down to the final line, or hold down Shift and click on the last line number. You can then click the blue comment icon on the last line you want to comment on. Alternatively, you can click the blue comment icon next to the first line you want to comment on, then drag down to the last line you want to comment on.