diff --git a/content/billing/managing-your-billing/managing-your-payment-and-billing-information.md b/content/billing/managing-your-billing/managing-your-payment-and-billing-information.md index 201db6c901b0..911d357c6c13 100644 --- a/content/billing/managing-your-billing/managing-your-payment-and-billing-information.md +++ b/content/billing/managing-your-billing/managing-your-payment-and-billing-information.md @@ -24,11 +24,24 @@ product: '{% data reusables.billing.enhanced-billing-platform-product %}' shortTitle: Manage your payment information --- -You can view your payment information and history, and update your billing contacts. Supported payment methods include: +You can view your payment information and history, and update your billing contacts. -* Credit card -* PayPal -* Azure Subscription ID (not available for personal accounts) +## Supported payment methods + +These are the supported payment methods for metered billing: + +* Invoice – Managed accounts only +* Credit card – Unmanaged accounts, or as a nonrecurring method for managed accounts +* PayPal – Unmanaged accounts, or as a nonrecurring method for managed accounts +* Azure Subscription ID – Not available for personal accounts +* Automated Clearing House (ACH) – Managed accounts only + +Accounts with volume licenses and metered billing can use multiple payment methods. + +* For unmanaged accounts, you might pay for volume licenses with a credit card or PayPal, and metered usage with an Azure Subscription ID. +* For managed accounts, you might pay for volume licenses via invoice, and metered usage via Azure Subscription ID. + +{% data variables.product.prodname_copilot_short %} standalone accounts, which traditionally used Azure Subscription IDs, can now also pay by credit card. Contact your {% data variables.product.github %} representative for details. {% ifversion fpt %} @@ -101,6 +114,16 @@ You can view and edit your billing information, update your payment method, and 1. Click **Edit** to edit your payment information or **Remove** to delete your payment method. 1. Follow the prompts. +>[!NOTE] You may see an authorization hold on your provided payment method once its updated or after accruing significant usage of metered services. Authorization holds are temporary and are released as quickly as possible. + +## Troubleshooting payment method issues + +If you encounter issues when adding or updating your payment method, you can try the following: + +1. Retry adding your payment method. +1. Try adding a new payment method. +1. Reach out to {% data variables.contact.github_support %} or your customer representative for additional assistance. + ## Viewing payment history You can view your payment history, including the date, amount, and payment method. You can also download past payments. diff --git a/content/copilot/concepts/about-copilot-coding-agent.md b/content/copilot/concepts/about-copilot-coding-agent.md index fd622cc1c55e..83d697e91ef4 100644 --- a/content/copilot/concepts/about-copilot-coding-agent.md +++ b/content/copilot/concepts/about-copilot-coding-agent.md @@ -17,7 +17,6 @@ redirect_from: > [!NOTE] > * {% data reusables.copilot.coding-agent.preview-note-text %} -> * The setting that blocks suggestions matching public code may not work as intended when using {% data variables.copilot.copilot_coding_agent %}. See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-your-copilot-plan/managing-copilot-policies-as-an-individual-subscriber#enabling-or-disabling-suggestions-matching-public-code). ## Overview of {% data variables.copilot.copilot_coding_agent %} @@ -31,10 +30,10 @@ With {% data variables.copilot.copilot_coding_agent %}, {% data variables.produc * Update documentation * Address technical debt -To delegate development tasks to {% data variables.product.prodname_copilot_short %}, you can: +To delegate tasks to {% data variables.product.prodname_copilot_short %}, you can: * Assign an issue to {% data variables.product.prodname_copilot_short %}. See [AUTOTITLE](/copilot/using-github-copilot/coding-agent/using-copilot-to-work-on-an-issue). -* Use {% data variables.copilot.copilot_chat %} to ask {% data variables.product.prodname_copilot_short %} to create a pull request. See [AUTOTITLE](/copilot/using-github-copilot/coding-agent/asking-copilot-to-create-a-pull-request). +* Ask {% data variables.product.prodname_copilot_short %} to create a pull request from the Agents page on {% data variables.product.github %}, {% data variables.copilot.copilot_chat %} or your favorite IDE or agentic coding tool with MCP support. See [AUTOTITLE](/copilot/using-github-copilot/coding-agent/asking-copilot-to-create-a-pull-request). {% data variables.product.prodname_copilot_short %} will evaluate the task it has been assigned based on the prompt you give it—whether that's from the issue description or a chat message. Then {% data variables.product.prodname_copilot_short %} will make the required changes and open a pull request. When {% data variables.product.prodname_copilot_short %} finishes, it will request a review from you, and you can leave pull request comments to ask {% data variables.product.prodname_copilot_short %} to iterate. @@ -109,6 +108,7 @@ Users can include hidden messages in issues assigned to {% data variables.produc * **{% data variables.product.prodname_copilot_short %} does not work with self-hosted {% data variables.product.prodname_actions %} runners**. {% data variables.product.prodname_copilot_short %} has access to its own development environment, running in {% data variables.product.prodname_actions %}, and must use {% data variables.product.prodname_dotcom %}-hosted runners. See [AUTOTITLE](/copilot/customizing-copilot/customizing-the-development-environment-for-copilot-coding-agent#upgrading-to-larger-github-hosted-github-actions-runners). * **{% data variables.copilot.copilot_coding_agent %} does not work in personal repositories owned by {% data variables.enterprise.prodname_managed_users %}**. This is because {% data variables.copilot.copilot_coding_agent %} requires {% data variables.product.company_short %}-hosted runners, which are not available to repositories owned by {% data variables.enterprise.prodname_managed_users %}. See [AUTOTITLE](/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners). * **{% data variables.product.prodname_copilot_short %} doesn't account for content exclusions**. Content exclusions allow administrators to configure {% data variables.product.prodname_copilot_short %} to ignore certain files. When using {% data variables.copilot.copilot_coding_agent %}, {% data variables.product.prodname_copilot_short %} will not ignore these files, and will be able to see and update them. See [AUTOTITLE](/copilot/managing-copilot/configuring-and-auditing-content-exclusion/excluding-content-from-github-copilot). +* **{% data variables.copilot.copilot_coding_agent %} does not apply the "Suggestions matching public code" policy**. {% data variables.product.prodname_copilot_short %} may still produce suggestions matching public code, even if the "Suggestions matching public code" policy is set to "Block." If this happens, {% data variables.product.prodname_copilot_short %} will not provide code references pointing to the original source of the code. See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-your-copilot-plan/managing-copilot-policies-as-an-individual-subscriber#enabling-or-disabling-suggestions-matching-public-code). * **{% data variables.copilot.copilot_coding_agent %} is not available in {% data variables.enterprise.data_residency %}**. The agent is only available in {% data variables.product.prodname_dotcom_the_website %}. ## Hands-on practice diff --git a/content/copilot/concepts/build-copilot-extensions/index.md b/content/copilot/concepts/build-copilot-extensions/index.md index bc443358dab5..cb8e82ab6e25 100644 --- a/content/copilot/concepts/build-copilot-extensions/index.md +++ b/content/copilot/concepts/build-copilot-extensions/index.md @@ -10,5 +10,6 @@ children: - /about-building-copilot-extensions - /agents-for-copilot-extensions - /skillsets-for-copilot-extensions + - /openid-connect --- diff --git a/content/copilot/concepts/build-copilot-extensions/openid-connect.md b/content/copilot/concepts/build-copilot-extensions/openid-connect.md new file mode 100644 index 000000000000..8a4aea8a8751 --- /dev/null +++ b/content/copilot/concepts/build-copilot-extensions/openid-connect.md @@ -0,0 +1,90 @@ +--- +title: OpenID Connect (OIDC) for Copilot Extensions +intro: 'Learn how OpenID Connect (OIDC) enables {% data variables.copilot.copilot_extensions_short %} to securely authenticate users and access cloud resources without storing long-lived credentials.' +versions: + feature: copilot-extensions +topics: + - Copilot +shortTitle: OpenID Connect +allowTitleToDifferFromFilename: true +type: overview +--- + +## About OpenID Connect (OIDC) for {% data variables.copilot.copilot_extensions_short %} + +OpenID Connect (OIDC) allows {% data variables.copilot.copilot_extensions_short %} to exchange short-lived tokens directly from their cloud provider instead of storing long-lived {% data variables.product.github %} credentials. This feature enables both Copilot agents and skillsets to more securely authenticate users and access cloud resources. + +### Overview of OIDC + +{% data variables.copilot.copilot_extensions_short %} often need to access third-party resources or APIs on behalf of users. Traditionally, this required storing {% data variables.product.github %} tokens as secrets and making additional API calls to map these tokens to user identities in your system. With OIDC, your extension can request short-lived access tokens directly from your authentication service by exchanging {% data variables.product.github %} identity information. + +When enabled, {% data variables.product.github %}'s OIDC provider automatically generates a token containing claims about the user and the request context. Your authentication service can validate these claims and exchange them for an access token scoped specifically for your service. + +Using OIDC is especially valuable for {% data variables.product.prodname_copilot_short %} skillsets development because it allows you to leverage your existing API endpoints without maintaining separate {% data variables.product.github %}-specific endpoints. Instead of duplicating endpoints to accept {% data variables.product.github %} tokens, you can use OIDC to translate {% data variables.product.github %} identities into your service’s native authentication tokens. + +### Benefits of using OIDC + +By implementing OIDC token exchange in your {% data variables.copilot.copilot_extension_short %}, you can: + +* Avoid storing long-lived {% data variables.product.github %} tokens or maintain a mapping between {% data variables.product.github %} and your service's identities. +* Use short-lived tokens that automatically expire and can be scoped specifically to your service's needs. +* Avoid making additional calls to {% data variables.product.github %}'s API to validate tokens and fetch user information. +* Enable direct integration for {% data variables.product.prodname_copilot_short %} Skills with your existing APIs without maintaining separate endpoints for {% data variables.product.github %}. +* Reuse existing API endpoints by translating {% data variables.product.github %} authentication into your service's native tokens. + +## About token exchange flow + +The following outlines how the {% data variables.copilot.copilot_extensibility_platform_short %} exchanges an OIDC token for an access token to authenticate requests to your extension. + +### Initial request + +1. The user sends a message to your {% data variables.copilot.copilot_extension_short %}. +1. GitHub generates an OIDC token containing user identity information. +1. GitHub calls your token exchange endpoint with the OIDC token. +1. Your service validates the token and returns an access token. +1. GitHub includes your access token in the request to your extension. + +```http request +# HTTP header +Authorization: Bearer +X-GitHub-Token: +``` + +### Subsequent requests + +1. {% data variables.product.github %} caches your access token for up to 10 minutes. +1. The cached token is reused for subsequent requests. +1. If the token expires or becomes invalid, {% data variables.product.github %} requests a new one. + +## Understanding OIDC tokens + +The OIDC token from {% data variables.product.github %} is a JWT containing claims about the user and request context: + +```json +{ + "jti": "", + "sub": "", + "aud": "", + "iss": "https://github.com/login/oauth", + "nbf": 1632492967, + "exp": 1632493867, + "iat": 1632493567, + "act": { + "sub": "api.copilotchat.com" + } +} +``` + +## Best practices + +* Scope tokens to the minimum required permissions. +* Implement proper error handling and logging. +* Monitor token exchange patterns for security anomalies. +* Keep tokens short-lived to minimize security risks. +* Validate all claims before issuing access tokens. +* Consider implementing rate limiting on your token exchange endpoint. +* Use HTTPS for all token exchange communications. + +## Next steps + +* [AUTOTITLE](/copilot/how-tos/build-copilot-extensions/set-up-oidc) diff --git a/content/copilot/concepts/content-exclusion-for-github-copilot.md b/content/copilot/concepts/content-exclusion-for-github-copilot.md new file mode 100644 index 000000000000..9cd1c27921ed --- /dev/null +++ b/content/copilot/concepts/content-exclusion-for-github-copilot.md @@ -0,0 +1,62 @@ +--- +title: Content exclusion for GitHub Copilot +shortTitle: Content exclusion +intro: 'You can prevent {% data variables.product.prodname_copilot_short %} from accessing certain files.' +product: '{% data reusables.gated-features.copilot-business-and-enterprise %}' +versions: + feature: copilot +topics: + - Copilot +--- + +## About content exclusion for {% data variables.product.prodname_copilot_short %} + +You can use content exclusion to configure {% data variables.product.prodname_copilot_short %} to ignore certain files. When you exclude content from {% data variables.product.prodname_copilot_short %}: + +* Code completion will not be available in the affected files. +* The content in affected files will not inform code completion suggestions in other files. +* The content in affected files will not inform {% data variables.copilot.copilot_chat %}'s responses. +* Affected files will not be reviewed in a {% data variables.product.prodname_copilot_short %} code review. + +### Who can configure content exclusion + +Repository administrators, organization owners, and enterprise owners can configure content exclusion. + +{% data reusables.copilot.content-exclusions-scope %} + +### Availability of content exclusion + +The {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} plans provide the following level of support for content exclusion. + +| Tool | Code completion support | {% data variables.copilot.copilot_chat_short %} support | +|-------------------------------------------------|:---------------------------------------------:|:----------------------------------------------------------------:| +| {% data variables.product.prodname_vs %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | +| {% data variables.product.prodname_vscode %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | +| JetBrains IDEs | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | +| Vim/Neovim | {% octicon "check" aria-label="Supported" %} | Not applicable | +| Xcode | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | +| Eclipse | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | +| Azure Data Studio | {% octicon "x" aria-label="Not supported" %} | Not applicable | +| The {% data variables.product.github %} website | Not applicable | {% octicon "check" aria-label="Supported" %} | +| {% data variables.product.prodname_mobile %} | Not applicable | {% octicon "check" aria-label="Supported" %} | + +Content exclusions also apply to {% data variables.copilot.copilot_code-review_short %} on the {% data variables.product.github %} website. + +> [!NOTE] +> * Content exclusion is in {% data variables.release-phases.public_preview %} on the {% data variables.product.github %} website and in {% data variables.product.prodname_mobile %} and is subject to change. +> * Content exclusion is currently not supported in Edit and Agent modes of {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_vscode %}. + +### Limitations of content exclusion + +{% data reusables.copilot.content-exclusion-limitations %} + +Currently, content exclusions do not apply to symbolic links (symlinks). + +### Data sent to {% data variables.product.prodname_dotcom %} + +After you configure content exclusion, the client (for example, the {% data variables.product.prodname_copilot_short %} extension for {% data variables.product.prodname_vscode_shortname %}) sends the current repository URL to the {% data variables.product.prodname_dotcom %} server so that the server can return the correct policy to the client. These URLs are not logged anywhere. + +## Further reading + +* [AUTOTITLE](/copilot/how-tos/content-exclusion/excluding-content-from-github-copilot) +* [AUTOTITLE](/copilot/how-tos/content-exclusion/reviewing-changes-to-content-exclusions-for-github-copilot) diff --git a/content/copilot/concepts/index.md b/content/copilot/concepts/index.md index 8acd60a05b7c..5e662c15f04e 100644 --- a/content/copilot/concepts/index.md +++ b/content/copilot/concepts/index.md @@ -10,8 +10,9 @@ children: - /copilot-billing - /prompt-engineering-for-copilot-chat - /about-customizing-github-copilot-chat-responses - - /about-copilot-coding-agent + - /content-exclusion-for-github-copilot - /indexing-repositories-for-copilot-chat + - /about-copilot-coding-agent - /about-organizing-and-sharing-context-with-copilot-spaces - /build-copilot-extensions --- diff --git a/content/copilot/how-tos/administer/organizations/index.md b/content/copilot/how-tos/administer/organizations/index.md index 4270065cbfae..699e7bf2971c 100644 --- a/content/copilot/how-tos/administer/organizations/index.md +++ b/content/copilot/how-tos/administer/organizations/index.md @@ -13,7 +13,6 @@ topics: children: - /managing-the-copilot-plan-for-your-organization - /managing-policies-for-copilot-in-your-organization - - /configuring-your-proxy-server-or-firewall-for-copilot - /managing-access-to-github-copilot-in-your-organization - /adding-copilot-coding-agent-to-organization - /reviewing-activity-related-to-github-copilot-in-your-organization diff --git a/content/copilot/how-tos/agents/copilot-coding-agent/asking-copilot-to-create-a-pull-request.md b/content/copilot/how-tos/agents/copilot-coding-agent/asking-copilot-to-create-a-pull-request.md index 5e7d9c71d2da..86640f4e92eb 100644 --- a/content/copilot/how-tos/agents/copilot-coding-agent/asking-copilot-to-create-a-pull-request.md +++ b/content/copilot/how-tos/agents/copilot-coding-agent/asking-copilot-to-create-a-pull-request.md @@ -1,7 +1,7 @@ --- title: Asking Copilot to create a pull request -shortTitle: Create a PR from chat -intro: 'You can ask {% data variables.product.prodname_copilot_short %} to create a pull request from the Agents page or from {% data variables.copilot.copilot_chat_short %}.' +shortTitle: Create a PR +intro: 'You can ask {% data variables.product.prodname_copilot_short %} to create a pull request from the Agents page, {% data variables.copilot.copilot_chat_short %}, or agentic coding tools and IDEs with Model Context Protocol (MCP) support.' product: '{% data reusables.gated-features.copilot-coding-agent %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' versions: feature: copilot @@ -20,7 +20,11 @@ redirect_from: ## Introduction -You can ask {% data variables.product.prodname_copilot_short %} to work on a task from the Agents page on {% data variables.product.github %}, or from {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_vscode %}, {% data variables.product.prodname_vs %}, JetBrains IDEs and {% data variables.product.prodname_dotcom_the_website %}. +You can ask {% data variables.product.prodname_copilot_short %} to work on a task from: + +* The Agents page on {% data variables.product.github %} +* {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_vscode %}, {% data variables.product.prodname_vs %}, JetBrains IDEs and {% data variables.product.prodname_dotcom_the_website %} +* Your preferred IDE or agentic coding tool with Model Context Protocol (MCP) support {% data variables.product.prodname_copilot_short %} will start working on the task, raise a pull request, then request a review from you when it's finished working. For more information, see [AUTOTITLE](/copilot/using-github-copilot/coding-agent/about-assigning-tasks-to-copilot). @@ -41,18 +45,31 @@ You can ask {% data variables.product.prodname_copilot_short %} to work on a tas {% data variables.product.prodname_copilot_short %} will start a new session, which will appear in the list below the prompt box. {% data variables.product.prodname_copilot_short %} will work on the task and push changes to its pull request, then add you as a reviewer when it has finished, triggering a notification. -## Asking {% data variables.product.prodname_copilot_short %} to create a pull request from {% data variables.copilot.copilot_chat_short %} +## Asking {% data variables.product.prodname_copilot_short %} to create a pull request from {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_vscode %} -> [!NOTE] -> * You can ask {% data variables.product.prodname_copilot_short %} to create a pull request from {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_vscode %}, {% data variables.product.prodname_vs %}, JetBrains IDEs, and on {% data variables.product.prodname_dotcom_the_website %}. +1. Install the [GitHub Pull Requests extension](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github) for {% data variables.product.prodname_vscode %}. +1. Open {% data variables.copilot.copilot_chat %} in {% data variables.product.prodname_vscode %}. +1. Type a prompt explaining what you want {% data variables.product.prodname_copilot_short %} to do, and add `#copilotCodingAgent` to the prompt. -1. Open {% data variables.copilot.copilot_chat %}, in your IDE or on {% data variables.product.prodname_dotcom_the_website %}. -1. Type a prompt asking {% data variables.product.prodname_copilot_short %} to create a pull request, and giving details of what you want {% data variables.product.prodname_copilot_short %} to change. + For example, `Put backticks around file names and variables in output #copilotCodingAgent` - For example, `@github Create a PR to put backticks around file names and variables in output.` + > [!TIP] + > * To help {% data variables.product.prodname_copilot_short %}, you can select the relevant line(s) of code before submitting your prompt. + +1. Submit your prompt. - > [!IMPORTANT] - > {% data reusables.copilot.coding-agent.use-chat-participant-in-vsc %} + {% data variables.product.prodname_copilot_short %} will typically do some research and context-gathering in {% data variables.product.prodname_vscode %}, and then will ask you to confirm that you want to use the coding agent to create a pull request. + +1. Click **Continue**. + + {% data variables.product.prodname_copilot_short %} will push up any local changes, start a new session and respond with a link to the pull request it creates. It will work on the task and push changes to the pull request, and then add you as a reviewer when it has finished, triggering a notification. + +## Asking {% data variables.product.prodname_copilot_short %} to create a pull request from {% data variables.copilot.copilot_chat_short %} in other IDEs + +1. Open {% data variables.copilot.copilot_chat %} in {% data variables.product.prodname_vs %} or JetBrains IDEs. +1. Type a prompt, starting with `@github`, asking {% data variables.product.prodname_copilot_short %} to create a pull request, and giving details of what you want {% data variables.product.prodname_copilot_short %} to change. + + For example, `@github Create a PR to put backticks around file names and variables in output.` > [!TIP] > * To help {% data variables.product.prodname_copilot_short %}, you can select the relevant line(s) of code before submitting your prompt. @@ -66,6 +83,24 @@ You can ask {% data variables.product.prodname_copilot_short %} to work on a tas {% data variables.product.prodname_copilot_short %} will start a new session and respond with a link to the pull request it creates. It will work on the task and push changes to the pull request, and then add you as a reviewer when it has finished, triggering a notification. +## Asking {% data variables.product.prodname_copilot_short %} to create a pull request from {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_dotcom_the_website %} + +1. Open {% data variables.copilot.copilot_chat %} on {% data variables.product.prodname_dotcom_the_website %}. +1. Type a prompt asking {% data variables.product.prodname_copilot_short %} to create a pull request, and giving details of what you want {% data variables.product.prodname_copilot_short %} to change. + + For example, `Create a PR in monalisa/bookstore to put backticks around file names and variables in output.` + + > [!TIP] + > * You can ask {% data variables.product.prodname_copilot_short %} to open a pull request using a specific branch as the base branch by including it in your prompt. + +1. Submit your prompt. + + {% data variables.product.prodname_copilot_short %} asks you to confirm that you want to use the coding agent to create a pull request. + +1. Click **Allow**. + + {% data variables.product.prodname_copilot_short %} will start a new session and respond with a link to the pull request it creates. It will work on the task and push changes to the pull request, and then add you as a reviewer when it has finished, triggering a notification. + ## Asking {% data variables.product.prodname_copilot_short %} to create a pull request from the {% data variables.product.github %} MCP server As an alternative to using {% data variables.copilot.copilot_chat_short %}, you can use the remote {% data variables.product.github %} MCP server to trigger {% data variables.copilot.copilot_coding_agent %} from any MCP host. @@ -92,11 +127,7 @@ As an alternative to using {% data variables.copilot.copilot_chat_short %}, you ## Monitoring progress -You can view your current and past {% data variables.product.prodname_copilot_short %} sessions from the [Agents page](https://github.com/copilot/agents). See [AUTOTITLE](/copilot/using-github-copilot/coding-agent/using-the-copilot-coding-agent-logs). - -You can see what {% data variables.product.prodname_copilot_short %} is doing while it is working on a task by viewing the session logs. You can access the session logs by clicking the **View session** button in the timeline of {% data variables.product.prodname_copilot_short %}'s pull request. - -From the session logs page, you can also stop {% data variables.product.prodname_copilot_short %} from working on a task by clicking **Stop session**. +You can view your current and past {% data variables.product.prodname_copilot_short %} sessions from the [Agents page](https://github.com/copilot/agents) and {% data variables.product.prodname_vscode %}. See [AUTOTITLE](/copilot/how-tos/agents/copilot-coding-agent/tracking-copilots-sessions). ## Further reading diff --git a/content/copilot/how-tos/agents/copilot-coding-agent/tracking-copilots-sessions.md b/content/copilot/how-tos/agents/copilot-coding-agent/tracking-copilots-sessions.md index 23a90e1be3ac..925e443f5806 100644 --- a/content/copilot/how-tos/agents/copilot-coding-agent/tracking-copilots-sessions.md +++ b/content/copilot/how-tos/agents/copilot-coding-agent/tracking-copilots-sessions.md @@ -1,7 +1,7 @@ --- title: Tracking Copilot's sessions shortTitle: Track Copilot sessions -intro: "You can use the Agents page and session logs to track {% data variables.product.prodname_copilot_short %}'s progress and understand its approach." +intro: "You can use the Agents page, {% data variables.product.prodname_vscode %} and session logs to track {% data variables.product.prodname_copilot_short %}'s progress and understand its approach." product: '{% data reusables.gated-features.copilot-coding-agent %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' versions: feature: copilot @@ -25,6 +25,8 @@ After you give {% data variables.product.prodname_copilot_short %} a task, it wo The [Agents page](https://github.com/copilot/agents) provides an overview of your agent sessions across repositories. From this page, you can kick off new tasks and track {% data variables.product.prodname_copilot_short %}'s progress. +You can also track {% data variables.product.prodname_copilot_short %}'s sessions in a specific repository from {% data variables.product.prodname_vscode %}. + During or after an agent session, you can inspect the session logs to understand {% data variables.product.prodname_copilot_short %}'s approach to your problem. ## Tracking agent sessions from the Agents page @@ -37,15 +39,27 @@ You can also reach this page by clicking the **{% octicon "copilot" aria-label=" For each session listed below the prompt field, you can see its status at a glance, or click on it to navigate to the linked pull request. +To view the session logs, click through to the pull request in the list, then find the "{% data variables.product.prodname_copilot_short %} started work..." event in the timeline, and then click **View session**. + +![Screenshot of a section of a pull request with the 'View session' button highlighted.](/assets/images/help/copilot/coding-agent/log-view-session.png) + You can also start new agent sessions from this page. See [AUTOTITLE](/copilot/how-tos/agents/copilot-coding-agent/asking-copilot-to-create-a-pull-request). -## Using the session logs to understand {% data variables.product.prodname_copilot_short %}'s approach +## Tracking sessions from {% data variables.product.prodname_vscode %} -You can dive into {% data variables.product.prodname_copilot_short %}'s session logs to understand how it approached your task. +You can see a list of your running and past agent sessions for a specific repository in {% data variables.product.prodname_vscode %} with the [GitHub Pull Requests extension](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github). -To view the session logs, click **View session** in the pull request timeline. +Once you've installed the extension, you can see {% data variables.product.prodname_copilot_short %}'s sessions by clicking the **{% data variables.product.github %}** button in the sidebar. -![Screenshot of a section of a pull request with the 'View session' button highlighted.](/assets/images/help/copilot/coding-agent/log-view-session.png) +For each session listed, you can see its status at a glance, or click on it to navigate to the pull request within {% data variables.product.prodname_vscode %}. + +To view the session logs, click on the pull request in the list, then click **View Session**. + +You can also start new agent sessions from {% data variables.product.prodname_vscode %}. See [AUTOTITLE](/copilot/how-tos/agents/copilot-coding-agent/asking-copilot-to-create-a-pull-request#asking-copilot-to-create-a-pull-request-from-copilot-chat-in-visual-studio-code). + +## Using the session logs to understand {% data variables.product.prodname_copilot_short %}'s approach + +You can dive into {% data variables.product.prodname_copilot_short %}'s session logs in {% data variables.product.github %} or {% data variables.product.prodname_vscode %} to understand how it approached your task. In the session logs, you can see {% data variables.product.prodname_copilot_short %}'s internal monologue and the tools it used to understand your repository, make changes and validate its work. diff --git a/content/copilot/how-tos/build-copilot-extensions/index.md b/content/copilot/how-tos/build-copilot-extensions/index.md index aad8b0a33c56..e222b4a5b397 100644 --- a/content/copilot/how-tos/build-copilot-extensions/index.md +++ b/content/copilot/how-tos/build-copilot-extensions/index.md @@ -11,7 +11,7 @@ children: - /creating-a-copilot-extension - /building-a-copilot-agent-for-your-copilot-extension - /building-a-copilot-skillset-for-your-copilot-extension - - /using-oidc-with-github-copilot-extensions + - /set-up-oidc - /debugging-your-github-copilot-extension - /managing-the-availability-of-your-copilot-extension redirect_from: diff --git a/content/copilot/how-tos/build-copilot-extensions/set-up-oidc.md b/content/copilot/how-tos/build-copilot-extensions/set-up-oidc.md new file mode 100644 index 000000000000..0441435f0930 --- /dev/null +++ b/content/copilot/how-tos/build-copilot-extensions/set-up-oidc.md @@ -0,0 +1,108 @@ +--- +title: Setting up OIDC for your GitHub Copilot extension +intro: 'Learn how to set up OpenID Connect (OIDC) with your {% data variables.copilot.copilot_extension_short %} to enhance security.' +versions: + feature: copilot-extensions +topics: + - Copilot +shortTitle: Set up OIDC +type: how_to +allowTitleToDifferFromFilename: true +redirect_from: + - /copilot/building-copilot-extensions/using-oidc-with-copilot-extensions + - /copilot/building-copilot-extensions/using-oidc-with-github-copilot-extensions + - /copilot/how-tos/build-copilot-extensions/using-oidc-with-github-copilot-extensions +--- + +## Introduction + +You can set up OIDC so that {% data variables.product.prodname_copilot_short %} agents and skillsets can more securely authenticate users and access cloud resources. For more information on OIDC, see [AUTOTITLE](/copilot/concepts/build-copilot-extensions/openid-connect). + +There are three steps to setting up OIDC for your extension. +* [Configure your token exchange endpoint](#configure-your-token-exchange-endpoint). +* [Enable OIDC in your Copilot extensions settings](#enable-oidc-in-your-copilot-extensions-settings). +* [Validate OIDC tokens](#validate-oidc-tokens). + +## Configure your token exchange endpoint + +Create an endpoint in your service that conforms to the [RFC 8693 OAuth 2.0 Token Exchange](https://www.rfc-editor.org/rfc/rfc8693.html). +This endpoint should: +* Accept `POST` requests with the following form-encoded parameters: + + ```http request + grant_type=urn:ietf:params:oauth:grant-type:token-exchange + &resource= + &subject_token= + &subject_token_type=urn:ietf:params:oauth:token-type:id_token + ``` + +* Return a JSON response with your service's access token: + + ```json + { + "access_token": <"your-service-token">, + "issued_token_type":"urn:ietf:params:oauth:token-type:access_token", + "token_type": "Bearer", + "expires_in": 3600 + } + ``` + +* Return an error response when validation fails: + + ```json + { + "error": "invalid_request" + } + ``` + +## Enable OIDC in your {% data variables.copilot.copilot_extension_short %}'s settings + +In your {% data variables.copilot.copilot_extension_short %}'s configuration, enable OIDC: + +{% data reusables.apps.settings-step %} +{% data reusables.apps.enterprise-apps-steps %} +1. To the right of the {% data variables.product.prodname_github_app %} you want to configure for your {% data variables.copilot.copilot_extension_short %}, click **Edit**. +1. In the left sidebar, click **{% data variables.product.prodname_copilot_short %}**. +1. Under **OpenID Connect Token Exchange**, check **Enabled**. +1. In the **Token exchange endpoint** field, input your token exchange URL. +1. In the **Request header key** field, input the header key for your service's token. The default is `Authorization`. +1. In the **Request header value** field, input the header value format. The default is `Bearer ${token}`. + +## Validate OIDC tokens + +Your token exchange endpoint should validate the {% data variables.product.github %} OIDC token by following the steps below: +1. Fetch the JSON Web Key Set (JWKS) from https://github.com/login/oauth/.well-known/openid-configuration. +1. Verify the token signature. +1. Validate required claims. + * `aud`: Audience. Your {% data variables.copilot.copilot_extension_short %}'s client ID. + * `sub`: Subject. The {% data variables.product.github %} user ID making the request. The response is limited to data that the user has permissions to access. If the user has no permissions `400 Bad Request` is shown. + * `iat`: Issued At. The timestamp when the token was issued. It is typically a timestamp in the past but represents the exact moment the token was created. + * `nbf`: Not Before. The timestamp before which the token is not valid. This should be a timestamp in the past. + * `exp`: Expiration Time. The timestamp when the token expires. This should be a timestamp in the future. + * `act`: Actor. The acting entity in delegated access. This should be a constant string. + +## Troubleshooting + +The following sections outline common problems and best practices for implementing OIDC for your {% data variables.copilot.copilot_extension_short %}. + +### Token validation errors + +* Ensure you're using the correct JWKS endpoint. +* Verify that all the required claims are present and valid. +* Check that timestamps (`iat`, `nbf`, and `exp`) are within valid ranges. + +### Token exchange failures + +* Return `HTTP 400` for invalid tokens. +* Return `HTTP 403` if the user lacks the necessary permissions. +* If {% data variables.product.github %} receives a 403 response, it will retry the request with a new token. + +### Performance issues + +* Implement efficient token validation to minimize latency. +* Use appropriate token expiration times (recommended: 10 minutes or less). +* Consider caching implications for high-traffic extensions. + +## Further reading + +* [AUTOTITLE](/copilot/concepts/build-copilot-extensions/openid-connect) diff --git a/content/copilot/how-tos/build-copilot-extensions/using-oidc-with-github-copilot-extensions.md b/content/copilot/how-tos/build-copilot-extensions/using-oidc-with-github-copilot-extensions.md deleted file mode 100644 index 914019175aaf..000000000000 --- a/content/copilot/how-tos/build-copilot-extensions/using-oidc-with-github-copilot-extensions.md +++ /dev/null @@ -1,175 +0,0 @@ ---- -title: Using OIDC with GitHub Copilot Extensions -intro: 'Learn how to use OpenID Connect (OIDC) with your {% data variables.copilot.copilot_extension_short %} to enhance security.' -versions: - feature: copilot-extensions -topics: - - Copilot -shortTitle: Use OIDC -type: how_to -redirect_from: - - /copilot/building-copilot-extensions/using-oidc-with-copilot-extensions - - /copilot/building-copilot-extensions/using-oidc-with-github-copilot-extensions ---- - -## About OpenID Connect (OIDC) for {% data variables.copilot.copilot_extensions_short %} - -OpenID Connect (OIDC) allows {% data variables.copilot.copilot_extensions_short %} to exchange short-lived tokens directly from their cloud provider instead of storing long-lived {% data variables.product.github %} credentials. This feature enables both Copilot agents and skillsets to more securely authenticate users and access cloud resources. - -## Overview of OIDC - -{% data variables.copilot.copilot_extensions_short %} often need to access third-party resources or APIs on behalf of users. Traditionally, this required storing {% data variables.product.github %} tokens as secrets and making additional API calls to map these tokens to user identities in your system. With OIDC, your extension can request short-lived access tokens directly from your authentication service by exchanging {% data variables.product.github %} identity information. - -When enabled, {% data variables.product.github %}'s OIDC provider automatically generates a token containing claims about the user and the request context. Your authentication service can validate these claims and exchange them for an access token scoped specifically for your service. - -Using OIDC is especially valuable for {% data variables.product.prodname_copilot_short %} skillsets development because it allows you to leverage your existing API endpoints without maintaining separate {% data variables.product.github %}-specific endpoints. Instead of duplicating endpoints to accept {% data variables.product.github %} tokens, you can use OIDC to translate {% data variables.product.github %} identities into your service’s native authentication tokens. - -## Benefits of using OIDC - -By implementing OIDC token exchange in your {% data variables.copilot.copilot_extension_short %}, you can: - -* Avoid storing long-lived {% data variables.product.github %} tokens or maintain a mapping between {% data variables.product.github %} and your service's identities. -* Use short-lived tokens that automatically expire and can be scoped specifically to your service's needs. -* Avoid making additional calls to {% data variables.product.github %}'s API to validate tokens and fetch user information. -* Enable direct integration for {% data variables.product.prodname_copilot_short %} Skills with your existing APIs without maintaining separate endpoints for {% data variables.product.github %}. -* Reuse existing API endpoints by translating {% data variables.product.github %} authentication into your service's native tokens. - -## Token exchange flow - -The following outlines how the {% data variables.copilot.copilot_extensibility_platform_short %} exchanges an OIDC token for an access token to authenticate requests to your extension. - -### Initial request - -1. The user sends a message to your {% data variables.copilot.copilot_extension_short %}. -1. GitHub generates an OIDC token containing user identity information. -1. GitHub calls your token exchange endpoint with the OIDC token. -1. Your service validates the token and returns an access token. -1. GitHub includes your access token in the request to your extension. - -```http request -# HTTP header -Authorization: Bearer -X-GitHub-Token: -``` - -### Subsequent requests - -1. {% data variables.product.github %} caches your access token for up to 10 minutes. -1. The cached token is reused for subsequent requests. -1. If the token expires or becomes invalid, {% data variables.product.github %} requests a new one. - -## Understanding OIDC tokens - -The OIDC token from {% data variables.product.github %} is a JWT containing claims about the user and request context: - -```json -{ - "jti": "", - "sub": "", - "aud": "", - "iss": "https://github.com/login/oauth", - "nbf": 1632492967, - "exp": 1632493867, - "iat": 1632493567, - "act": { - "sub": "api.copilotchat.com" - } -} -``` - -## Setting up OIDC for your extension - -There are three steps to setting up OIDC for your extension. -1. [Configure your token exchange endpoint](#configure-your-token-exchange-endpoint). -1. [Enable OIDC in your Copilot extensions settings](#enable-oidc-in-your-copilot-extensions-settings). -1. [Validate OIDC tokens](#validate-oidc-tokens). - -### Configure your token exchange endpoint - -Create an endpoint in your service that conforms to the [RFC 8693 OAuth 2.0 Token Exchange](https://www.rfc-editor.org/rfc/rfc8693.html). -This endpoint should: -* Accept `POST` requests with the following form-encoded parameters: - - ```http request - grant_type=urn:ietf:params:oauth:grant-type:token-exchange - &resource= - &subject_token= - &subject_token_type=urn:ietf:params:oauth:token-type:id_token - ``` - -* Return a JSON response with your service's access token: - - ```json - { - "access_token": <"your-service-token">, - "issued_token_type":"urn:ietf:params:oauth:token-type:access_token", - "token_type": "Bearer", - "expires_in": 3600 - } - ``` - -* Return an error response when validation fails: - - ```json - { - "error": "invalid_request" - } - ``` - -### Enable OIDC in your {% data variables.copilot.copilot_extension_short %}'s settings - -In your {% data variables.copilot.copilot_extension_short %}'s configuration, enable OIDC: - -{% data reusables.apps.settings-step %} -{% data reusables.apps.enterprise-apps-steps %} -1. To the right of the {% data variables.product.prodname_github_app %} you want to configure for your {% data variables.copilot.copilot_extension_short %}, click **Edit**. -1. In the left sidebar, click **{% data variables.product.prodname_copilot_short %}**. -1. Under **OpenID Connect Token Exchange**, check **Enabled**. -1. In the **Token exchange endpoint** field, input your token exchange URL. -1. In the **Request header key** field, input the header key for your service's token. The default is `Authorization`. -1. In the **Request header value** field, input the header value format. The default is `Bearer ${token}`. - -### Validate OIDC tokens - -Your token exchange endpoint should validate the {% data variables.product.github %} OIDC token by following the steps below: -1. Fetch the JSON Web Key Set (JWKS) from https://github.com/login/oauth/.well-known/openid-configuration. -1. Verify the token signature. -1. Validate required claims. - * `aud`: Audience. Your {% data variables.copilot.copilot_extension_short %}'s client ID. - * `sub`: Subject. The {% data variables.product.github %} user ID making the request. The response is limited to data that the user has permissions to access. If the user has no permissions `400 Bad Request` is shown. - * `iat`: Issued At. The timestamp when the token was issued. It is typically a timestamp in the past but represents the exact moment the token was created. - * `nbf`: Not Before. The timestamp before which the token is not valid. This should be a timestamp in the past. - * `exp`: Expiration Time. The timestamp when the token expires. This should be a timestamp in the future. - * `act`: Actor. The acting entity in delegated access. This should be a constant string. - -## Troubleshooting - -The following sections outline common problems and best practices for implementing OIDC for your {% data variables.copilot.copilot_extension_short %}. - -### Token validation errors - -* Ensure you're using the correct JWKS endpoint. -* Verify that all the required claims are present and valid. -* Check that timestamps (`iat`, `nbf`, and `exp`) are within valid ranges. - -### Token exchange failures - -* Return `HTTP 400` for invalid tokens. -* Return `HTTP 403` if the user lacks the necessary permissions. -* If {% data variables.product.github %} receives a 403 response, it will retry the request with a new token. - -### Performance issues - -* Implement efficient token validation to minimize latency. -* Use appropriate token expiration times (recommended: 10 minutes or less). -* Consider caching implications for high-traffic extensions. - -### Best practices - -* Scope tokens to the minimum required permissions. -* Implement proper error handling and logging. -* Monitor token exchange patterns for security anomalies. -* Keep tokens short-lived to minimize security risks. -* Validate all claims before issuing access tokens. -* Consider implementing rate limiting on your token exchange endpoint. -* Use HTTPS for all token exchange communications. diff --git a/content/copilot/how-tos/chat/asking-github-copilot-questions-in-github.md b/content/copilot/how-tos/chat/asking-github-copilot-questions-in-github.md index b7fa5ae65c42..280acd26bf6b 100644 --- a/content/copilot/how-tos/chat/asking-github-copilot-questions-in-github.md +++ b/content/copilot/how-tos/chat/asking-github-copilot-questions-in-github.md @@ -92,9 +92,6 @@ Depending on the question you ask, and your enterprise and organization settings ### Regenerating a response with a different model -> [!NOTE] -> This feature is currently in {% data variables.release-phases.public_preview %} and is subject to change. It is currently not available for all models. - After {% data variables.product.prodname_copilot_short %} responds to your question, you can regenerate the same prompt using a different model by clicking the retry icon ({% octicon "sync" aria-label="The re-run icon" %}) below the response. The new response will use your selected model and maintain the full context of the conversation. You can switch between responses to compare the results from different models. @@ -103,9 +100,6 @@ For help deciding which model to use, see [AUTOTITLE](/copilot/using-github-copi ### Using subthreads in a conversation -> [!NOTE] -> Subthreading in {% data variables.copilot.copilot_chat_short %} is currently in {% data variables.release-phases.public_preview %} and is subject to change. - Subthreads are branches of a conversation that are created from a point in a conversation where you asked a question. Subthreads offer more control and flexibility for exploring aspects of a topic, or new topics, all within the same thread. You can create and navigate through subthreads in {% data variables.copilot.copilot_chat_short %}'s immersive view. In the {% data variables.copilot.copilot_chat_short %} panel, if you open a conversation that contains subthreads, only the most recently edited subthread is displayed. diff --git a/content/copilot/how-tos/content-exclusion/excluding-content-from-github-copilot.md b/content/copilot/how-tos/content-exclusion/excluding-content-from-github-copilot.md index 7ec1dd1fdc88..274614b21bf6 100644 --- a/content/copilot/how-tos/content-exclusion/excluding-content-from-github-copilot.md +++ b/content/copilot/how-tos/content-exclusion/excluding-content-from-github-copilot.md @@ -1,7 +1,7 @@ --- title: Excluding content from GitHub Copilot shortTitle: Exclude content from Copilot -intro: 'You can prevent {% data variables.product.prodname_copilot_short %} from accessing certain content.' +intro: 'Learn how to prevent {% data variables.product.prodname_copilot_short %} from accessing certain content.' permissions: 'Repository administrators, organization owners, and enterprise owners can manage content exclusion settings. People with the "Maintain" role for a repository can view, but not edit, content exclusion settings for that repository.' product: '{% data reusables.gated-features.copilot-business-and-enterprise %}' layout: inline @@ -23,53 +23,6 @@ topics: - Copilot --- -## About content exclusion for {% data variables.product.prodname_copilot_short %} - -You can use content exclusion to configure {% data variables.product.prodname_copilot_short %} to ignore certain files. When you exclude content from {% data variables.product.prodname_copilot_short %}: - -* Code completion will not be available in the affected files. -* The content in affected files will not inform code completion suggestions in other files. -* The content in affected files will not inform {% data variables.copilot.copilot_chat %}'s responses. -* Affected files will not be reviewed in a {% data variables.product.prodname_copilot_short %} code review. - -### Who can configure content exclusion - -Repository administrators, organization owners, and enterprise owners can configure content exclusion. - -{% data reusables.copilot.content-exclusions-scope %} - -### Availability of content exclusion - -The {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} plans provide the following level of support for content exclusion. - -| Tool | Code completion support | {% data variables.copilot.copilot_chat_short %} support | -|-------------------------------------------------|:---------------------------------------------:|:----------------------------------------------------------------:| -| {% data variables.product.prodname_vs %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | -| {% data variables.product.prodname_vscode %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | -| JetBrains IDEs | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | -| Vim/Neovim | {% octicon "check" aria-label="Supported" %} | Not applicable | -| Xcode | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | -| Eclipse | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | -| Azure Data Studio | {% octicon "x" aria-label="Not supported" %} | Not applicable | -| The {% data variables.product.github %} website | Not applicable | {% octicon "check" aria-label="Supported" %} | -| {% data variables.product.prodname_mobile %} | Not applicable | {% octicon "check" aria-label="Supported" %} | - -Content exclusions also apply to {% data variables.copilot.copilot_code-review_short %} on the {% data variables.product.github %} website. - -> [!NOTE] -> * Content exclusion is in {% data variables.release-phases.public_preview %} on the {% data variables.product.github %} website and in {% data variables.product.prodname_mobile %} and is subject to change. -> * Content exclusion is currently not supported in Edit and Agent modes of {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_vscode %}. - -### Limitations of content exclusion - -{% data reusables.copilot.content-exclusion-limitations %} - -Currently, content exclusions do not apply to symbolic links (symlinks). - -### Data sent to {% data variables.product.prodname_dotcom %} - -After you configure content exclusion, the client (for example, the {% data variables.product.prodname_copilot_short %} extension for {% data variables.product.prodname_vscode_shortname %}) sends the current repository URL to the {% data variables.product.prodname_dotcom %} server so that the server can return the correct policy to the client. These URLs are not logged anywhere. - ## Configuring content exclusion for your repository You can use your repository settings to specify content in your repository that {% data variables.product.prodname_copilot %} should ignore. @@ -235,5 +188,6 @@ You can verify that content exclusions you have configured are working as expect ## Further reading +* [AUTOTITLE](/copilot/concepts/content-exclusion-for-github-copilot) * [AUTOTITLE](/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-changes-to-content-exclusions-for-github-copilot) * [Configuring content exclusion for {% data variables.product.prodname_vs %}](https://learn.microsoft.com/en-us/visualstudio/ide/visual-studio-github-copilot-admin?view=vs-2022#configure-content-exclusion) in the Microsoft Learn documentation diff --git a/content/copilot/how-tos/content-exclusion/reviewing-changes-to-content-exclusions-for-github-copilot.md b/content/copilot/how-tos/content-exclusion/reviewing-changes-to-content-exclusions-for-github-copilot.md index 0df64af19113..f9c73edf97db 100644 --- a/content/copilot/how-tos/content-exclusion/reviewing-changes-to-content-exclusions-for-github-copilot.md +++ b/content/copilot/how-tos/content-exclusion/reviewing-changes-to-content-exclusions-for-github-copilot.md @@ -72,3 +72,5 @@ Organization and repository settings include the ability to exclude content from {% data reusables.copilot.more-details-content-exclusion-logs %} {% endif %} + +* [AUTOTITLE](/copilot/concepts/content-exclusion-for-github-copilot) diff --git a/content/copilot/how-tos/monitoring-your-copilot-usage-and-entitlements.md b/content/copilot/how-tos/monitoring-your-copilot-usage-and-entitlements.md index 911089fefc37..6e5f2b1e52a6 100644 --- a/content/copilot/how-tos/monitoring-your-copilot-usage-and-entitlements.md +++ b/content/copilot/how-tos/monitoring-your-copilot-usage-and-entitlements.md @@ -46,7 +46,7 @@ You can access usage information in the following IDEs. You can view your premium request usage at any time from your {% data variables.product.prodname_copilot_short %} settings page on {% data variables.product.prodname_dotcom_the_website %}. -1. In the upper-right corner of any page on {% data variables.product.prodname_dotcom %}, click your profile photo. +1. In the upper-right corner of any page on {% data variables.product.prodname_dotcom %}, click your profile picture. 1. Click **{% octicon "copilot" aria-hidden="true" aria-label="copilot" %} Your {% data variables.product.prodname_copilot_short %}**. 1. Under "Usage," view the "Premium requests" progress bar to see the percentage of your premium request quota used for the current month. diff --git a/content/copilot/reference/index.md b/content/copilot/reference/index.md index 027ddb735760..70f1b9e19745 100644 --- a/content/copilot/reference/index.md +++ b/content/copilot/reference/index.md @@ -9,6 +9,7 @@ topics: children: - /github-copilot-chat-cheat-sheet - /ai-models + - /proxy-server-and-firewall-settings-for-copilot - /copilot-extensions --- diff --git a/content/copilot/how-tos/administer/organizations/configuring-your-proxy-server-or-firewall-for-copilot.md b/content/copilot/reference/proxy-server-and-firewall-settings-for-copilot.md similarity index 91% rename from content/copilot/how-tos/administer/organizations/configuring-your-proxy-server-or-firewall-for-copilot.md rename to content/copilot/reference/proxy-server-and-firewall-settings-for-copilot.md index 32a6718e4105..5c1c3466bd55 100644 --- a/content/copilot/how-tos/administer/organizations/configuring-your-proxy-server-or-firewall-for-copilot.md +++ b/content/copilot/reference/proxy-server-and-firewall-settings-for-copilot.md @@ -1,14 +1,15 @@ --- -title: Configuring your proxy server or firewall for Copilot -intro: 'You should allow certain traffic through your firewall or proxy server for {% data variables.product.prodname_copilot_short %} to work as intended.' +title: Proxy server and firewall settings for Copilot +intro: 'Learn how to allow certain traffic through your firewall or proxy server for {% data variables.product.prodname_copilot_short %} to work as intended in your organization.' permissions: Proxy server maintainers or firewall maintainers versions: feature: copilot topics: - Copilot -shortTitle: Allow Copilot traffic +shortTitle: Traffic allowlist for Copilot redirect_from: - /copilot/managing-copilot/managing-github-copilot-in-your-organization/configuring-your-proxy-server-or-firewall-for-copilot + - /copilot/how-tos/administer/organizations/configuring-your-proxy-server-or-firewall-for-copilot --- If your company employs security measures like a firewall or proxy server, you should add the following URLs, ports, and protocols to an allowlist to ensure {% data variables.product.prodname_copilot_short %} works as expected: diff --git a/content/copilot/responsible-use-of-github-copilot-features/responsible-use-of-copilot-coding-agent-on-githubcom.md b/content/copilot/responsible-use-of-github-copilot-features/responsible-use-of-copilot-coding-agent-on-githubcom.md index 9a4e6167467a..9712c4f1ddf7 100644 --- a/content/copilot/responsible-use-of-github-copilot-features/responsible-use-of-copilot-coding-agent-on-githubcom.md +++ b/content/copilot/responsible-use-of-github-copilot-features/responsible-use-of-copilot-coding-agent-on-githubcom.md @@ -145,7 +145,11 @@ The language model used by {% data variables.copilot.copilot_coding_agent %}’s To mitigate the risk of inaccurate code, you should carefully review and test the generated code, particularly when dealing with critical or sensitive applications. You should also ensure that the generated code adheres to best practices and design patterns and fits within the overall architecture and style of the codebase. -> [!NOTE] The setting that blocks suggestions matching public code may not work as intended when using {% data variables.copilot.copilot_coding_agent %}. See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-your-copilot-plan/managing-copilot-policies-as-an-individual-subscriber#enabling-or-disabling-suggestions-matching-public-code). +### Public code + +{% data variables.copilot.copilot_coding_agent %} may generate code that is a match or near match of publicly available code, even if the "Suggestions matching public code" policy is set to "Block." See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-your-copilot-plan/managing-copilot-policies-as-an-individual-subscriber#enabling-or-disabling-suggestions-matching-public-code). + +If this happens, {% data variables.product.prodname_copilot_short %} will not provide code references pointing to the original source of the code. See [AUTOTITLE](/copilot/using-github-copilot/finding-public-code-that-matches-github-copilot-suggestions). ### Legal and regulatory considerations diff --git a/data/reusables/copilot/using-images-in-chat.md b/data/reusables/copilot/using-images-in-chat.md index bebfb1f420ee..8c5f73111984 100644 --- a/data/reusables/copilot/using-images-in-chat.md +++ b/data/reusables/copilot/using-images-in-chat.md @@ -1,5 +1,4 @@ > [!NOTE] -> * Attaching images to chat prompts is currently in {% data variables.release-phases.public_preview %} and is subject to change. > * {% data reusables.copilot.editor-preview-settings %} You can attach images to your chat prompts and then ask {% data variables.product.prodname_copilot_short %} about the images. For example, you can attach: