diff --git a/.github/workflows/create-changelog-pr.yml b/.github/workflows/create-changelog-pr.yml index 3b89c9c5347d..3de39fcb2d2d 100644 --- a/.github/workflows/create-changelog-pr.yml +++ b/.github/workflows/create-changelog-pr.yml @@ -122,7 +122,7 @@ jobs: core.setOutput('pull-request-number', pullRequest.number); core.setOutput('pull-request-url', pullRequest.html_url); - - name: Add 'ready-for-doc-review' label to PR + - name: Add 'ready-for-doc-review' and 'skip FR board' labels to PR if: env.CONTINUE_WORKFLOW == 'true' uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: @@ -135,7 +135,7 @@ jobs: owner: context.repo.owner, repo: context.repo.repo, issue_number: Number(process.env.PULL_REQUEST_NUMBER), - labels: ['ready-for-doc-review'] + labels: ['ready-for-doc-review','skip FR board'] }); - name: Assign PR to commenter diff --git a/assets/images/help/billing/premium-request-analytics-chart-download.png b/assets/images/help/billing/premium-request-analytics-chart-download.png new file mode 100644 index 000000000000..23a3ee503c53 Binary files /dev/null and b/assets/images/help/billing/premium-request-analytics-chart-download.png differ diff --git a/assets/images/help/billing/premium-request-analytics-chart.png b/assets/images/help/billing/premium-request-analytics-chart.png new file mode 100644 index 000000000000..887f04557d9e Binary files /dev/null and b/assets/images/help/billing/premium-request-analytics-chart.png differ diff --git a/assets/images/help/billing/premium-request-analytics-org-table.png b/assets/images/help/billing/premium-request-analytics-org-table.png new file mode 100644 index 000000000000..301dd6359315 Binary files /dev/null and b/assets/images/help/billing/premium-request-analytics-org-table.png differ diff --git a/assets/images/help/copilot/track-spending-prs.png b/assets/images/help/copilot/track-spending-prs.png new file mode 100644 index 000000000000..7ea9257b7327 Binary files /dev/null and b/assets/images/help/copilot/track-spending-prs.png differ diff --git a/assets/images/help/copilot/track-spending.png b/assets/images/help/copilot/track-spending.png index 32e1f21c6568..7df7c87a808e 100644 Binary files a/assets/images/help/copilot/track-spending.png and b/assets/images/help/copilot/track-spending.png differ diff --git a/content/actions/reference/security/secure-use.md b/content/actions/reference/security/secure-use.md index b722d4b7b1ea..794b679925f7 100644 --- a/content/actions/reference/security/secure-use.md +++ b/content/actions/reference/security/secure-use.md @@ -117,7 +117,6 @@ For additional examples and guidance on the risks of untrusted code checkout, se ### Good practices - * Avoid using the `pull_request_target` workflow trigger if it's not necessary. For privilege separation between workflows, `workflow_run` is a better trigger. Only use these workflow triggers when the workflow actually needs the privileged context. * Avoid using the `pull_request_target` and `workflow_run` workflow triggers with untrusted pull requests or code content. Workflows that use these triggers must not explicitly check out untrusted code, including from pull request forks or from repositories that are not under your control. Workflows triggered on `workflow_run` should treat artifacts uploaded from other workflows with caution. diff --git a/content/admin/managing-iam/provisioning-user-accounts-with-scim/managing-team-memberships-with-identity-provider-groups.md b/content/admin/managing-iam/provisioning-user-accounts-with-scim/managing-team-memberships-with-identity-provider-groups.md index a653de62eafa..eb16e3c383c5 100644 --- a/content/admin/managing-iam/provisioning-user-accounts-with-scim/managing-team-memberships-with-identity-provider-groups.md +++ b/content/admin/managing-iam/provisioning-user-accounts-with-scim/managing-team-memberships-with-identity-provider-groups.md @@ -57,7 +57,7 @@ If you use Microsoft Entra ID (previously known as Azure AD) as your IdP, you ca Enterprise owners can create teams at the enterprise level. {% data reusables.copilot.direct-assignment-rollout %} -For instructions on creating an enterprise team and syncing it with an IdP group, see [AUTOTITLE](/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/create-enterprise-teams). +Most of the instructions in this article apply to organization-level teams. For instructions on creating an enterprise team and syncing it with an IdP group, see [AUTOTITLE](/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/create-enterprise-teams). {% endif %} diff --git a/content/admin/overview/about-teams.md b/content/admin/overview/about-teams.md new file mode 100644 index 000000000000..f5b9280f3800 --- /dev/null +++ b/content/admin/overview/about-teams.md @@ -0,0 +1,56 @@ +--- +title: About teams in an enterprise +intro: 'Learn how teams simplify administration of user access, licensing, and communication.' +versions: + ghec: '*' +shortTitle: About teams +type: overview +topics: + - Enterprise + - Fundamentals +--- + +## What are teams? + +Teams are **groups of users** in an enterprise or organization. By creating teams, you can manage users at scale and simplify access, licensing, and communication. For example, you could create an auditor team for users who need access to audit logs, or a {% data variables.product.prodname_copilot_short %} team for users who receive {% data variables.product.prodname_copilot_short %} licenses. + +Administrators can create teams in an enterprise account or in organizations within an enterprise. + +* **Enterprise teams** are managed by enterprise owners and can include users from across the enterprise and its organizations. Currently, enterprise teams are used to manage {% data variables.product.prodname_copilot %} licenses for directly assigned users. {% data variables.product.company_short %} plans to expand the capabilities in the near future to include organization and role assignment. +* **Organization teams** are managed by organization administrators and can only include members of a single organization. Organization administrators can grant teams access to organization repositories, and organization members can mention teams in issues and discussions or add them as reviewers on pull requests. + +## Can I manage teams from an identity provider? + +If you have integrated {% data variables.product.github %} with an identity provider (IdP), you can link teams on {% data variables.product.github %} with groups in your IdP. When membership of the IdP group changes, the change is reflected in the {% data variables.product.github %} team, allowing you to centralize access management. + +The capabilities of this feature depend on whether you use {% data variables.product.prodname_emus %} or personal accounts. + +### {% data variables.product.prodname_emus %} + +You can make changes to IdP groups to manage repository access, add or remove users from organizations, or grant or remove {% data variables.product.prodname_copilot %} licenses. For example, if a new user is added to an IdP group that is linked to a team with access to an organization, the user receives access to that organization. For more information, see [AUTOTITLE](/admin/managing-iam/provisioning-user-accounts-with-scim/managing-team-memberships-with-identity-provider-groups#about-team-management-with-enterprise-managed-users). + +This feature is available with both enterprise and organization teams. + +### Personal accounts + +Team synchronization allows you to centrally manage any privileges linked to an organization team, such as repository access and CODEOWNER status. However, team sync cannot be used to add users to organizations where they don't already have access. For more information, see [AUTOTITLE](/admin/managing-iam/using-saml-for-enterprise-iam/managing-team-synchronization-for-organizations-in-your-enterprise). + +Team sync with personal accounts is only available with organization teams, and you must use Entra ID or Okta as an IdP. + +## What kind of team should I use? + +To simplify administration at scale, {% data variables.product.company_short %} recommends using enterprise teams wherever possible. However, you may need to create organization teams if the functionality you need is not covered by enterprise teams. {% data variables.product.company_short %} plans to address some of these limitations in the near future. + +Unlike organization teams, enterprise teams currently do **not** support: + +* Repository or organization access +* `@-mentions` of the team name in organizations +* Team sync if you use {% data variables.product.prodname_ghe_cloud %} with personal accounts +* CODEOWNER status +* Secret teams +* Nested teams +* Team maintainers + +In addition, enterprise teams are currently limited to 50 teams for a single enterprise and 500 users to each team. + +For more information about the capabilities of organization teams, see [AUTOTITLE](/organizations/organizing-members-into-teams/about-teams). diff --git a/content/admin/overview/index.md b/content/admin/overview/index.md index 25bc88dcad65..b03a4b810c1e 100644 --- a/content/admin/overview/index.md +++ b/content/admin/overview/index.md @@ -19,6 +19,7 @@ children: - /best-practices-for-enterprises - /establishing-a-governance-framework-for-your-enterprise - /accessing-compliance-reports-for-your-enterprise + - /about-teams --- For more information, or to purchase {% data variables.product.prodname_enterprise %}, see [{% data variables.product.prodname_enterprise %}](https://github.com/enterprise). diff --git a/content/billing/how-tos/products/view-productlicense-use.md b/content/billing/how-tos/products/view-productlicense-use.md index abc339cf791f..f8af40b952ac 100644 --- a/content/billing/how-tos/products/view-productlicense-use.md +++ b/content/billing/how-tos/products/view-productlicense-use.md @@ -76,7 +76,7 @@ The options available to you vary according to your role and {% data variables.p ## Exploring usage data in more detail -You can also explore usage data in more detail in the **{% octicon "graph" aria-label="chart" aria-hidden="true" %} Usage** view. +You can also explore usage data for all metered products in more detail in the **Usage** or **Metered usage** view. * **Filter data on the page**: click in the text box to see a list of available filters. * **Group data**: options in the "Group" option vary based on the filters you define. @@ -91,22 +91,45 @@ The metered usage chart and usage break down table both show your current choice > For GitHub Actions, you can also view the billable job execution minutes for an individual workflow run. For more information, see [AUTOTITLE](/actions/monitoring-and-troubleshooting-workflows/viewing-job-execution-time). {% endif %} +## Analyzing use of premium requests + +{% data reusables.billing.premium-request-analytics-start %} + +If you use premium requests, an additional **Premium request analytics** view is listed under **Usage**. You can use this view to dig deeper into how you are using included requests and where you are being billed for additional requests. For example: + +* What's our total usage of premiums requests across all products? +* Are users making good use of the premium requests included in their license for {% data variables.product.prodname_copilot_short %}? +* Which users have consumed more than their monthly quota? +* How widespread is adoption in the organizations where we rolled out {% data variables.product.prodname_copilot_short %}? + +As you change the filter, "Timeframe", and "Group by", and options, all areas of the page are updated to reflect your choices. The chart shows the top 5 consumers and combines any other consumers into "All other". + +![Screenshot of the premium request analytics chart, "Usage grouped by organization", and table. A "Show Usage Breakdown" arrow is outlined.](/assets/images/help/billing/premium-request-analytics-chart.png) + +To show more detailed information for the top 100 users or organizations consuming premium requests, use the {% octicon "chevron-right" aria-label="Show Usage Breakdown" aria-hidden="true" %} shown at the start of each row to expand and collapse data. + +![Screenshot of the premium request analytics table, "Usage breakdown" with the first row expanded to show a full breakdown of requests.](/assets/images/help/billing/premium-request-analytics-org-table.png) + ## Downloading usage reports -You can download two different types of usage report from the "Usage" page. +Visit the "Metered Usage" page to access a metered billing report for all products, or navigate to the "Premium request analytics" page for a specialized report tailored for Premium request activity tracking. ### General usage reports -1. At the top of the "Usage" page, click **Get usage report**. -1. Choose the report that you want to download. +1. At the top of the page, click **Get usage report**. +1. If prompted, specify the report details: + * Metered usage page: in the dialog displayed, define details of the report that you want to download and click **Email me the report**. + * Premium request analytics page: the report will contain usage for the last 45 days. + +When the report is ready for you to download, you'll receive a message to your primary email account with a link to download the report. The link will expire after 24 hours. -For details of the fields included in the report, see [AUTOTITLE](/billing/reference/usage-reports). +For details of the fields included in the reports, see [AUTOTITLE](/billing/reference/billing-reports). -### Downloading the data plotted in the usage chart +### Downloading the data plotted in the chart -When the chart on the "Usage" page shows the data you want to download, click the {% octicon "kebab-horizontal" aria-label="Chart options" aria-hidden="true" %} "Chart options" button and select your preferred format. +When the chart on the "Usage" or "Premium request analytics" page shows the data you want to download, click the {% octicon "kebab-horizontal" aria-label="Chart options" aria-hidden="true" %} "Chart options" button and select your preferred format. -![Screenshot of the metered usage chart on the "Usage" page with the "Chart options" outlined in dark orange.](/assets/images/help/billing/overview-chart-download-button.png) +![Screenshot of the usage chart on the "Premium request analytics" page with "Chart options" open and outlined in dark orange.](/assets/images/help/billing/premium-request-analytics-chart-download.png) ## Next steps diff --git a/content/billing/reference/billing-reports.md b/content/billing/reference/billing-reports.md new file mode 100644 index 000000000000..53591899759c --- /dev/null +++ b/content/billing/reference/billing-reports.md @@ -0,0 +1,95 @@ +--- +title: Billing reports reference +shortTitle: Billing reports +intro: 'Billing reports show detailed {% data variables.product.github %} usage, premium request usage, and billing information for your account.' +versions: + fpt: '*' + ghec: '*' + ghes: '*' +topics: + - Billing + - Enterprise + - Team +permissions: '{% data reusables.permissions.enhanced-billing-enterprise %}' +redirect_from: + - /billing/managing-your-billing/about-usage-reports + - /billing/reference/usage-reports +contentType: reference +--- + +The usage reports show detailed information about your account’s {% data variables.product.github %} usage, including how much of each SKU was used and the resulting billable amount. + +To generate a usage report, see [AUTOTITLE](/billing/how-tos/products/view-productlicense-use). + +## Report types + +There are three different types of reports. + +* Metered usage page: + * **Summarized metered usage reports**: A summary of usage for all paid products for a maximum period of one year. + * **Detailed metered usage reports**: A detailed usage report for all paid products for a maximum period of 31 days. +* Premium request analytics page: + * **Premium request analytics usage reports**: A detailed, user-based report on usage of premium requests for the last 45 days. + +### Summarized metered usage reports + +This report sums the `quantity`, `gross_amount`, `discount_amount`, and `net_amount` fields based on the combination of the following values: `date`, `sku`, `repository`, `cost_center_name`. If the usage report is for an enterprise with organizations, the amounts will be summarized by the organization value as well. + +### Detailed metered usage reports + +The detailed usage report includes the same fields as the summarized report and adds `username` and `workflow_path`. + +This report sums the `quantity`, `gross_amount`, `discount_amount`, and `net_amount` fields based on the combination of the following values: `date`, `sku`, `organization`, `repository`, `cost_center_name`, `username`, `workflow_path`. + +### Premium request analytics usage reports + +This report includes each recorded use of a premium request and includes the following fields: `Timestamp`,`User`,`Model`,`Requests Used`,`Exceeds Monthly Quota`, and `Total Monthly Quota`. + +## Metered usage report fields + +The usage report contains the following fields. + +| Field | Description | +|---------------------------|-------------| +| `date` | The day that the usage occurred. All usage is logged in UTC. | +| `product` | The {% data variables.product.github %} product that was used. | +| `sku` | The specific {% data variables.product.github %} product SKU that was used. | +| `quantity` | The amount of the SKU that was used. | +| `unit_type` | The unit of measurement for the product SKU. | +| `applied_cost_per_quantity` | The unit cost of the product SKU. | +| `gross_amount` | The amount of the product SKU that was used. | +| `discount_amount` | The amount of usage that was discounted. Usage that is discounted as part of your account’s included usage is reflected in this field. Also includes discounts for {% data variables.product.prodname_actions %} usage for standard {% data variables.product.github %}-hosted runners in public repositories and for self-hosted runners. | +| `net_amount` | The billable amount of usage after applying the `discount_amount`. This is the amount that your account will be billed. `gross_amount - discount_amount = net_amount`. | +| `username` | The user associated with the usage, if applicable. Only available in the detailed report. | +| `organization` | The organization associated with the usage, if applicable. | +| `repository` | The repository associated with the usage, if applicable. | +| `workflow_path` | The path of the {% data variables.product.prodname_actions %} workflow that generated the usage, if applicable. Only available in the detailed report. | +| `cost_center_name` | The cost center associated with the usage, if applicable. | + +### Metered usage report fields that are closing down + +{% data variables.product.github %} aims to minimize changes to the usage report structure, however at times the report structure or fields may change. + +| Closing down | Replacement | +|--------------------|---------------------| +| `usage_at` | Refer to `date` instead. | +| `workflow_name` | Refer to `workflow_path` instead. | + +## Premium request analytics usage report fields + +{% data reusables.billing.premium-request-analytics-start %} + +The premium request analytics report contains the following fields. + +| Field | Description | +|---------------------------|-------------| +| Timestamp | The full UTC date and time in ISO 18601 format. | +| User | The {% data variables.product.github %} handle of the user associated with the usage. | +| Model | The model used. This might be an LLM like `claude-sonnet-4`, or a product-specific model like `Code Review model`. +| Requests Used | The total number of requests used. | +| Exceeds Monthly Quota | This field indicates whether the premium request will be billed separately:
- `FALSE`: The request is covered by the monthly quota included in the user's plan.
- `TRUE`: The request exceeds the monthly quota and will be billed | +| Total Monthly Quota | This field records the total number of requests included in the user's current plan{% ifversion fpt or ghec %}, see [AUTOTITLE](/copilot/concepts/billing/individual-plans) and [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises){% endif %}. | + +## Receiving the report + +Usage reports are sent via email to the default email address associated with your {% data variables.product.github %} account. You can only request one usage report per account at a time. diff --git a/content/billing/reference/index.md b/content/billing/reference/index.md index 87645b30dd84..9f394ca1ef6f 100644 --- a/content/billing/reference/index.md +++ b/content/billing/reference/index.md @@ -11,7 +11,7 @@ topics: children: - /product-usage-included - /actions-minute-multipliers - - /usage-reports + - /billing-reports - /supported-payment-methods - /azure-subscription - /billing-roles @@ -23,4 +23,3 @@ children: - /enterprise-license-troubleshooting contentType: reference --- - diff --git a/content/billing/reference/usage-reports.md b/content/billing/reference/usage-reports.md deleted file mode 100644 index c17ed812a077..000000000000 --- a/content/billing/reference/usage-reports.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: Usage reports reference -shortTitle: Usage reports -intro: 'Usage reports show detailed {% data variables.product.github %} usage and billing information for your account.' -versions: - fpt: '*' - ghec: '*' - ghes: '*' -topics: - - Billing - - Enterprise - - Team -permissions: '{% data reusables.permissions.enhanced-billing-enterprise %}' -redirect_from: - - /billing/managing-your-billing/about-usage-reports -contentType: reference ---- - -The usage report shows detailed information about your account’s {% data variables.product.github %} usage, including how much of each SKU was used and the resulting billable amount. - -To generate a usage report, see {% ifversion fpt or ghec %}[AUTOTITLE](/billing/managing-your-billing/gathering-insights-on-your-spending){% elsif ghes %}[AUTOTITLE](/enterprise-cloud@latest/billing/managing-your-billing/gathering-insights-on-your-spending) in the {% data variables.product.prodname_ghe_cloud %} documentation{% endif %}. - -## Usage report types - -There are two different types of report. - -* Summarized reports can be requested for a maximum time frame of one year. -* Detailed reports can be requested for a maximum time frame of 31 days. - -### Summarized report - -The summarized usage report sums the `quantity`, `gross_amount`, `discount_amount`, and `net_amount` fields based on the combination of the following values: `date`, `sku`, `repository`, `cost_center_name`. If the usage report is for an enterprise with organizations, the amounts will be summarized by the organization value as well. - -### Detailed report - -The detailed usage report includes the same fields as the summarized report and adds `username` and `workflow_path`. - -The detailed usage report sums the `quantity`, `gross_amount`, `discount_amount`, and `net_amount` fields based on the combination of the following values: `date`, `sku`, `organization`, `repository`, `cost_center_name`, `username`, `workflow_path`. - -## Usage report fields - -The usage report contains the following fields. - -| Field | Description | -|---------------------------|-------------| -| `date` | The day that the usage occurred. All usage is logged in UTC. | -| `product` | The {% data variables.product.github %} product that was used. | -| `sku` | The specific {% data variables.product.github %} product SKU that was used. | -| `quantity` | The amount of the SKU that was used. | -| `unit_type` | The unit of measurement for the product SKU. | -| `applied_cost_per_quantity` | The unit cost of the product SKU. | -| `gross_amount` | The amount of the product SKU that was used. | -| `discount_amount` | The amount of usage that was discounted. Usage that is discounted as part of your account’s included usage is reflected in this field. Also includes discounts for {% data variables.product.prodname_actions %} usage for standard {% data variables.product.github %}-hosted runners in public repositories and for self-hosted runners. | -| `net_amount` | The billable amount of usage after applying the `discount_amount`. This is the amount that your account will be billed. `gross_amount - discount_amount = net_amount`. | -| `username` | The user associated with the usage, if applicable. Only available in the detailed report. | -| `organization` | The organization associated with the usage, if applicable. | -| `repository` | The repository associated with the usage, if applicable. | -| `workflow_path` | The path of the {% data variables.product.prodname_actions %} workflow that generated the usage, if applicable. Only available in the detailed report. | -| `cost_center_name` | The cost center associated with the usage, if applicable. | - -### Report fields closing down - -{% data variables.product.github %} aims to minimize changes to the usage report structure, however at times the report structure or fields may change. - -| Closing down | Replacement | -|--------------------|---------------------| -| `usage_at` | Refer to `date` instead. | -| `workflow_name` | Refer to `workflow_path` instead. | - -## Receiving the report - -Usage reports are sent via email to the default email address associated with your {% data variables.product.github %} account. You can only request one usage report per account at a time. diff --git a/content/billing/tutorials/automate-usage-reporting.md b/content/billing/tutorials/automate-usage-reporting.md index 30cb225eca84..061ed25bb8af 100644 --- a/content/billing/tutorials/automate-usage-reporting.md +++ b/content/billing/tutorials/automate-usage-reporting.md @@ -16,40 +16,70 @@ product: '{% data reusables.billing.enhanced-billing-platform-product %}' contentType: tutorials --- -You can automatically pull data from {% data variables.product.github %} to populate the business systems you use to monitor costs and usage using the REST API. If you haven't used the {% data variables.product.github %} REST API before, the following articles are a good starting point, see [AUTOTITLE](/rest/using-the-rest-api). +You can automatically pull data from {% data variables.product.github %} to populate the business systems you use to monitor costs and usage using the REST API. If you haven't used the {% data variables.product.github %} REST API before, see [AUTOTITLE](/rest/using-the-rest-api). -## Using the billing platform `/usage` endpoint to retrieve metered usage details for an enterprise or organization +## Overview of endpoints -The new billing platform provides REST API `/usage` endpoints that you can use to report on the use of all metered products in an enterprise or an organization. The usage data provided by the enterprise endpoint is available to enterprise owners and enterprise billing managers, and the data provided by the organization endpoint is available to organization owners within an enterprise and organization owners within an organization account. You will need to authenticate with {% data variables.product.github %}. +You need to use different endpoints to gather data depending on your account type and the information level you want. -* If you use the GitHub CLI, use the `gh auth login` command to authenticate. -* Otherwise, you will need to create a {% data variables.product.pat_v1 %}, see [Creating a {% data variables.product.pat_v1 %}](/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic). +{% rowheaders %} + +| Account | Report | Access | Endpoint | More information | +|---------|--------|--------|----------|------------------| +| Users | Usage data for all paid products | Account holder | `/users/{username}/settings/billing/usage` | [AUTOTITLE](/rest/billing/enhanced-billing?apiVersion=2022-11-28#get-billing-usage-report-for-a-user) | +| Organizations | Premium request consumption, with details of quota and billed usage | Organization owners and billing managers | `/organizations/{org}/settings/billing/premium_request/usage` | [AUTOTITLE](/rest/billing/enhanced-billing?apiVersion=2022-11-28#get-billing-premium-request-usage-report-for-an-organization) | +| Organizations | Usage data for all paid products | Organization owners and billing managers | `/organizations/{org}/settings/billing/usage` | [AUTOTITLE](/rest/billing/enhanced-billing?apiVersion=2022-11-28#get-billing-usage-report-for-an-organization) | +| Enterprises | Premium request consumption, with details of quota and billed usage | Enterprise owners and billing managers | `/enterprises/{enterprise}/settings/billing/premium_request/usage` | [AUTOTITLE](/rest/enterprise-admin/billing?apiVersion=2022-11-28#get-billing-premium-request-usage-report-for-an-enterprise) | +| Enterprises | Usage data for all paid products | Enterprise owners and billing managers | `/enterprises/{enterprise}/settings/billing/usage` | [AUTOTITLE](/rest/enterprise-admin/billing?apiVersion=2022-11-28#get-billing-usage-report-for-an-enterprise) | -When you call a `/usage` endpoint, you must specify the enterprise or organization that you want data for and, by default, usage for the current year that does not belong to a cost center is reported. You can reduce the scope of data returned by the endpoint using query parameters. +{% endrowheaders %} -* Define a specific time period by setting one or more of the following parameters: `year`, `month`, `day`, and `hour`. -* Define a cost center to report on by identifier using the `cost_center_id` query parameter. This query parameter is only available for the enterprise-level endpoint. +## Getting premium request consumption -For more detailed information and an example call and response, see [Get billing usage report for an enterprise](/rest/enterprise-admin/billing?apiVersion=2022-11-28#get-billing-usage-report-for-an-enterprise) or [Get billing usage report for an organization](/rest/billing/enhanced-billing?apiVersion=2022-11-28#get-billing-usage-report-for-an-organization) . +1. Authenticate with {% data variables.product.github %} with one of the following methods: + * **GitHub CLI:** use the `gh auth login` command to authenticate, see [AUTOTITLE](/github-cli/github-cli/quickstart). + * **Create a {% data variables.product.pat_v1 %}:** and pass the token to in your API call, see [Creating a {% data variables.product.pat_v1 %}](/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic). - -## Migrating from the endpoints used for the previous billing platform +1. Call the required `premium_request/usage` endpoint, specifying the enterprise, organization, or user that you want data for. + +To download other metrics for {% data variables.product.prodname_copilot %}, see [AUTOTITLE](/copilot/tutorials/roll-out-at-scale/measure-adoption/analyze-usage-over-time). + +## Getting usage data for all paid products + +1. Authenticate with {% data variables.product.github %} with one of the following methods: + * **GitHub CLI:** use the `gh auth login` command to authenticate, see [AUTOTITLE](/github-cli/github-cli/quickstart). + * **Create a {% data variables.product.pat_v1 %}:** and pass the token to in your API call, see [Creating a {% data variables.product.pat_v1 %}](/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic). -The previous billing platform provided three different endpoints for usage data: +1. Call the required `usage` endpoint, specifying the enterprise, organization, or user that you want data for. + +1. By default, data for all products for the current year is reported. For enterprises, only data that is not associated with a cost center is reported. + + You can request more specific data using query parameters. + * Specify time period by setting one or more of the following parameters: `year`, `month`, `day`, and `hour`. + * Specify a cost center to report on by identifier using the `cost_center_id` query parameter (enterprise endpoint only). + +For more detailed information and an example calls and responses, see: +* [Get billing usage report for an enterprise](/rest/enterprise-admin/billing?apiVersion=2022-11-28#get-billing-usage-report-for-an-enterprise) +* [Get billing usage report for an organization](/rest/billing/enhanced-billing?apiVersion=2022-11-28#get-billing-usage-report-for-an-organization) +* [Get billing usage report for a user](/rest/billing/enhanced-billing?apiVersion=2022-11-28#get-billing-usage-report-for-a-user) + + + + +## Migrating from the endpoints used for the previous billing platform -* [Get GitHub Actions billing for an enterprise](/rest/enterprise-admin/billing?apiVersion=2022-11-28#get-github-actions-billing-for-an-enterprise) -* [Get GitHub Packages billing for an enterprise](/rest/enterprise-admin/billing?apiVersion=2022-11-28#get-github-packages-billing-for-an-enterprise) -* [Get shared storage billing for an enterprise](/rest/enterprise-admin/billing?apiVersion=2022-11-28#get-shared-storage-billing-for-an-enterprise) +After you transition to metered billing, the endpoints you used to get data from the previous billing platform will no longer return accurate usage information. -When you transition to the new billing platform, these endpoints will no longer return accurate usage information. You should upgrade any automation that uses these endpoints to use the new endpoint [GET /enterprises/{enterprise}/settings/billing/usage](/rest/enterprise-admin/billing?apiVersion=2022-11-28#get-billing-usage-report-for-an-enterprise). The tables below provide a detailed explanation how to use the billing platform to retrieve equivalent information. +* Upgrade all calls of the form: `/ACCOUNT-TYPE/NAME/settings/billing/PRODUCT` +* To use the equivalent: `/ACCOUNT-TYPE/NAME/settings/billing/usage` endpoint -### Changes in call definition +### Changes in authentication If you used a {% data variables.product.pat_v2 %} to authenticate with the previous endpoints, you will need create a {% data variables.product.pat_v1 %} to authenticate with the new endpoint. In addition, you may want to use the new query parameters to specify a time period or cost center. -### Getting GitHub Actions billing data from the new response data +### Calculating {% data variables.product.prodname_actions %} information from the new response data Example of the previous response @@ -76,7 +106,7 @@ To get the same values from the new response data: {% endrowheaders %} -### Getting GitHub Packages billing data from the new response data +### Calculating {% data variables.product.prodname_registry %} information from the new response data Example of the previous response @@ -100,7 +130,7 @@ Example of the new response {% endrowheaders %} -### Getting shared storage billing from the new response data +### Calculating shared storage information from the new response data Example of the previous response diff --git a/content/code-security/dependabot/troubleshooting-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies.md b/content/code-security/dependabot/troubleshooting-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies.md index 63400fe9c871..50434476a6d6 100644 --- a/content/code-security/dependabot/troubleshooting-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies.md +++ b/content/code-security/dependabot/troubleshooting-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies.md @@ -88,19 +88,19 @@ The {% data variables.product.prodname_dependabot_alerts %} count in {% data var You can configure {% data variables.product.prodname_dependabot %} to ignore specific dependencies in the configuration file, which will prevent security and version updates for those dependencies. If you only wish to use security updates, you will need to override the default behavior with a configuration file. For more information, see [AUTOTITLE](/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates#overriding-the-default-behavior-with-a-configuration-file) to prevent version updates from being activated. For information about ignoring dependencies, see [Ignoring specific dependencies](/code-security/dependabot/dependabot-version-updates/controlling-dependencies-updated#ignoring-specific-dependencies). - ## Why does {% data variables.product.prodname_dependabot %} sometimes fail to detect or update {% data variables.product.prodname_actions %} versions in monorepos? If your repository contains multiple {% data variables.product.prodname_actions %} (for example, in a monorepo), the tag format you use affects how {% data variables.product.prodname_dependabot %} detects and updates action versions. -- **Dash (`-`) separator** (for example, `@my-action-v0.1.0`): - - {% data variables.product.prodname_dependabot %} may group multiple actions under a single dependency entry or fail to detect new versions correctly. This occurs because {% data variables.product.prodname_dependabot %} relies on slash-based tag parsing to distinguish between actions. -- **Slash (`/`) separator** (for example, `@my-action/v0.1.0`): - - {% data variables.product.prodname_dependabot %} correctly detects and updates each action independently, as the slash creates a hierarchical tag structure that aligns with {% data variables.product.prodname_dependabot %}'s parsing logic. +* **Dash (`-`) separator** (for example, `@my-action-v0.1.0`): + * {% data variables.product.prodname_dependabot %} may group multiple actions under a single dependency entry or fail to detect new versions correctly. This occurs because {% data variables.product.prodname_dependabot %} relies on slash-based tag parsing to distinguish between actions. +* **Slash (`/`) separator** (for example, `@my-action/v0.1.0`): + * {% data variables.product.prodname_dependabot %} correctly detects and updates each action independently, as the slash creates a hierarchical tag structure that aligns with {% data variables.product.prodname_dependabot %}'s parsing logic. **Recommendation:** For monorepos with multiple actions, use the `name/version` (slash) format for action tags. This ensures {% data variables.product.prodname_dependabot %} can parse the tag hierarchy correctly and update actions independently. * Example: + ```yaml # Recommended: namespaced with slash uses: my-org/monorepo/my-action@my-action/v0.1.0 diff --git a/content/copilot/concepts/agents/about-copilot-cli.md b/content/copilot/concepts/agents/about-copilot-cli.md index b435b3598957..05216693a105 100644 --- a/content/copilot/concepts/agents/about-copilot-cli.md +++ b/content/copilot/concepts/agents/about-copilot-cli.md @@ -261,9 +261,22 @@ You can mitigate the risks associated with using the automatic approval options ## Model usage +> [!NOTE] +> {% data variables.copilot.copilot_claude_sonnet_45 %} is available in {% data variables.copilot.copilot_cli %} version 0.0.329 and later. + The default model used by {% data variables.copilot.copilot_cli %} is {% data variables.copilot.cca_current_model %}. {% data variables.product.github %} reserves the right to change this model. -You can change the model to {% data variables.copilot.copilot_gpt_5 %} by setting the `COPILOT_MODEL` environment variable to `gpt-5`. +You can change the model by setting the `COPILOT_MODEL` environment variable to one of the supported values. For example, change the model to {% data variables.copilot.copilot_gpt_5 %} by setting `COPILOT_MODEL` to `gpt-5`. + +{% rowheaders %} + +| Model name | `COPILOT_MODEL` value | +|------------------------------------------------------------------|-----------------------| +| {% data variables.copilot.cca_current_model %} | `claude-sonnet-4` | +| {% data variables.copilot.copilot_claude_sonnet_45 %} | `claude-sonnet-4.5` | +| {% data variables.copilot.copilot_gpt_5 %} | `gpt-5` | + +{% endrowheaders %} Each time you submit a prompt to {% data variables.product.prodname_copilot_short %} in {% data variables.copilot.copilot_cli_short %}'s interactive mode, and each time you use {% data variables.copilot.copilot_cli_short %} in programmatic mode, your monthly quota of {% data variables.product.prodname_copilot_short %} premium requests is reduced by one. For information about premium requests, see [AUTOTITLE](/copilot/managing-copilot/monitoring-usage-and-entitlements/about-premium-requests). diff --git a/content/copilot/concepts/agents/coding-agent/about-coding-agent.md b/content/copilot/concepts/agents/coding-agent/about-coding-agent.md index 448116e654fd..5fb2e75d7850 100644 --- a/content/copilot/concepts/agents/coding-agent/about-coding-agent.md +++ b/content/copilot/concepts/agents/coding-agent/about-coding-agent.md @@ -144,7 +144,10 @@ Users can include hidden messages in issues assigned to {% data variables.produc * **{% data variables.copilot.copilot_coding_agent %} only works with repositories hosted on {% data variables.product.github %}**. If your repository is stored using a different code hosting platform, {% data variables.product.prodname_copilot_short %} won't be able to work on it. * **You cannot change the AI model used by {% data variables.copilot.copilot_coding_agent %}**. The model is determined by {% data variables.product.company_short %} and does not inherit the model selected for {% data variables.copilot.copilot_chat %}. - Currently the model used by {% data variables.copilot.copilot_coding_agent %} is {% data variables.copilot.cca_current_model %}. {% data variables.product.github %} reserves the right to change this model. + If you are a {% data variables.copilot.copilot_business_short %} or {% data variables.copilot.copilot_enterprise_short %} user, {% data variables.copilot.copilot_coding_agent %} uses the {% data variables.copilot.cca_current_model %} model. If you are a {% data variables.copilot.copilot_pro_short %} or {% data variables.copilot.copilot_pro_plus_short %} user, {% data variables.copilot.copilot_coding_agent %} uses the {% data variables.copilot.copilot_claude_sonnet_45 %} model. {% data variables.product.github %} reserves the right to change this model. + + > [!NOTE] + > {% data variables.copilot.copilot_claude_sonnet_45 %} is in {% data variables.release-phases.public_preview %} and subject to change. ## Hands-on practice diff --git a/content/copilot/concepts/billing/copilot-requests.md b/content/copilot/concepts/billing/copilot-requests.md index 3ecd5981e61e..fa99d9f6b5e4 100644 --- a/content/copilot/concepts/billing/copilot-requests.md +++ b/content/copilot/concepts/billing/copilot-requests.md @@ -45,6 +45,9 @@ The following {% data variables.product.prodname_copilot_short %} features can u | [{% data variables.product.prodname_spark_short %}](/copilot/tutorials/building-ai-app-prototypes) | Each prompt to {% data variables.product.prodname_spark_short %} uses a fixed rate of **four premium requests**. | | [{% data variables.copilot.copilot_cli_short %}](/copilot/concepts/agents/about-copilot-cli) | Each prompt to {% data variables.copilot.copilot_cli_short %} uses **one premium request**. | +> [!TIP] +> For instructions on viewing how many premium requests you have used and advice on how to optimize usage, see [AUTOTITLE](/copilot/how-tos/manage-and-track-spending/monitor-premium-requests). + ## How do request allowances work per plan? If you use **{% data variables.copilot.copilot_free_short %}**, your plan comes with up to 2,000 code completion requests and up to 50 premium requests per month. All chat interactions count as premium requests. diff --git a/content/copilot/how-tos/manage-and-track-spending/manage-company-spending.md b/content/copilot/how-tos/manage-and-track-spending/manage-company-spending.md index c02cbad73b02..c36502837acc 100644 --- a/content/copilot/how-tos/manage-and-track-spending/manage-company-spending.md +++ b/content/copilot/how-tos/manage-and-track-spending/manage-company-spending.md @@ -62,16 +62,22 @@ To create a budget, see [AUTOTITLE](/billing/managing-your-billing/using-budgets ## Visualizing spending trends -You can understand your spending trends by viewing a graph for {% data variables.product.prodname_copilot_short %} usage over a certain timeframe. Usage includes costs for {% data variables.product.prodname_copilot_short %} licenses and additional premium requests beyond the allowance. +You can understand your spending trends by viewing graphs of {% data variables.product.prodname_copilot_short %} usage over a certain timeframe. Usage includes costs for {% data variables.product.prodname_copilot_short %} licenses and any additional premium requests beyond the allowance. -For more detailed insights, you can filter the results by cost center and group usage by the type of {% data variables.product.prodname_copilot_short %} plan. +For more detailed insights, you can group usage by the type of {% data variables.product.prodname_copilot_short %} plan, and enterprises can filter the results by cost center. 1. Go to your enterprise or organization account settings and click **{% octicon "credit-card" aria-hidden="true" aria-label="credit-card" %} Billing & Licensing**. -1. In the left sidebar, click **Usage**. +1. In the left sidebar, click **Usage** (organizations) or **Usage** and then **Metered usage** (enterprises). 1. In the "Metered usage" section, in the search field, enter `product:copilot`. To filter by cost center, add a query like `cost_center:ce-pilot-group`. -1. To understand spending differences between {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} plans, select the **Group: None** dropdown menu and click **Group: SKU**. +1. To understand spending differences between {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} plans, select the **Group: None** dropdown menu and click **Group by: SKU**. -![Screenshot of the "Usage" page. A line chart tracks Copilot spending over the current month, grouped by SKU.](/assets/images/help/copilot/track-spending.png) + ![Screenshot of the "Usage" page. A line chart tracks Copilot spending over the current month, grouped by SKU.](/assets/images/help/copilot/track-spending.png) + +1. To visualize the consumption of premium requests in detail, in the left sidebar click **Premium request analytics**. +1. By default, the chart and table show use grouped by models. Use the filter, "Group by", and "Timeframe" controls to show the data you want. + {% data reusables.billing.premium-request-analytics-start %} + + ![Screenshot of the "Premium request analytics" page. A line chart tracks premium request use over the current month, grouped by model.](/assets/images/help/copilot/track-spending-prs.png) ## Next steps diff --git a/content/copilot/how-tos/manage-and-track-spending/manage-request-allowances.md b/content/copilot/how-tos/manage-and-track-spending/manage-request-allowances.md index 87cd2405ce5b..762718109591 100644 --- a/content/copilot/how-tos/manage-and-track-spending/manage-request-allowances.md +++ b/content/copilot/how-tos/manage-and-track-spending/manage-request-allowances.md @@ -30,7 +30,7 @@ You can increase the allowance for users by ensuring the policy is enabled, edit ## Prerequisites -* Before making changes, download a usage report to see which developers are frequently hitting the limit or using a significant number of requests over the allowance. You may want to contact these users to understand their use cases and requirements. See [Downloading a monthly usage report](/copilot/how-tos/monitoring-your-copilot-usage-and-entitlements#downloading-a-monthly-usage-report). +* Before making changes, download a usage report to see which developers are frequently hitting the limit or using a significant number of requests over the allowance. You may want to contact these users to understand their use cases and requirements. See [AUTOTITLE](/billing/how-tos/products/view-productlicense-use). * If a user receives licenses from multiple enterprises or standalone organizations, the user must select a billing entity to use premium requests. See [Managing premium request billing with multiple {% data variables.product.prodname_copilot_short %} licenses](/copilot/managing-copilot/monitoring-usage-and-entitlements/monitoring-your-copilot-usage-and-entitlements#managing-premium-request-billing-with-multiple-copilot-licenses). ## Setting a policy for paid usage diff --git a/content/copilot/how-tos/manage-and-track-spending/monitor-premium-requests.md b/content/copilot/how-tos/manage-and-track-spending/monitor-premium-requests.md index 1b664246f7a5..5e59ae0e0ace 100644 --- a/content/copilot/how-tos/manage-and-track-spending/monitor-premium-requests.md +++ b/content/copilot/how-tos/manage-and-track-spending/monitor-premium-requests.md @@ -28,11 +28,14 @@ You can track your monthly usage of premium requests to help you get the most va There are multiple ways to view your premium request usage: * [View current usage directly within your IDE](#viewing-usage-in-your-ide) -* [View current usage in your {% data variables.product.prodname_copilot_short %} settings](#viewing-usage-in-your-copilot-settings) -* [Download a {% data variables.product.prodname_copilot_short %} premium request usage report](#downloading-a-copilot-premium-request-usage-report) +* [View current usage in your {% data variables.product.prodname_copilot_short %} settings](#viewing-an-overview-in-your-copilot-settings) +* [View detailed analytics of your usage](#viewing-detailed-analytics-of-your-usage) +* [Download a usage report for your personal account](#downloading-a-usage-report-for-your-personal-account) If you reach your limit for premium requests, you will be notified with a message in each of the {% data variables.product.prodname_copilot_short %} interfaces you use. +For information about viewing premium request usage for an organization or enterprise, see [AUTOTITLE](/billing/how-tos/products/view-productlicense-use). + ### Viewing usage in your IDE If you're using {% data variables.product.prodname_copilot_short %} in an editor, you can view your usage directly in the editor. For example, in {% data variables.product.prodname_vscode %}, you can view information about features included in your plan, your progress towards any limits on your plan, and the date your allowance resets. @@ -47,37 +50,33 @@ You can access usage information in the following IDEs. * **In Xcode**, click the {% data variables.product.prodname_copilot_short %} icon ({% octicon "copilot" aria-hidden="true" aria-label="copilot" %}) in the menu bar. * **In Eclipse**, click the {% data variables.product.prodname_copilot_short %} icon ({% octicon "copilot" aria-hidden="true" aria-label="copilot" %}) in the status bar at the bottom of Eclipse. -### Viewing usage in your {% data variables.product.prodname_copilot_short %} settings +### Viewing an overview in your {% data variables.product.prodname_copilot_short %} settings -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 %}. +You can view an overview of your premium request usage at any time from your {% data variables.product.prodname_copilot_short %} "Features" 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 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. +1. Click **{% octicon "copilot" aria-hidden="true" aria-label="copilot" %} {% data variables.product.prodname_copilot_short %} settings**. +1. On the "Features" page, the "Usage" section displays a "Premium requests" progress bar showing the percentage of your premium request quota used in the current month. + +### Viewing detailed analytics of your usage -### Downloading a {% data variables.product.prodname_copilot_short %} premium request usage report +{% data reusables.user-settings.access_billing_settings_url %} +1. In the side bar, click **Premium request analytics** to show detailed analytics. +1. Use the filter, "Group by", and "Timeframe" options to change the data displayed in the chart and table. + {% data reusables.billing.premium-request-analytics-start %} +1. Optionally, to download the data shown in the chart, click the {% octicon "kebab-horizontal" aria-label="Chart options" aria-hidden="true" %} button and select your preferred format. -The premium request usage report includes all premium request usage, both within and beyond the allowance. + ![Screenshot of the usage chart on the "Premium request analytics" page with "Chart options" open and outlined in dark orange.](/assets/images/help/billing/premium-request-analytics-chart-download.png) ->[!NOTE] -> For organizations and enterprises, only admins can download a usage report to understand {% data variables.product.prodname_copilot_short %} usage across their business. Individual members of the organization or enterprise cannot download the report for themselves. +### Downloading a usage report for your personal account -1. Navigate to your account. +Reports include all premium request usage, both within and beyond your allowance. - In the upper-right corner of any page on {% data variables.product.prodname_dotcom %}, click your profile picture. Then: - * For **individual accounts**, click **{% octicon "gear" aria-hidden="true" aria-label="gear" %} Settings**. - * For **organizations**, click **{% octicon "organization" aria-hidden="true" aria-label="organization" %} Your organizations**. - * For **enterprises**, click **Your enterprise**, or click **Your enterprises** then click the enterprise you want to view. -1. Navigate to your billing settings. - * For **individual accounts**, in the "Access" section of the sidebar, click **{% octicon "credit-card" aria-hidden="true" aria-label="credit-card" %} Billing & Licensing**, then click **Overview**. - * For **organizations**, click **{% octicon "gear" aria-hidden="true" aria-label="gear" %} Settings**. Then, in the "Access" section of the sidebar, click **{% octicon "credit-card" aria-hidden="true" aria-label="credit-card" %} Billing & Licensing**, then click **Usage**. - * For **enterprises**, click **{% octicon "credit-card" aria-hidden="true" aria-label="credit-card" %} Billing & Licensing**, then click **{% octicon "graph" aria-hidden="true" aria-label="graph" %} Usage**. -1. Download a CSV usage report. - * For **individual accounts**, in the sidebar under "Billing & Licensing," select **Usage**. Then click **Get usage report**, choose the report type and time frame, and click **Email me the report**. - * For **organizations**, click the **Get usage report** drop down, then click **{% data variables.product.prodname_copilot_short %} premium requests usage report**. - * For **enterprises**, click the **Get usage report** drop down, then click **{% data variables.product.prodname_copilot_short %} premium requests usage report**. +{% data reusables.user-settings.access_billing_settings_url %} +1. In the side bar, click **Premium request analytics** to show detailed analytics. +1. At the top of the page, click **Get usage report** to generate a CSV report of your premium request use for the past 45 days. - The report contains {% data variables.product.prodname_copilot_short %} premium request usage from the past 45 days. Typically the report will be emailed to you within 30 minutes. +When the report is ready for you to download, you'll receive a message to your primary email account with a link to download the report. The link will expire after 24 hours. For details of the fields included in the reports, see [AUTOTITLE](/billing/reference/billing-reports#premium-request-analytics-usage-report-fields). ## Optimizing usage of premium requests @@ -85,8 +84,6 @@ You can use the following strategies to maximize the value of your premium reque * **Choose the right model for the task**. Some models are better suited to different tasks. If you're using a premium request, you can strategically choose which model you use to get the best result from {% data variables.product.prodname_copilot_short %}. See [AUTOTITLE](/copilot/reference/ai-models/model-comparison). -* **Define whether users can use premium requests over their included allowance**. Set a policy to control whether users can incur extra costs for premium requests when they use up their included allowance. See [AUTOTITLE](/copilot/how-tos/manage-and-track-spending/manage-request-allowances). - * **Setting a budget**. Set a budget to track your overages and receive alerts when you reach 75%, 90%, or 100% of your budget. See [AUTOTITLE](/billing/managing-your-billing/preventing-overspending#managing-budgets-for-your-personal-account). * **Monitor your usage regularly**. Check your usage in your {% data variables.product.github %} account settings to see how many premium requests you’ve used. This helps you plan how much you can use for the rest of the month. @@ -95,6 +92,8 @@ You can use the following strategies to maximize the value of your premium reque * **Avoid retrying large prompts unnecessarily**. Submitting the same long or complex prompt multiple times may use more premium requests. Try rephrasing or simplifying your request when needed. +* **Define whether users can use premium requests over their included allowance** (enterprises and organizations only). Set a policy to control whether users can incur extra costs for premium requests when they use up their included allowance. See [AUTOTITLE](/copilot/how-tos/manage-and-track-spending/manage-request-allowances). + {% data reusables.copilot.zero-budget-changes-link %} ## Managing premium request billing with multiple {% data variables.product.prodname_copilot_short %} licenses diff --git a/content/copilot/how-tos/use-copilot-agents/coding-agent/create-a-pr.md b/content/copilot/how-tos/use-copilot-agents/coding-agent/create-a-pr.md index 50e967953960..41fd0ada87dd 100644 --- a/content/copilot/how-tos/use-copilot-agents/coding-agent/create-a-pr.md +++ b/content/copilot/how-tos/use-copilot-agents/coding-agent/create-a-pr.md @@ -109,7 +109,7 @@ You can ask {% data variables.product.prodname_copilot_short %} to open a pull r For example: `Create a pull request to ...`. {% data variables.product.prodname_copilot_short %} responds with a brief summary of the task it will perform, asking for your confirmation before it proceeds. - + 1. Check that {% data variables.product.prodname_copilot_short %} has interpreted your prompt correctly, then tap **Accept** or **Dismiss**. {% data variables.product.prodname_copilot_short %} creates a pull request and gives you a link to it. 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. 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 7b5125363d7b..4b4672d9ec1a 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 @@ -229,6 +229,7 @@ To use the Azure DevOps MCP server with {% data variables.copilot.copilot_coding 1. Setup access to Azure DevOps organization and projects for the application identity. See [Add organization users and manage access](https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/add-organization-users). 1. Add a `.github/workflows/copilot-setup-steps.yml` Actions workflow file in your repository if you do not already have one. 1. Add an Azure login step to the `copilot-setup-steps` workflow job. + ```yaml copy on: workflow_dispatch: @@ -250,9 +251,11 @@ To use the Azure DevOps MCP server with {% data variables.copilot.copilot_coding tenant-id: {% raw %}${{ secrets.AZURE_TENANT_ID }}{% endraw %} allow-no-subscriptions: true ``` + This configuration ensures the `azure/login` action is executed when {% data variables.copilot.copilot_coding_agent %} runs. 1. In your repository’s {% data variables.product.prodname_copilot_short %} environment, add secrets for your `AZURE_CLIENT_ID` and `AZURE_TENANT_ID`. 1. Configure the Azure DevOps MCP server by adding an `ado` object to your MCP configuration with defined tools you want {% data variables.copilot.copilot_coding_agent %} to use. + ```json copy { "mcpServers": { @@ -266,7 +269,6 @@ To use the Azure DevOps MCP server with {% data variables.copilot.copilot_coding } ``` - ## Reusing your MCP configuration from {% data variables.product.prodname_vscode %} If you have already configured MCP servers in {% data variables.product.prodname_vscode_shortname %}, you can leverage a similar configuration for {% data variables.copilot.copilot_coding_agent %}. diff --git a/content/copilot/reference/ai-models/model-comparison.md b/content/copilot/reference/ai-models/model-comparison.md index 5fb2a69fc3eb..c859dec09732 100644 --- a/content/copilot/reference/ai-models/model-comparison.md +++ b/content/copilot/reference/ai-models/model-comparison.md @@ -27,22 +27,23 @@ contentType: reference Use this table to find a suitable model quickly, see more detail in the sections below. -| Model | Task area | Excels at (primary use case) | Additional capabilities | Further reading | -|-------------------------------------------------------|-----------|-------------------------------|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| {% data variables.copilot.copilot_gpt_41 %} | General-purpose coding and writing | Fast, accurate code completions and explanations | Agent mode, vision | [{% data variables.copilot.copilot_gpt_41 %} model card](https://openai.com/index/gpt-4-1/) | -| {% data variables.copilot.copilot_gpt_5_codex %} | General-purpose coding and writing | Fast, accurate code completions and explanations | Agent mode | [{% data variables.copilot.copilot_gpt_5_codex %} model card](https://cdn.openai.com/pdf/97cc5669-7a25-4e63-b15f-5fd5bdc4d149/gpt-5-codex-system-card.pdf) | -| {% data variables.copilot.copilot_gpt_5_mini %} | Deep reasoning and debugging | Well-defined tasks and precise prompts | Reasoning, vision | Not available | -| {% data variables.copilot.copilot_gpt_5 %} | Deep reasoning and debugging | Multi-step problem solving and architecture-level code analysis | Reasoning | [{% data variables.copilot.copilot_gpt_5 %} model card](https://cdn.openai.com/pdf/8124a3ce-ab78-4f06-96eb-49ea29ffb52f/gpt5-system-card-aug7.pdf) | -| {% data variables.copilot.copilot_o3 %} | Deep reasoning and debugging | Multi-step problem solving and architecture-level code analysis | Reasoning | [{% data variables.copilot.copilot_o3 %} model card](https://openai.com/index/o3-o4-mini-system-card/) | -| {% data variables.copilot.copilot_o4_mini %} | Fast help with simple or repetitive tasks | Fast, reliable answers to lightweight coding questions | Lower latency | [{% data variables.copilot.copilot_o4_mini %} model card](https://openai.com/index/o3-o4-mini-system-card/) | -| {% data variables.copilot.copilot_claude_opus_41 %} | Deep reasoning and debugging | Complex problem-solving challenges, sophisticated reasoning | Reasoning, vision | [{% data variables.copilot.copilot_claude_opus_41 %} model card](https://assets.anthropic.com/m/4c024b86c698d3d4/original/Claude-4-1-System-Card.pdf) | -| {% data variables.copilot.copilot_claude_opus %} | Deep reasoning and debugging | Complex problem-solving challenges, sophisticated reasoning | Reasoning, vision | [{% data variables.copilot.copilot_claude_opus %} model card](https://www-cdn.anthropic.com/6be99a52cb68eb70eb9572b4cafad13df32ed995.pdf) | -| {% data variables.copilot.copilot_claude_sonnet_35 %} | Fast help with simple or repetitive tasks | Quick responses for code, syntax, and documentation | Agent mode, vision | [{% data variables.copilot.copilot_claude_sonnet_35 %} model card](https://www-cdn.anthropic.com/fed9cc193a14b84131812372d8d5857f8f304c52/Model_Card_Claude_3_Addendum.pdf) | -| {% data variables.copilot.copilot_claude_sonnet_37 %} | Deep reasoning and debugging | Structured reasoning across large, complex codebases | Agent mode, vision | [{% data variables.copilot.copilot_claude_sonnet_37 %} model card](https://assets.anthropic.com/m/785e231869ea8b3b/original/claude-3-7-sonnet-system-card.pdf) | -| {% data variables.copilot.copilot_claude_sonnet_40 %} | Deep reasoning and debugging | Performance and practicality, perfectly balanced for coding workflows | Agent mode, vision | [{% data variables.copilot.copilot_claude_sonnet_40 %} model card](https://www-cdn.anthropic.com/6be99a52cb68eb70eb9572b4cafad13df32ed995.pdf) | -| {% data variables.copilot.copilot_gemini_25_pro %} | Deep reasoning and debugging | Complex code generation, debugging, and research workflows | Reasoning, vision | [{% data variables.copilot.copilot_gemini_25_pro %} model card](https://storage.googleapis.com/model-cards/documents/gemini-2.5-pro.pdf) | -| {% data variables.copilot.copilot_gemini_flash %} | Working with visuals (diagrams, screenshots) | Real-time responses and visual reasoning for UI and diagram-based tasks | Vision | [{% data variables.copilot.copilot_gemini_flash %} model card](https://storage.googleapis.com/model-cards/documents/gemini-2-flash.pdf) | -| {% data variables.copilot.copilot_grok_code %} | General-purpose coding and writing | Fast, accurate code completions and explanations | Agent mode | [{% data variables.copilot.copilot_grok_code %} model card](https://data.x.ai/2025-08-20-grok-4-model-card.pdf) | +| Model | Task area | Excels at (primary use case) | Additional capabilities | Further reading | +|--------------------------------------------------------|----------------------------------------------|-------------------------------------------------------------------------|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| {% data variables.copilot.copilot_gpt_41 %} | General-purpose coding and writing | Fast, accurate code completions and explanations | Agent mode, vision | [{% data variables.copilot.copilot_gpt_41 %} model card](https://openai.com/index/gpt-4-1/) | +| {% data variables.copilot.copilot_gpt_5_codex %} | General-purpose coding and writing | Fast, accurate code completions and explanations | Agent mode | [{% data variables.copilot.copilot_gpt_5_codex %} model card](https://cdn.openai.com/pdf/97cc5669-7a25-4e63-b15f-5fd5bdc4d149/gpt-5-codex-system-card.pdf) | +| {% data variables.copilot.copilot_gpt_5_mini %} | Deep reasoning and debugging | Well-defined tasks and precise prompts | Reasoning, vision | Not available | +| {% data variables.copilot.copilot_gpt_5 %} | Deep reasoning and debugging | Multi-step problem solving and architecture-level code analysis | Reasoning | [{% data variables.copilot.copilot_gpt_5 %} model card](https://cdn.openai.com/pdf/8124a3ce-ab78-4f06-96eb-49ea29ffb52f/gpt5-system-card-aug7.pdf) | +| {% data variables.copilot.copilot_o3 %} | Deep reasoning and debugging | Multi-step problem solving and architecture-level code analysis | Reasoning | [{% data variables.copilot.copilot_o3 %} model card](https://openai.com/index/o3-o4-mini-system-card/) | +| {% data variables.copilot.copilot_o4_mini %} | Fast help with simple or repetitive tasks | Fast, reliable answers to lightweight coding questions | Lower latency | [{% data variables.copilot.copilot_o4_mini %} model card](https://openai.com/index/o3-o4-mini-system-card/) | +| {% data variables.copilot.copilot_claude_sonnet_45 %} | General-purpose coding and agent tasks | Complex problem-solving challenges, sophisticated reasoning | Agent mode | Not available | +| {% data variables.copilot.copilot_claude_opus_41 %} | Deep reasoning and debugging | Complex problem-solving challenges, sophisticated reasoning | Reasoning, vision | [{% data variables.copilot.copilot_claude_opus_41 %} model card](https://assets.anthropic.com/m/4c024b86c698d3d4/original/Claude-4-1-System-Card.pdf) | +| {% data variables.copilot.copilot_claude_opus %} | Deep reasoning and debugging | Complex problem-solving challenges, sophisticated reasoning | Reasoning, vision | [{% data variables.copilot.copilot_claude_opus %} model card](https://www-cdn.anthropic.com/6be99a52cb68eb70eb9572b4cafad13df32ed995.pdf) | +| {% data variables.copilot.copilot_claude_sonnet_35 %} | Fast help with simple or repetitive tasks | Quick responses for code, syntax, and documentation | Agent mode, vision | [{% data variables.copilot.copilot_claude_sonnet_35 %} model card](https://www-cdn.anthropic.com/fed9cc193a14b84131812372d8d5857f8f304c52/Model_Card_Claude_3_Addendum.pdf) | +| {% data variables.copilot.copilot_claude_sonnet_37 %} | Deep reasoning and debugging | Structured reasoning across large, complex codebases | Agent mode, vision | [{% data variables.copilot.copilot_claude_sonnet_37 %} model card](https://assets.anthropic.com/m/785e231869ea8b3b/original/claude-3-7-sonnet-system-card.pdf) | +| {% data variables.copilot.copilot_claude_sonnet_40 %} | Deep reasoning and debugging | Performance and practicality, perfectly balanced for coding workflows | Agent mode, vision | [{% data variables.copilot.copilot_claude_sonnet_40 %} model card](https://www-cdn.anthropic.com/6be99a52cb68eb70eb9572b4cafad13df32ed995.pdf) | +| {% data variables.copilot.copilot_gemini_25_pro %} | Deep reasoning and debugging | Complex code generation, debugging, and research workflows | Reasoning, vision | [{% data variables.copilot.copilot_gemini_25_pro %} model card](https://storage.googleapis.com/model-cards/documents/gemini-2.5-pro.pdf) | +| {% data variables.copilot.copilot_gemini_flash %} | Working with visuals (diagrams, screenshots) | Real-time responses and visual reasoning for UI and diagram-based tasks | Vision | [{% data variables.copilot.copilot_gemini_flash %} model card](https://storage.googleapis.com/model-cards/documents/gemini-2-flash.pdf) | +| {% data variables.copilot.copilot_grok_code %} | General-purpose coding and writing | Fast, accurate code completions and explanations | Agent mode | [{% data variables.copilot.copilot_grok_code %} model card](https://data.x.ai/2025-08-20-grok-4-model-card.pdf) | ## Task: General-purpose coding and writing diff --git a/content/copilot/reference/ai-models/model-hosting.md b/content/copilot/reference/ai-models/model-hosting.md index 5dd2b19c9959..b354bb6bf569 100644 --- a/content/copilot/reference/ai-models/model-hosting.md +++ b/content/copilot/reference/ai-models/model-hosting.md @@ -35,6 +35,7 @@ When using OpenAI's models, input requests and output responses continue to run Used for: +* {% data variables.copilot.copilot_claude_sonnet_45 %} * {% data variables.copilot.copilot_claude_opus_41 %} * {% data variables.copilot.copilot_claude_opus %} * {% data variables.copilot.copilot_claude_sonnet_35 %} @@ -42,7 +43,7 @@ Used for: * {% data variables.copilot.copilot_claude_sonnet_37 %} Thinking * {% data variables.copilot.copilot_claude_sonnet_40 %} -{% data variables.copilot.copilot_claude_opus_41 %} is hosted by Anthropic PBC. {% data variables.copilot.copilot_claude_opus %} and {% data variables.copilot.copilot_claude_sonnet_40 %} are hosted by Anthropic PBC and Google Cloud Platform. {% data variables.copilot.copilot_claude_sonnet_37 %} is hosted by Amazon Web Services, Anthropic PBC, and Google Cloud Platform. {% data variables.copilot.copilot_claude_sonnet_35 %} is hosted exclusively by Amazon Web Services. {% data variables.product.github %} has provider agreements in place to ensure data is not used for training. Additional details for each provider are included below: +{% data variables.copilot.copilot_claude_opus_41 %} is hosted by Anthropic PBC. {% data variables.copilot.copilot_claude_opus %} and {% data variables.copilot.copilot_claude_sonnet_40 %} are hosted by Anthropic PBC and Google Cloud Platform. {% data variables.copilot.copilot_claude_sonnet_45 %} and {% data variables.copilot.copilot_claude_sonnet_37 %} are hosted by Amazon Web Services, Anthropic PBC, and Google Cloud Platform. {% data variables.copilot.copilot_claude_sonnet_35 %} is hosted exclusively by Amazon Web Services. {% data variables.product.github %} has provider agreements in place to ensure data is not used for training. Additional details for each provider are included below: * Amazon Bedrock: Amazon makes the [following data commitments](https://docs.aws.amazon.com/bedrock/latest/userguide/data-protection.html): _Amazon Bedrock doesn't store or log your prompts and completions. Amazon Bedrock doesn't use your prompts and completions to train any AWS models and doesn't distribute them to third parties_. * Anthropic PBC: {% data variables.product.github %} maintains a [zero data retention agreement](https://privacy.anthropic.com/en/articles/8956058-i-have-a-zero-retention-agreement-with-anthropic-what-products-does-it-apply-to) with Anthropic. diff --git a/content/copilot/reference/ai-models/supported-models.md b/content/copilot/reference/ai-models/supported-models.md index f9ee0c85ee14..81178f30e150 100644 --- a/content/copilot/reference/ai-models/supported-models.md +++ b/content/copilot/reference/ai-models/supported-models.md @@ -47,6 +47,7 @@ This table lists the AI models available in {% data variables.product.prodname_c | {% data variables.copilot.copilot_gpt_5 %} | OpenAI | GA | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.copilot.copilot_o3 %} | OpenAI | {% data variables.release-phases.closing_down_caps %}: 2025-10-23 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.copilot.copilot_o4_mini %} | OpenAI | {% data variables.release-phases.closing_down_caps %}: 2025-10-23 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_claude_sonnet_45 %} | Anthropic | {% data variables.release-phases.public_preview_caps %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.copilot.copilot_claude_opus_41 %} | Anthropic | GA | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.copilot.copilot_claude_opus %} | Anthropic | {% data variables.release-phases.closing_down_caps %}: 2025-10-23 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.copilot.copilot_claude_sonnet_35 %} | Anthropic | GA | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | @@ -69,20 +70,21 @@ The following table shows which models are available in each client. {% rowheaders %} -| Model | {% data variables.product.prodname_dotcom_the_website %} | {% data variables.product.prodname_vscode %} | {% data variables.product.prodname_vs %} | Eclipse | Xcode | JetBrains IDEs | -|----------------------------------------------------------------|----------------------------------------------------------|---------|---------------------------------------------|---------------------------------------------|---------------------------------------------|---------------------------------------------| +| Model | {% data variables.product.prodname_dotcom_the_website %} | {% data variables.product.prodname_vscode %} | {% data variables.product.prodname_vs %} | Eclipse | Xcode | JetBrains IDEs | +|----------------------------------------------------------------|----------------------------------------------------------|---------------------------------------------------|---------------------------------------------|---------------------------------------------|---------------------------------------------|---------------------------------------------| | {% data variables.copilot.copilot_gpt_41 %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.copilot.copilot_gpt_5_codex %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | | {% data variables.copilot.copilot_gpt_5_mini %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.copilot.copilot_gpt_5 %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.copilot.copilot_o3 %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.copilot.copilot_o4_mini %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_claude_opus_41 %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_claude_opus %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_claude_sonnet_45 %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | +| {% data variables.copilot.copilot_claude_opus_41 %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_claude_opus %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.copilot.copilot_claude_sonnet_35 %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.copilot.copilot_claude_sonnet_37 %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.copilot.copilot_claude_sonnet_37 %} Thinking | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_claude_sonnet_40 %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_claude_sonnet_40 %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.copilot.copilot_gemini_25_pro %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.copilot.copilot_gemini_flash %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.copilot.copilot_grok_code %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | diff --git a/content/organizations/organizing-members-into-teams/about-teams.md b/content/organizations/organizing-members-into-teams/about-teams.md index 145c961cbf4f..e909b2496474 100644 --- a/content/organizations/organizing-members-into-teams/about-teams.md +++ b/content/organizations/organizing-members-into-teams/about-teams.md @@ -18,9 +18,13 @@ allowTitleToDifferFromFilename: true You can use teams to manage access for people in an organization, and for sending notifications. Organization owners and team maintainers can give teams admin, read, or write access to organization repositories. Organization members can send a notification to an entire team by mentioning the team's name. Teams can only be made up of members of your organization, outside collaborators are unable to be on a team. -Organization owners and team maintainers can disable team notifications. For more information, see [AUTOTITLE](/organizations/organizing-members-into-teams/configuring-team-notifications). +{% ifversion not ghes %} -Organization members can also send a notification to an entire team by requesting a review from that team. Organization members can request reviews from specific teams with read access to the repository where the pull request is opened. Teams can be designated as owners of certain types or areas of code in a CODEOWNERS file. +>![TIP] If you use an enterprise account, you can also create teams at the enterprise level. For more information, see [AUTOTITLE](/enterprise-cloud@latest/admin/overview/about-teams). + +{% endif %} + +Organization members can send a notification to an entire team by requesting a review from that team. Organization members can request reviews from specific teams with read access to the repository where the pull request is opened. Teams can be designated as owners of certain types or areas of code in a CODEOWNERS file. For more information, see: * [AUTOTITLE](/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/managing-team-access-to-an-organization-repository) diff --git a/content/site-policy/github-terms/github-terms-of-service.md b/content/site-policy/github-terms/github-terms-of-service.md index d63511258640..dad85513eea7 100644 --- a/content/site-policy/github-terms/github-terms-of-service.md +++ b/content/site-policy/github-terms/github-terms-of-service.md @@ -146,6 +146,12 @@ You retain all moral rights to Your Content that you upload, publish, or submit To the extent this agreement is not enforceable by applicable law, you grant GitHub the rights we need to use Your Content without attribution and to make reasonable adaptations of Your Content as necessary to render the Website and provide the Service. +### 8. Access Reciprocity + +By using automated means to access, collect, or otherwise use (“Access”) any publicly accessible Content from the Service for the purpose of developing or training any commercially available artificial intelligence model, machine learning system, or similar technology (a "Commercial AI System"), you hereby waive any and all policies, terms, conditions, or contractual provisions governing products, services, websites or datasets you own or operate that would otherwise prohibit, restrict, or place conditions upon GitHub's Access to any publicly accessible data, information or content associated with your products or services, including for the purpose of developing or training any Commercial AI System. You further agree not to impose technical or other targeted measures to restrict or retaliate against such Access. + +This Section D.8 does not apply to Access solely for the purpose of academic research or if, on the date you Access the Content, the number of monthly active users of the products or services made available by you is less than 700 million in the preceding calendar month. For the purposes of this Section, "you" shall refer to you and any entity that directly or indirectly controls, is controlled by, or is under common control with you (affiliates). + ## E. Private Repositories **Short version:** _We treat the content of private repositories as confidential, and we only access it as described in our Privacy Statement—for security purposes, to assist the repository owner with a support matter, to maintain the integrity of the Service, to comply with our legal obligations, if we have reason to believe the contents are in violation of the law, or with your consent._ @@ -351,7 +357,7 @@ We reserve the right at any time and from time to time to modify or discontinue, ### 1. Governing Law -Except to the extent applicable law provides otherwise, this Agreement between you and GitHub and any access to or use of the Website or the Service are governed by the federal laws of the United States of America and the laws of the State of California, without regard to conflict of law provisions. You and GitHub agree to submit to the exclusive jurisdiction and venue of the courts located in the City and County of San Francisco, California. +Except to the extent applicable law provides otherwise, this Agreement between you and GitHub and any access to or use of the Website or the Service are governed by the federal laws of the United States of America and the laws of the State of California, without regard to conflict of law provisions. You and GitHub agree to submit to the exclusive jurisdiction and venue of the courts located in the City and County of San Francisco, California. However, any claim for injunctive relief with respect to a violation of section D.8 may be brought in any jurisdiction. ### 2. Non-Assignability diff --git a/data/reusables/billing/enhanced-billing-platform-product.md b/data/reusables/billing/enhanced-billing-platform-product.md index 6d6874df7fb3..5bde5758b0fe 100644 --- a/data/reusables/billing/enhanced-billing-platform-product.md +++ b/data/reusables/billing/enhanced-billing-platform-product.md @@ -1 +1 @@ -The new billing platform is now fully rolled out to all users. +The new billing platform is now available to all users. diff --git a/data/reusables/billing/premium-request-analytics-start.md b/data/reusables/billing/premium-request-analytics-start.md new file mode 100644 index 000000000000..ca065b73c860 --- /dev/null +++ b/data/reusables/billing/premium-request-analytics-start.md @@ -0,0 +1,2 @@ +> [!NOTE] +> Premium request analytics data are available from August 1, 2025 onward. diff --git a/data/reusables/copilot/available-models-per-plan.md b/data/reusables/copilot/available-models-per-plan.md index a0955e5a2948..7d6269da36bb 100644 --- a/data/reusables/copilot/available-models-per-plan.md +++ b/data/reusables/copilot/available-models-per-plan.md @@ -1,21 +1,22 @@ {% rowheaders %} -| Available models in chat | {% data variables.copilot.copilot_free_short %} | {% data variables.copilot.copilot_pro_short %} | {% data variables.copilot.copilot_pro_plus_short %} | {% data variables.copilot.copilot_business_short %} | {% data variables.copilot.copilot_enterprise_short %} | -|----------------------------------------------------------------|-------------------------------------------------|--------------------------------------------------|------------------------------------------------------|-------------------------------------------------------|----------------------------------------------------------| -| {% data variables.copilot.copilot_gpt_41 %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_gpt_5_codex %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_gpt_5_mini %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_gpt_5 %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_o3 %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_o4_mini %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_claude_opus_41 %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_claude_opus %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_claude_sonnet_35 %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_claude_sonnet_37 %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_claude_sonnet_37 %} Thinking | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_claude_sonnet_40 %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_gemini_25_pro %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_gemini_flash %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.copilot_grok_code %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| Available models in chat | {% data variables.copilot.copilot_free_short %} | {% data variables.copilot.copilot_pro_short %} | {% data variables.copilot.copilot_pro_plus_short %} | {% data variables.copilot.copilot_business_short %} | {% data variables.copilot.copilot_enterprise_short %} | +|----------------------------------------------------------------|-------------------------------------------------|-------------------------------------------------|-----------------------------------------------------|-----------------------------------------------------|-------------------------------------------------------| +| {% data variables.copilot.copilot_gpt_41 %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_gpt_5_codex %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_gpt_5_mini %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_gpt_5 %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_o3 %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_o4_mini %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_claude_sonnet_45 %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_claude_opus_41 %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_claude_opus %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_claude_sonnet_35 %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_claude_sonnet_37 %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_claude_sonnet_37 %} Thinking | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_claude_sonnet_40 %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_gemini_25_pro %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_gemini_flash %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.copilot.copilot_grok_code %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% endrowheaders %} diff --git a/data/reusables/copilot/model-multipliers.md b/data/reusables/copilot/model-multipliers.md index 5bcb0f937f1b..1fc3da00e748 100644 --- a/data/reusables/copilot/model-multipliers.md +++ b/data/reusables/copilot/model-multipliers.md @@ -9,6 +9,7 @@ | {% data variables.copilot.copilot_gpt_4o %} | 0 | 1 | | {% data variables.copilot.copilot_o3 %} | 1 | Not applicable | | {% data variables.copilot.copilot_o4_mini %} | 0.33 | Not applicable | +| {% data variables.copilot.copilot_claude_sonnet_45 %} | 1 | Not applicable | | {% data variables.copilot.copilot_claude_sonnet_35 %} | 1 | 1 | | {% data variables.copilot.copilot_claude_sonnet_37 %} | 1 | Not applicable | | {% data variables.copilot.copilot_claude_sonnet_37 %} Thinking | 1.25 | Not applicable | diff --git a/data/variables/copilot.yml b/data/variables/copilot.yml index 8dce2c63ea94..4dae5efc9bf1 100644 --- a/data/variables/copilot.yml +++ b/data/variables/copilot.yml @@ -108,6 +108,7 @@ copilot_claude_sonnet: 'Claude Sonnet' copilot_claude_sonnet_35: 'Claude Sonnet 3.5' copilot_claude_sonnet_37: 'Claude Sonnet 3.7' copilot_claude_sonnet_40: 'Claude Sonnet 4' +copilot_claude_sonnet_45: 'Claude Sonnet 4.5' copilot_claude_opus_41: 'Claude Opus 4.1' copilot_claude_opus: 'Claude Opus 4' # Gemini: diff --git a/src/github-apps/data/fpt-2022-11-28/fine-grained-pat-permissions.json b/src/github-apps/data/fpt-2022-11-28/fine-grained-pat-permissions.json index 74d5560d37d0..bfb487aec73f 100644 --- a/src/github-apps/data/fpt-2022-11-28/fine-grained-pat-permissions.json +++ b/src/github-apps/data/fpt-2022-11-28/fine-grained-pat-permissions.json @@ -117,6 +117,15 @@ "additional-permissions": false, "access": "write" }, + { + "category": "billing", + "slug": "get-billing-premium-request-usage-report-for-an-organization", + "subcategory": "enhanced-billing", + "verb": "get", + "requestPath": "/organizations/{org}/settings/billing/premium_request/usage", + "additional-permissions": false, + "access": "read" + }, { "category": "billing", "slug": "get-billing-usage-report-for-an-organization", @@ -8577,6 +8586,15 @@ "additional-permissions": false, "access": "read" }, + { + "category": "billing", + "slug": "get-billing-premium-request-usage-report-for-a-user", + "subcategory": "enhanced-billing", + "verb": "get", + "requestPath": "/users/{username}/settings/billing/premium_request/usage", + "additional-permissions": false, + "access": "read" + }, { "category": "billing", "slug": "get-shared-storage-billing-for-a-user", diff --git a/src/github-apps/data/fpt-2022-11-28/fine-grained-pat.json b/src/github-apps/data/fpt-2022-11-28/fine-grained-pat.json index d7c5f158fbbe..d39fe42f7a10 100644 --- a/src/github-apps/data/fpt-2022-11-28/fine-grained-pat.json +++ b/src/github-apps/data/fpt-2022-11-28/fine-grained-pat.json @@ -1080,6 +1080,12 @@ } ], "billing": [ + { + "slug": "get-billing-premium-request-usage-report-for-an-organization", + "subcategory": "enhanced-billing", + "verb": "get", + "requestPath": "/organizations/{org}/settings/billing/premium_request/usage" + }, { "slug": "get-billing-usage-report-for-an-organization", "subcategory": "enhanced-billing", @@ -1116,6 +1122,12 @@ "verb": "get", "requestPath": "/users/{username}/settings/billing/packages" }, + { + "slug": "get-billing-premium-request-usage-report-for-a-user", + "subcategory": "enhanced-billing", + "verb": "get", + "requestPath": "/users/{username}/settings/billing/premium_request/usage" + }, { "slug": "get-shared-storage-billing-for-a-user", "subcategory": "billing", diff --git a/src/github-apps/data/fpt-2022-11-28/server-to-server-permissions.json b/src/github-apps/data/fpt-2022-11-28/server-to-server-permissions.json index 6307a3699961..483a806a0d66 100644 --- a/src/github-apps/data/fpt-2022-11-28/server-to-server-permissions.json +++ b/src/github-apps/data/fpt-2022-11-28/server-to-server-permissions.json @@ -141,6 +141,17 @@ "server-to-server": true, "additional-permissions": false }, + { + "category": "billing", + "slug": "get-billing-premium-request-usage-report-for-an-organization", + "subcategory": "enhanced-billing", + "verb": "get", + "requestPath": "/organizations/{org}/settings/billing/premium_request/usage", + "access": "read", + "user-to-server": true, + "server-to-server": true, + "additional-permissions": false + }, { "category": "billing", "slug": "get-billing-usage-report-for-an-organization", @@ -10829,6 +10840,17 @@ "server-to-server": false, "additional-permissions": false }, + { + "category": "billing", + "slug": "get-billing-premium-request-usage-report-for-a-user", + "subcategory": "enhanced-billing", + "verb": "get", + "requestPath": "/users/{username}/settings/billing/premium_request/usage", + "access": "read", + "user-to-server": true, + "server-to-server": false, + "additional-permissions": false + }, { "category": "billing", "slug": "get-shared-storage-billing-for-a-user", diff --git a/src/github-apps/data/fpt-2022-11-28/server-to-server-rest.json b/src/github-apps/data/fpt-2022-11-28/server-to-server-rest.json index f74877cbd49d..0fd7e4901cde 100644 --- a/src/github-apps/data/fpt-2022-11-28/server-to-server-rest.json +++ b/src/github-apps/data/fpt-2022-11-28/server-to-server-rest.json @@ -1110,6 +1110,12 @@ } ], "billing": [ + { + "slug": "get-billing-premium-request-usage-report-for-an-organization", + "subcategory": "enhanced-billing", + "verb": "get", + "requestPath": "/organizations/{org}/settings/billing/premium_request/usage" + }, { "slug": "get-billing-usage-report-for-an-organization", "subcategory": "enhanced-billing", diff --git a/src/github-apps/data/fpt-2022-11-28/user-to-server-rest.json b/src/github-apps/data/fpt-2022-11-28/user-to-server-rest.json index 735099e36b91..1f108c7adc7f 100644 --- a/src/github-apps/data/fpt-2022-11-28/user-to-server-rest.json +++ b/src/github-apps/data/fpt-2022-11-28/user-to-server-rest.json @@ -1152,6 +1152,12 @@ } ], "billing": [ + { + "slug": "get-billing-premium-request-usage-report-for-an-organization", + "subcategory": "enhanced-billing", + "verb": "get", + "requestPath": "/organizations/{org}/settings/billing/premium_request/usage" + }, { "slug": "get-billing-usage-report-for-an-organization", "subcategory": "enhanced-billing", @@ -1188,6 +1194,12 @@ "verb": "get", "requestPath": "/users/{username}/settings/billing/packages" }, + { + "slug": "get-billing-premium-request-usage-report-for-a-user", + "subcategory": "enhanced-billing", + "verb": "get", + "requestPath": "/users/{username}/settings/billing/premium_request/usage" + }, { "slug": "get-shared-storage-billing-for-a-user", "subcategory": "billing", diff --git a/src/github-apps/data/ghec-2022-11-28/fine-grained-pat-permissions.json b/src/github-apps/data/ghec-2022-11-28/fine-grained-pat-permissions.json index 4b0f4b3c5836..eda240fd964a 100644 --- a/src/github-apps/data/ghec-2022-11-28/fine-grained-pat-permissions.json +++ b/src/github-apps/data/ghec-2022-11-28/fine-grained-pat-permissions.json @@ -309,6 +309,15 @@ "additional-permissions": false, "access": "write" }, + { + "category": "billing", + "slug": "get-billing-premium-request-usage-report-for-an-organization", + "subcategory": "enhanced-billing", + "verb": "get", + "requestPath": "/organizations/{org}/settings/billing/premium_request/usage", + "additional-permissions": false, + "access": "read" + }, { "category": "billing", "slug": "get-billing-usage-report-for-an-organization", @@ -9558,6 +9567,15 @@ "additional-permissions": false, "access": "read" }, + { + "category": "billing", + "slug": "get-billing-premium-request-usage-report-for-a-user", + "subcategory": "enhanced-billing", + "verb": "get", + "requestPath": "/users/{username}/settings/billing/premium_request/usage", + "additional-permissions": false, + "access": "read" + }, { "category": "billing", "slug": "get-shared-storage-billing-for-a-user", diff --git a/src/github-apps/data/ghec-2022-11-28/fine-grained-pat.json b/src/github-apps/data/ghec-2022-11-28/fine-grained-pat.json index 291762f6e0ac..68397b36f66b 100644 --- a/src/github-apps/data/ghec-2022-11-28/fine-grained-pat.json +++ b/src/github-apps/data/ghec-2022-11-28/fine-grained-pat.json @@ -1112,6 +1112,12 @@ } ], "billing": [ + { + "slug": "get-billing-premium-request-usage-report-for-an-organization", + "subcategory": "enhanced-billing", + "verb": "get", + "requestPath": "/organizations/{org}/settings/billing/premium_request/usage" + }, { "slug": "get-billing-usage-report-for-an-organization", "subcategory": "enhanced-billing", @@ -1154,6 +1160,12 @@ "verb": "get", "requestPath": "/users/{username}/settings/billing/packages" }, + { + "slug": "get-billing-premium-request-usage-report-for-a-user", + "subcategory": "enhanced-billing", + "verb": "get", + "requestPath": "/users/{username}/settings/billing/premium_request/usage" + }, { "slug": "get-shared-storage-billing-for-a-user", "subcategory": "billing", diff --git a/src/github-apps/data/ghec-2022-11-28/server-to-server-permissions.json b/src/github-apps/data/ghec-2022-11-28/server-to-server-permissions.json index 423ec6e9ad3d..c0d4b9558555 100644 --- a/src/github-apps/data/ghec-2022-11-28/server-to-server-permissions.json +++ b/src/github-apps/data/ghec-2022-11-28/server-to-server-permissions.json @@ -539,6 +539,17 @@ "server-to-server": true, "additional-permissions": false }, + { + "category": "billing", + "slug": "get-billing-premium-request-usage-report-for-an-organization", + "subcategory": "enhanced-billing", + "verb": "get", + "requestPath": "/organizations/{org}/settings/billing/premium_request/usage", + "access": "read", + "user-to-server": true, + "server-to-server": true, + "additional-permissions": false + }, { "category": "billing", "slug": "get-billing-usage-report-for-an-organization", @@ -12182,6 +12193,17 @@ "server-to-server": false, "additional-permissions": false }, + { + "category": "billing", + "slug": "get-billing-premium-request-usage-report-for-a-user", + "subcategory": "enhanced-billing", + "verb": "get", + "requestPath": "/users/{username}/settings/billing/premium_request/usage", + "access": "read", + "user-to-server": true, + "server-to-server": false, + "additional-permissions": false + }, { "category": "billing", "slug": "get-shared-storage-billing-for-a-user", diff --git a/src/github-apps/data/ghec-2022-11-28/server-to-server-rest.json b/src/github-apps/data/ghec-2022-11-28/server-to-server-rest.json index 74922c395381..dec6e4143ed5 100644 --- a/src/github-apps/data/ghec-2022-11-28/server-to-server-rest.json +++ b/src/github-apps/data/ghec-2022-11-28/server-to-server-rest.json @@ -1142,6 +1142,12 @@ } ], "billing": [ + { + "slug": "get-billing-premium-request-usage-report-for-an-organization", + "subcategory": "enhanced-billing", + "verb": "get", + "requestPath": "/organizations/{org}/settings/billing/premium_request/usage" + }, { "slug": "get-billing-usage-report-for-an-organization", "subcategory": "enhanced-billing", diff --git a/src/github-apps/data/ghec-2022-11-28/user-to-server-rest.json b/src/github-apps/data/ghec-2022-11-28/user-to-server-rest.json index 29200474a2bc..96a92032d749 100644 --- a/src/github-apps/data/ghec-2022-11-28/user-to-server-rest.json +++ b/src/github-apps/data/ghec-2022-11-28/user-to-server-rest.json @@ -1184,6 +1184,12 @@ } ], "billing": [ + { + "slug": "get-billing-premium-request-usage-report-for-an-organization", + "subcategory": "enhanced-billing", + "verb": "get", + "requestPath": "/organizations/{org}/settings/billing/premium_request/usage" + }, { "slug": "get-billing-usage-report-for-an-organization", "subcategory": "enhanced-billing", @@ -1226,6 +1232,12 @@ "verb": "get", "requestPath": "/users/{username}/settings/billing/packages" }, + { + "slug": "get-billing-premium-request-usage-report-for-a-user", + "subcategory": "enhanced-billing", + "verb": "get", + "requestPath": "/users/{username}/settings/billing/premium_request/usage" + }, { "slug": "get-shared-storage-billing-for-a-user", "subcategory": "billing", diff --git a/src/github-apps/lib/config.json b/src/github-apps/lib/config.json index 358f7517a798..472ed4629b26 100644 --- a/src/github-apps/lib/config.json +++ b/src/github-apps/lib/config.json @@ -60,5 +60,5 @@ "2022-11-28" ] }, - "sha": "5efe9a47bbe583fdc512c811f92b779b0715b95c" + "sha": "23ea15fe816288eb00bb9c764c5c137fd16f4115" } \ No newline at end of file diff --git a/src/rest/data/fpt-2022-11-28/schema.json b/src/rest/data/fpt-2022-11-28/schema.json index 3bc023f6bad8..30cedf16b08a 100644 --- a/src/rest/data/fpt-2022-11-28/schema.json +++ b/src/rest/data/fpt-2022-11-28/schema.json @@ -113286,6 +113286,267 @@ } ], "enhanced-billing": [ + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/organizations/{org}/settings/billing/premium_request/usage", + "title": "Get billing premium request usage report for an organization", + "category": "billing", + "subcategory": "enhanced-billing", + "parameters": [ + { + "name": "org", + "description": "

The organization name. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "year", + "description": "

If specified, only return results for a single year. The value of year is an integer with four digits representing a year. For example, 2025. Default value is the current year.

", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "month", + "description": "

If specified, only return results for a single month. The value of month is an integer between 1 and 12. Default value is the current month. If no year is specified the default year is used.

", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "day", + "description": "

If specified, only return results for a single day. The value of day is an integer between 1 and 31. If no year or month is specified, the default year and month are used.

", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "user", + "description": "

The user name to query usage for. The name is not case sensitive.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "model", + "description": "

The model name to query usage for. The name is not case sensitive.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "product", + "description": "

The product name to query usage for. The name is not case sensitive.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"Administration\" organization permissions": "read" + } + ] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response when getting a billing premium request usage report

", + "example": { + "timePeriod": { + "year": 2025 + }, + "organization": "GitHub", + "usageItems": [ + { + "product": "Copilot", + "sku": "Copilot Premium Request", + "model": "GPT-5", + "unitType": "requests", + "pricePerUnit": 0.04, + "grossQuantity": 100, + "grossAmount": 4, + "discountQuantity": 0, + "discountAmount": 0, + "netQuantity": 100, + "netAmount": 4 + } + ] + }, + "schema": { + "type": "object", + "properties": { + "timePeriod": { + "type": "object", + "properties": { + "year": { + "type": "integer", + "description": "The year for the usage report." + }, + "month": { + "type": "integer", + "description": "The month for the usage report." + }, + "day": { + "type": "integer", + "description": "The day for the usage report." + } + }, + "required": [ + "year" + ] + }, + "organization": { + "type": "string", + "description": "The unique identifier of the organization." + }, + "user": { + "type": "string", + "description": "The name of the user for the usage report." + }, + "product": { + "type": "string", + "description": "The product for the usage report." + }, + "model": { + "type": "string", + "description": "The model for the usage report." + }, + "usageItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "product": { + "type": "string", + "description": "Product name." + }, + "sku": { + "type": "string", + "description": "SKU name." + }, + "model": { + "type": "string", + "description": "Model name." + }, + "unitType": { + "type": "string", + "description": "Unit type of the usage line item." + }, + "pricePerUnit": { + "type": "number", + "description": "Price per unit of the usage line item." + }, + "grossQuantity": { + "type": "integer", + "description": "Gross quantity of the usage line item." + }, + "grossAmount": { + "type": "number", + "description": "Gross amount of the usage line item." + }, + "discountQuantity": { + "type": "integer", + "description": "Discount quantity of the usage line item." + }, + "discountAmount": { + "type": "number", + "description": "Discount amount of the usage line item." + }, + "netQuantity": { + "type": "integer", + "description": "Net quantity of the usage line item." + }, + "netAmount": { + "type": "number", + "description": "Net amount of the usage line item." + } + }, + "required": [ + "product", + "sku", + "model", + "unitType", + "pricePerUnit", + "grossQuantity", + "grossAmount", + "discountQuantity", + "discountAmount", + "netQuantity", + "netAmount" + ] + } + } + }, + "required": [ + "timePeriod", + "organization", + "usageItems" + ] + } + } + } + ], + "previews": [], + "descriptionHTML": "

Gets a report of premium request usage for an organization. To use this endpoint, you must be an administrator of an organization within an enterprise or an organization account.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

Response when getting a billing premium request usage report

" + }, + { + "httpStatusCode": "400", + "description": "

Bad Request

" + }, + { + "httpStatusCode": "403", + "description": "

Forbidden

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + }, + { + "httpStatusCode": "503", + "description": "

Service unavailable

" + } + ] + }, { "serverUrl": "https://api.github.com", "verb": "get", @@ -113479,6 +113740,254 @@ } ] }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/users/{username}/settings/billing/premium_request/usage", + "title": "Get billing premium request usage report for a user", + "category": "billing", + "subcategory": "enhanced-billing", + "parameters": [ + { + "name": "username", + "description": "

The handle for the GitHub user account.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "year", + "description": "

If specified, only return results for a single year. The value of year is an integer with four digits representing a year. For example, 2025. Default value is the current year.

", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "month", + "description": "

If specified, only return results for a single month. The value of month is an integer between 1 and 12. Default value is the current month. If no year is specified the default year is used.

", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "day", + "description": "

If specified, only return results for a single day. The value of day is an integer between 1 and 31. If no year or month is specified, the default year and month are used.

", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "model", + "description": "

The model name to query usage for. The name is not case sensitive.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "product", + "description": "

The product name to query usage for. The name is not case sensitive.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [], + "progAccess": { + "userToServerRest": true, + "serverToServer": false, + "fineGrainedPat": true, + "permissions": [ + { + "\"Plan\" user permissions": "read" + } + ] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "username": "USERNAME" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response when getting a billing premium request usage report

", + "example": { + "timePeriod": { + "year": 2025 + }, + "user": "monalisa", + "usageItems": [ + { + "product": "Copilot", + "sku": "Copilot Premium Request", + "model": "GPT-5", + "unitType": "requests", + "pricePerUnit": 0.04, + "grossQuantity": 100, + "grossAmount": 4, + "discountQuantity": 0, + "discountAmount": 0, + "netQuantity": 100, + "netAmount": 4 + } + ] + }, + "schema": { + "type": "object", + "properties": { + "timePeriod": { + "type": "object", + "properties": { + "year": { + "type": "integer", + "description": "The year for the usage report." + }, + "month": { + "type": "integer", + "description": "The month for the usage report." + }, + "day": { + "type": "integer", + "description": "The day for the usage report." + } + }, + "required": [ + "year" + ] + }, + "user": { + "type": "string", + "description": "The unique identifier of the user." + }, + "product": { + "type": "string", + "description": "The product for the usage report." + }, + "model": { + "type": "string", + "description": "The model for the usage report." + }, + "usageItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "product": { + "type": "string", + "description": "Product name." + }, + "sku": { + "type": "string", + "description": "SKU name." + }, + "model": { + "type": "string", + "description": "Model name." + }, + "unitType": { + "type": "string", + "description": "Unit type of the usage line item." + }, + "pricePerUnit": { + "type": "number", + "description": "Price per unit of the usage line item." + }, + "grossQuantity": { + "type": "integer", + "description": "Gross quantity of the usage line item." + }, + "grossAmount": { + "type": "number", + "description": "Gross amount of the usage line item." + }, + "discountQuantity": { + "type": "integer", + "description": "Discount quantity of the usage line item." + }, + "discountAmount": { + "type": "number", + "description": "Discount amount of the usage line item." + }, + "netQuantity": { + "type": "integer", + "description": "Net quantity of the usage line item." + }, + "netAmount": { + "type": "number", + "description": "Net amount of the usage line item." + } + }, + "required": [ + "product", + "sku", + "model", + "unitType", + "pricePerUnit", + "grossQuantity", + "grossAmount", + "discountQuantity", + "discountAmount", + "netQuantity", + "netAmount" + ] + } + } + }, + "required": [ + "timePeriod", + "user", + "usageItems" + ] + } + } + } + ], + "previews": [], + "descriptionHTML": "

Gets a report of premium request usage for a user.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

Response when getting a billing premium request usage report

" + }, + { + "httpStatusCode": "400", + "description": "

Bad Request

" + }, + { + "httpStatusCode": "403", + "description": "

Forbidden

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + }, + { + "httpStatusCode": "503", + "description": "

Service unavailable

" + } + ] + }, { "serverUrl": "https://api.github.com", "verb": "get", diff --git a/src/rest/data/ghec-2022-11-28/schema.json b/src/rest/data/ghec-2022-11-28/schema.json index 555a2b59eced..bb57ef4a2429 100644 --- a/src/rest/data/ghec-2022-11-28/schema.json +++ b/src/rest/data/ghec-2022-11-28/schema.json @@ -123552,6 +123552,267 @@ } ], "enhanced-billing": [ + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/organizations/{org}/settings/billing/premium_request/usage", + "title": "Get billing premium request usage report for an organization", + "category": "billing", + "subcategory": "enhanced-billing", + "parameters": [ + { + "name": "org", + "description": "

The organization name. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "year", + "description": "

If specified, only return results for a single year. The value of year is an integer with four digits representing a year. For example, 2025. Default value is the current year.

", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "month", + "description": "

If specified, only return results for a single month. The value of month is an integer between 1 and 12. Default value is the current month. If no year is specified the default year is used.

", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "day", + "description": "

If specified, only return results for a single day. The value of day is an integer between 1 and 31. If no year or month is specified, the default year and month are used.

", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "user", + "description": "

The user name to query usage for. The name is not case sensitive.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "model", + "description": "

The model name to query usage for. The name is not case sensitive.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "product", + "description": "

The product name to query usage for. The name is not case sensitive.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"Administration\" organization permissions": "read" + } + ] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response when getting a billing premium request usage report

", + "example": { + "timePeriod": { + "year": 2025 + }, + "organization": "GitHub", + "usageItems": [ + { + "product": "Copilot", + "sku": "Copilot Premium Request", + "model": "GPT-5", + "unitType": "requests", + "pricePerUnit": 0.04, + "grossQuantity": 100, + "grossAmount": 4, + "discountQuantity": 0, + "discountAmount": 0, + "netQuantity": 100, + "netAmount": 4 + } + ] + }, + "schema": { + "type": "object", + "properties": { + "timePeriod": { + "type": "object", + "properties": { + "year": { + "type": "integer", + "description": "The year for the usage report." + }, + "month": { + "type": "integer", + "description": "The month for the usage report." + }, + "day": { + "type": "integer", + "description": "The day for the usage report." + } + }, + "required": [ + "year" + ] + }, + "organization": { + "type": "string", + "description": "The unique identifier of the organization." + }, + "user": { + "type": "string", + "description": "The name of the user for the usage report." + }, + "product": { + "type": "string", + "description": "The product for the usage report." + }, + "model": { + "type": "string", + "description": "The model for the usage report." + }, + "usageItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "product": { + "type": "string", + "description": "Product name." + }, + "sku": { + "type": "string", + "description": "SKU name." + }, + "model": { + "type": "string", + "description": "Model name." + }, + "unitType": { + "type": "string", + "description": "Unit type of the usage line item." + }, + "pricePerUnit": { + "type": "number", + "description": "Price per unit of the usage line item." + }, + "grossQuantity": { + "type": "integer", + "description": "Gross quantity of the usage line item." + }, + "grossAmount": { + "type": "number", + "description": "Gross amount of the usage line item." + }, + "discountQuantity": { + "type": "integer", + "description": "Discount quantity of the usage line item." + }, + "discountAmount": { + "type": "number", + "description": "Discount amount of the usage line item." + }, + "netQuantity": { + "type": "integer", + "description": "Net quantity of the usage line item." + }, + "netAmount": { + "type": "number", + "description": "Net amount of the usage line item." + } + }, + "required": [ + "product", + "sku", + "model", + "unitType", + "pricePerUnit", + "grossQuantity", + "grossAmount", + "discountQuantity", + "discountAmount", + "netQuantity", + "netAmount" + ] + } + } + }, + "required": [ + "timePeriod", + "organization", + "usageItems" + ] + } + } + } + ], + "previews": [], + "descriptionHTML": "

Gets a report of premium request usage for an organization. To use this endpoint, you must be an administrator of an organization within an enterprise or an organization account.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

Response when getting a billing premium request usage report

" + }, + { + "httpStatusCode": "400", + "description": "

Bad Request

" + }, + { + "httpStatusCode": "403", + "description": "

Forbidden

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + }, + { + "httpStatusCode": "503", + "description": "

Service unavailable

" + } + ] + }, { "serverUrl": "https://api.github.com", "verb": "get", @@ -123745,6 +124006,254 @@ } ] }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/users/{username}/settings/billing/premium_request/usage", + "title": "Get billing premium request usage report for a user", + "category": "billing", + "subcategory": "enhanced-billing", + "parameters": [ + { + "name": "username", + "description": "

The handle for the GitHub user account.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "year", + "description": "

If specified, only return results for a single year. The value of year is an integer with four digits representing a year. For example, 2025. Default value is the current year.

", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "month", + "description": "

If specified, only return results for a single month. The value of month is an integer between 1 and 12. Default value is the current month. If no year is specified the default year is used.

", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "day", + "description": "

If specified, only return results for a single day. The value of day is an integer between 1 and 31. If no year or month is specified, the default year and month are used.

", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "model", + "description": "

The model name to query usage for. The name is not case sensitive.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "product", + "description": "

The product name to query usage for. The name is not case sensitive.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [], + "progAccess": { + "userToServerRest": true, + "serverToServer": false, + "fineGrainedPat": true, + "permissions": [ + { + "\"Plan\" user permissions": "read" + } + ] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "username": "USERNAME" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response when getting a billing premium request usage report

", + "example": { + "timePeriod": { + "year": 2025 + }, + "user": "monalisa", + "usageItems": [ + { + "product": "Copilot", + "sku": "Copilot Premium Request", + "model": "GPT-5", + "unitType": "requests", + "pricePerUnit": 0.04, + "grossQuantity": 100, + "grossAmount": 4, + "discountQuantity": 0, + "discountAmount": 0, + "netQuantity": 100, + "netAmount": 4 + } + ] + }, + "schema": { + "type": "object", + "properties": { + "timePeriod": { + "type": "object", + "properties": { + "year": { + "type": "integer", + "description": "The year for the usage report." + }, + "month": { + "type": "integer", + "description": "The month for the usage report." + }, + "day": { + "type": "integer", + "description": "The day for the usage report." + } + }, + "required": [ + "year" + ] + }, + "user": { + "type": "string", + "description": "The unique identifier of the user." + }, + "product": { + "type": "string", + "description": "The product for the usage report." + }, + "model": { + "type": "string", + "description": "The model for the usage report." + }, + "usageItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "product": { + "type": "string", + "description": "Product name." + }, + "sku": { + "type": "string", + "description": "SKU name." + }, + "model": { + "type": "string", + "description": "Model name." + }, + "unitType": { + "type": "string", + "description": "Unit type of the usage line item." + }, + "pricePerUnit": { + "type": "number", + "description": "Price per unit of the usage line item." + }, + "grossQuantity": { + "type": "integer", + "description": "Gross quantity of the usage line item." + }, + "grossAmount": { + "type": "number", + "description": "Gross amount of the usage line item." + }, + "discountQuantity": { + "type": "integer", + "description": "Discount quantity of the usage line item." + }, + "discountAmount": { + "type": "number", + "description": "Discount amount of the usage line item." + }, + "netQuantity": { + "type": "integer", + "description": "Net quantity of the usage line item." + }, + "netAmount": { + "type": "number", + "description": "Net amount of the usage line item." + } + }, + "required": [ + "product", + "sku", + "model", + "unitType", + "pricePerUnit", + "grossQuantity", + "grossAmount", + "discountQuantity", + "discountAmount", + "netQuantity", + "netAmount" + ] + } + } + }, + "required": [ + "timePeriod", + "user", + "usageItems" + ] + } + } + } + ], + "previews": [], + "descriptionHTML": "

Gets a report of premium request usage for a user.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

Response when getting a billing premium request usage report

" + }, + { + "httpStatusCode": "400", + "description": "

Bad Request

" + }, + { + "httpStatusCode": "403", + "description": "

Forbidden

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + }, + { + "httpStatusCode": "503", + "description": "

Service unavailable

" + } + ] + }, { "serverUrl": "https://api.github.com", "verb": "get", @@ -294503,6 +295012,302 @@ } ] }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/enterprises/{enterprise}/settings/billing/premium_request/usage", + "title": "Get billing premium request usage report for an enterprise", + "category": "enterprise-admin", + "subcategory": "billing", + "parameters": [ + { + "name": "enterprise", + "description": "

The slug version of the enterprise name.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "year", + "description": "

If specified, only return results for a single year. The value of year is an integer with four digits representing a year. For example, 2025. Default value is the current year.

", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "month", + "description": "

If specified, only return results for a single month. The value of month is an integer between 1 and 12. Default value is the current month. If no year is specified the default year is used.

", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "day", + "description": "

If specified, only return results for a single day. The value of day is an integer between 1 and 31. If no year or month is specified, the default year and month are used.

", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "organization", + "description": "

The organization name to query usage for. The name is not case sensitive.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "user", + "description": "

The user name to query usage for. The name is not case sensitive.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "model", + "description": "

The model name to query usage for. The name is not case sensitive.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "product", + "description": "

The product name to query usage for. The name is not case sensitive.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "cost_center_id", + "description": "

The ID corresponding to a cost center. An ID of 'none' will target usage not associated to any cost center.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [], + "progAccess": { + "userToServerRest": false, + "serverToServer": false, + "fineGrainedPat": false, + "permissions": [] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "enterprise": "ENTERPRISE" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response when getting a billing premium request usage report

", + "example": { + "timePeriod": { + "year": 2025 + }, + "enterprise": "GitHub", + "usageItems": [ + { + "product": "Copilot", + "sku": "Copilot Premium Request", + "model": "GPT-5", + "unitType": "requests", + "pricePerUnit": 0.04, + "grossQuantity": 100, + "grossAmount": 4, + "discountQuantity": 0, + "discountAmount": 0, + "netQuantity": 100, + "netAmount": 4 + } + ] + }, + "schema": { + "type": "object", + "properties": { + "timePeriod": { + "type": "object", + "properties": { + "year": { + "type": "integer", + "description": "The year for the usage report." + }, + "month": { + "type": "integer", + "description": "The month for the usage report." + }, + "day": { + "type": "integer", + "description": "The day for the usage report." + } + }, + "required": [ + "year" + ] + }, + "enterprise": { + "type": "string", + "description": "The unique identifier of the enterprise." + }, + "user": { + "type": "string", + "description": "The name of the user for the usage report." + }, + "organization": { + "type": "string", + "description": "The name of the organization for the usage report." + }, + "product": { + "type": "string", + "description": "The product for the usage report." + }, + "model": { + "type": "string", + "description": "The model for the usage report." + }, + "costCenter": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the cost center." + }, + "name": { + "type": "string", + "description": "The name of the cost center." + } + }, + "required": [ + "id", + "name" + ] + }, + "usageItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "product": { + "type": "string", + "description": "Product name." + }, + "sku": { + "type": "string", + "description": "SKU name." + }, + "model": { + "type": "string", + "description": "Model name." + }, + "unitType": { + "type": "string", + "description": "Unit type of the usage line item." + }, + "pricePerUnit": { + "type": "number", + "description": "Price per unit of the usage line item." + }, + "grossQuantity": { + "type": "integer", + "description": "Gross quantity of the usage line item." + }, + "grossAmount": { + "type": "number", + "description": "Gross amount of the usage line item." + }, + "discountQuantity": { + "type": "integer", + "description": "Discount quantity of the usage line item." + }, + "discountAmount": { + "type": "number", + "description": "Discount amount of the usage line item." + }, + "netQuantity": { + "type": "integer", + "description": "Net quantity of the usage line item." + }, + "netAmount": { + "type": "number", + "description": "Net amount of the usage line item." + } + }, + "required": [ + "product", + "sku", + "model", + "unitType", + "pricePerUnit", + "grossQuantity", + "grossAmount", + "discountQuantity", + "discountAmount", + "netQuantity", + "netAmount" + ] + } + } + }, + "required": [ + "timePeriod", + "enterprise", + "usageItems" + ] + } + } + } + ], + "previews": [], + "descriptionHTML": "

Gets a report of premium request usage for an enterprise. To use this endpoint, you must be an administrator or billing manager of the enterprise.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

Response when getting a billing premium request usage report

" + }, + { + "httpStatusCode": "400", + "description": "

Bad Request

" + }, + { + "httpStatusCode": "403", + "description": "

Forbidden

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + }, + { + "httpStatusCode": "503", + "description": "

Service unavailable

" + } + ] + }, { "serverUrl": "https://api.github.com", "verb": "get", diff --git a/src/rest/data/ghes-3.14-2022-11-28/schema.json b/src/rest/data/ghes-3.14-2022-11-28/schema.json index ac905a06d112..f33e2fb442e2 100644 --- a/src/rest/data/ghes-3.14-2022-11-28/schema.json +++ b/src/rest/data/ghes-3.14-2022-11-28/schema.json @@ -10665,13 +10665,13 @@ } ], "previews": [], + "descriptionHTML": "

Removes a self-hosted runner from a group configured in an enterprise. The runner is then returned to the default group.

\n

OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.

", "statusCodes": [ { "httpStatusCode": "204", "description": "

No Content

" } - ], - "descriptionHTML": "

Removes a self-hosted runner from a group configured in an enterprise. The runner is then returned to the default group.

\n

OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.

" + ] }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -10871,13 +10871,13 @@ } ], "previews": [], + "descriptionHTML": "

Lists all self-hosted runner groups configured in an organization and inherited from an enterprise.

\n

OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.

", "statusCodes": [ { "httpStatusCode": "200", "description": "

OK

" } - ], - "descriptionHTML": "

Lists all self-hosted runner groups configured in an organization and inherited from an enterprise.

\n

OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.

" + ] }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -11069,13 +11069,13 @@ } ], "previews": [], + "descriptionHTML": "

Creates a new self-hosted runner group for an organization.

\n

OAuth tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.

", "statusCodes": [ { "httpStatusCode": "201", "description": "

Created

" } - ], - "descriptionHTML": "

Creates a new self-hosted runner group for an organization.

\n

OAuth tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.

" + ] }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -63616,13 +63616,13 @@ } ], "previews": [], + "descriptionHTML": "

If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. Optional: use the fine-grained token with following permission set to view private events: \"Events\" user permissions (read).

\n

Note

\n

\nThis API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.

\n
", "statusCodes": [ { "httpStatusCode": "200", "description": "

OK

" } - ], - "descriptionHTML": "

If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. Optional: use the fine-grained token with following permission set to view private events: \"Events\" user permissions (read).

\n

Note

\n

\nThis API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.

\n
" + ] }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -83452,13 +83452,13 @@ } ], "previews": [], + "descriptionHTML": "

Lists all notifications for the current user in the specified repository.

", "statusCodes": [ { "httpStatusCode": "200", "description": "

OK

" } - ], - "descriptionHTML": "

Lists all notifications for the current user in the specified repository.

" + ] }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -104502,6 +104502,7 @@ } ], "previews": [], + "descriptionHTML": "

List repositories that an app installation can access.

", "statusCodes": [ { "httpStatusCode": "200", @@ -104519,8 +104520,7 @@ "httpStatusCode": "403", "description": "

Forbidden

" } - ], - "descriptionHTML": "

List repositories that an app installation can access.

" + ] }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -207224,13 +207224,13 @@ } ], "previews": [], + "descriptionHTML": "", "statusCodes": [ { "httpStatusCode": "200", "description": "

OK

" } - ], - "descriptionHTML": "" + ] }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -212205,6 +212205,7 @@ } ], "previews": [], + "descriptionHTML": "

Applies settings on your instance. For a list of the available settings, see the Get settings endpoint.

\n

Notes:

\n", "statusCodes": [ { "httpStatusCode": "204", @@ -212214,8 +212215,7 @@ "httpStatusCode": "401", "description": "

Unauthorized

" } - ], - "descriptionHTML": "

Applies settings on your instance. For a list of the available settings, see the Get settings endpoint.

\n

Notes:

\n" + ] }, { "serverUrl": "http(s)://HOSTNAME", @@ -224531,13 +224531,13 @@ } ], "previews": [], + "descriptionHTML": "

Note that you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see \"HTTP method.\"

", "statusCodes": [ { "httpStatusCode": "204", "description": "

No Content

" } - ], - "descriptionHTML": "

Note that you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see \"HTTP method.\"

" + ] }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -319842,13 +319842,13 @@ } ], "previews": [], + "descriptionHTML": "

Get Hypermedia links to resources accessible in GitHub's REST API

", "statusCodes": [ { "httpStatusCode": "200", "description": "

OK

" } - ], - "descriptionHTML": "

Get Hypermedia links to resources accessible in GitHub's REST API

" + ] }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -320129,13 +320129,13 @@ } ], "previews": [], + "descriptionHTML": "

Get a random sentence from the Zen of GitHub

", "statusCodes": [ { "httpStatusCode": "200", "description": "

OK

" } - ], - "descriptionHTML": "

Get a random sentence from the Zen of GitHub

" + ] } ] }, @@ -436791,13 +436791,13 @@ } ], "previews": [], + "descriptionHTML": "

Warning

\n

\nEndpoint closing down notice: This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new List reactions for a team discussion comment endpoint.

\n
\n

List the reactions to a team discussion comment.

\n

OAuth app tokens and personal access tokens (classic) need the read:discussion scope to use this endpoint.

", "statusCodes": [ { "httpStatusCode": "200", "description": "

OK

" } - ], - "descriptionHTML": "

Warning

\n

\nEndpoint closing down notice: This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new List reactions for a team discussion comment endpoint.

\n
\n

List the reactions to a team discussion comment.

\n

OAuth app tokens and personal access tokens (classic) need the read:discussion scope to use this endpoint.

" + ] }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -442689,13 +442689,13 @@ } ], "previews": [], + "descriptionHTML": "

Users with push access to the repository can edit a release.

", "statusCodes": [ { "httpStatusCode": "200", "description": "

OK

" } - ], - "descriptionHTML": "

Users with push access to the repository can edit a release.

" + ] }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -463176,13 +463176,13 @@ } ], "previews": [], + "descriptionHTML": "

Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see \"About security alerts for vulnerable dependencies\".

", "statusCodes": [ { "httpStatusCode": "204", "description": "

No Content

" } - ], - "descriptionHTML": "

Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see \"About security alerts for vulnerable dependencies\".

" + ] }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -496421,13 +496421,13 @@ } ], "previews": [], + "descriptionHTML": "

Updates the webhook configuration for a repository. To update more information about the webhook, including the active state and events, use \"Update a repository webhook.\"

\n

OAuth app tokens and personal access tokens (classic) need the write:repo_hook or repo scope to use this endpoint.

", "statusCodes": [ { "httpStatusCode": "200", "description": "

OK

" } - ], - "descriptionHTML": "

Updates the webhook configuration for a repository. To update more information about the webhook, including the active state and events, use \"Update a repository webhook.\"

\n

OAuth app tokens and personal access tokens (classic) need the write:repo_hook or repo scope to use this endpoint.

" + ] }, { "serverUrl": "http(s)://HOSTNAME/api/v3", diff --git a/src/rest/data/ghes-3.15-2022-11-28/schema.json b/src/rest/data/ghes-3.15-2022-11-28/schema.json index 1b66c7923f9a..a3ebe7ced0f4 100644 --- a/src/rest/data/ghes-3.15-2022-11-28/schema.json +++ b/src/rest/data/ghes-3.15-2022-11-28/schema.json @@ -2246,7 +2246,6 @@ } ], "previews": [], - "descriptionHTML": "

Creates or updates the customization template for an OpenID Connect (OIDC) subject claim.

\n

OAuth app tokens and personal access tokens (classic) need the write:org scope to use this endpoint.

", "statusCodes": [ { "httpStatusCode": "201", @@ -2260,7 +2259,8 @@ "httpStatusCode": "404", "description": "

Resource not found

" } - ] + ], + "descriptionHTML": "

Creates or updates the customization template for an OpenID Connect (OIDC) subject claim.

\n

OAuth app tokens and personal access tokens (classic) need the write:org scope to use this endpoint.

" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -3326,13 +3326,13 @@ } ], "previews": [], - "descriptionHTML": "

Sets the default workflow permissions granted to the GITHUB_TOKEN when running workflows in an enterprise, and sets\nwhether GitHub Actions can submit approving pull request reviews. For more information, see\n\"Enforcing a policy for workflow permissions in your enterprise.\"

\n

OAuth app tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.

", "statusCodes": [ { "httpStatusCode": "204", "description": "

Success response

" } - ] + ], + "descriptionHTML": "

Sets the default workflow permissions granted to the GITHUB_TOKEN when running workflows in an enterprise, and sets\nwhether GitHub Actions can submit approving pull request reviews. For more information, see\n\"Enforcing a policy for workflow permissions in your enterprise.\"

\n

OAuth app tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.

" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -10607,13 +10607,13 @@ } ], "previews": [], - "descriptionHTML": "

Adds a self-hosted runner to a runner group configured in an enterprise.

\n

OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.

", "statusCodes": [ { "httpStatusCode": "204", "description": "

No Content

" } - ] + ], + "descriptionHTML": "

Adds a self-hosted runner to a runner group configured in an enterprise.

\n

OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.

" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -10677,13 +10677,13 @@ } ], "previews": [], - "descriptionHTML": "

Removes a self-hosted runner from a group configured in an enterprise. The runner is then returned to the default group.

\n

OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.

", "statusCodes": [ { "httpStatusCode": "204", "description": "

No Content

" } - ] + ], + "descriptionHTML": "

Removes a self-hosted runner from a group configured in an enterprise. The runner is then returned to the default group.

\n

OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.

" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -20274,7 +20274,6 @@ } ], "previews": [], - "descriptionHTML": "

Adds custom labels to a self-hosted runner configured in an organization.

\n

Authenticated users must have admin access to the organization to use this endpoint.

\n

OAuth tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.

", "statusCodes": [ { "httpStatusCode": "200", @@ -20288,7 +20287,8 @@ "httpStatusCode": "422", "description": "

Validation failed, or the endpoint has been spammed.

" } - ] + ], + "descriptionHTML": "

Adds custom labels to a self-hosted runner configured in an organization.

\n

Authenticated users must have admin access to the organization to use this endpoint.

\n

OAuth tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.

" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -24827,13 +24827,13 @@ } ], "previews": [], - "descriptionHTML": "

Creates an organization variable that you can reference in a GitHub Actions workflow.

\n

Authenticated users must have collaborator access to a repository to create, update, or read variables.

\n

OAuth tokens and personal access tokens (classic) need theadmin:org scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the repo scope to use this endpoint.

", "statusCodes": [ { "httpStatusCode": "201", "description": "

Response when creating a variable

" } - ] + ], + "descriptionHTML": "

Creates an organization variable that you can reference in a GitHub Actions workflow.

\n

Authenticated users must have collaborator access to a repository to create, update, or read variables.

\n

OAuth tokens and personal access tokens (classic) need theadmin:org scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the repo scope to use this endpoint.

" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -51961,7 +51961,6 @@ } ], "previews": [], - "descriptionHTML": "

Note

\n

\nThis API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.

\n
", "statusCodes": [ { "httpStatusCode": "200", @@ -51983,7 +51982,8 @@ "httpStatusCode": "404", "description": "

Resource not found

" } - ] + ], + "descriptionHTML": "

Note

\n

\nThis API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.

\n
" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -92153,13 +92153,13 @@ } ], "previews": [], - "descriptionHTML": "

Gets the announcement banner currently set for the organization. Only returns the announcement banner set at the\norganization level. Organization members may also see an enterprise-level announcement banner. To get an\nannouncement banner displayed at the enterprise level, use the enterprise-level endpoint.

", "statusCodes": [ { "httpStatusCode": "200", "description": "

OK

" } - ] + ], + "descriptionHTML": "

Gets the announcement banner currently set for the organization. Only returns the announcement banner set at the\norganization level. Organization members may also see an enterprise-level announcement banner. To get an\nannouncement banner displayed at the enterprise level, use the enterprise-level endpoint.

" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -123888,7 +123888,6 @@ } ], "previews": [], - "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", "statusCodes": [ { "httpStatusCode": "200", @@ -123898,7 +123897,8 @@ "httpStatusCode": "404", "description": "

Resource not found

" } - ] + ], + "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -171665,13 +171665,13 @@ } ], "previews": [], - "descriptionHTML": "", "statusCodes": [ { "httpStatusCode": "200", "description": "

OK

" } - ] + ], + "descriptionHTML": "" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -212752,13 +212752,13 @@ } ], "previews": [], - "descriptionHTML": "

Note that this API call does not automatically initiate an LDAP sync. Rather, if a 201 is returned, the sync job is queued successfully, and is performed when the instance is ready.

", "statusCodes": [ { "httpStatusCode": "201", "description": "

Created

" } - ] + ], + "descriptionHTML": "

Note that this API call does not automatically initiate an LDAP sync. Rather, if a 201 is returned, the sync job is queued successfully, and is performed when the instance is ready.

" } ], "license": [ @@ -217113,13 +217113,13 @@ } ], "previews": [], - "descriptionHTML": "", "statusCodes": [ { "httpStatusCode": "200", "description": "

OK

" } - ] + ], + "descriptionHTML": "" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -217759,13 +217759,13 @@ } ], "previews": [], - "descriptionHTML": "", "statusCodes": [ { "httpStatusCode": "204", "description": "

No Content

" } - ] + ], + "descriptionHTML": "" } ], "repo-pre-receive-hooks": [ @@ -223951,13 +223951,13 @@ } ], "previews": [], - "descriptionHTML": "", "statusCodes": [ { "httpStatusCode": "204", "description": "

No Content

" } - ] + ], + "descriptionHTML": "" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -343079,7 +343079,6 @@ } ], "previews": [], - "descriptionHTML": "

Lists all organizations, in the order that they were created.

\n

Note

\n

\nPagination is powered exclusively by the since parameter. Use the Link header to get the URL for the next page of organizations.

\n
", "statusCodes": [ { "httpStatusCode": "200", @@ -343089,7 +343088,8 @@ "httpStatusCode": "304", "description": "

Not modified

" } - ] + ], + "descriptionHTML": "

Lists all organizations, in the order that they were created.

\n

Note

\n

\nPagination is powered exclusively by the since parameter. Use the Link header to get the URL for the next page of organizations.

\n
" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -344606,7 +344606,6 @@ } ], "previews": [], - "descriptionHTML": "

Deletes an organization and all its repositories.

\n

The organization login will be unavailable for 90 days after deletion.

\n

Please review the Terms of Service regarding account deletion before using this endpoint:

\n

https://docs.github.com/enterprise-server@3.15/site-policy/github-terms/github-terms-of-service

", "statusCodes": [ { "httpStatusCode": "202", @@ -344620,7 +344619,8 @@ "httpStatusCode": "404", "description": "

Resource not found

" } - ] + ], + "descriptionHTML": "

Deletes an organization and all its repositories.

\n

The organization login will be unavailable for 90 days after deletion.

\n

Please review the Terms of Service regarding account deletion before using this endpoint:

\n

https://docs.github.com/enterprise-server@3.15/site-policy/github-terms/github-terms-of-service

" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -350141,7 +350141,6 @@ } ], "previews": [], - "descriptionHTML": "

List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned.

", "statusCodes": [ { "httpStatusCode": "200", @@ -350151,7 +350150,8 @@ "httpStatusCode": "422", "description": "

Validation failed, or the endpoint has been spammed.

" } - ] + ], + "descriptionHTML": "

List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned.

" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -384688,7 +384688,6 @@ } ], "previews": [], - "descriptionHTML": "

Deletes a GitHub Enterprise Server Pages site. For more information, see \"About GitHub Pages.

\n

The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission.

\n

OAuth app tokens and personal access tokens (classic) need the repo scope to use this endpoint.

", "statusCodes": [ { "httpStatusCode": "204", @@ -384706,7 +384705,8 @@ "httpStatusCode": "422", "description": "

Validation failed, or the endpoint has been spammed.

" } - ] + ], + "descriptionHTML": "

Deletes a GitHub Enterprise Server Pages site. For more information, see \"About GitHub Pages.

\n

The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission.

\n

OAuth app tokens and personal access tokens (classic) need the repo scope to use this endpoint.

" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -390723,7 +390723,6 @@ } ], "previews": [], - "descriptionHTML": "

Warning

\n

\nClosing down notice: Projects (classic) is being deprecated in favor of the new Projects experience.\nSee the changelog for more information.

\n
", "statusCodes": [ { "httpStatusCode": "200", @@ -390741,7 +390740,8 @@ "httpStatusCode": "403", "description": "

Forbidden

" } - ] + ], + "descriptionHTML": "

Warning

\n

\nClosing down notice: Projects (classic) is being deprecated in favor of the new Projects experience.\nSee the changelog for more information.

\n
" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -443363,7 +443363,6 @@ } ], "previews": [], - "descriptionHTML": "

Users with push access to the repository can create a release.

\n

This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see \"Rate limits for the API\" and \"Best practices for using the REST API.\"

", "statusCodes": [ { "httpStatusCode": "201", @@ -443373,7 +443372,8 @@ "httpStatusCode": "422", "description": "

Validation failed, or the endpoint has been spammed.

" } - ] + ], + "descriptionHTML": "

Users with push access to the repository can create a release.

\n

This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see \"Rate limits for the API\" and \"Best practices for using the REST API.\"

" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -447522,13 +447522,13 @@ } ], "previews": [], - "descriptionHTML": "", "statusCodes": [ { "httpStatusCode": "204", "description": "

No Content

" } - ] + ], + "descriptionHTML": "" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -504761,7 +504761,6 @@ } ], "previews": [], - "descriptionHTML": "

Find commits via various criteria on the default branch (usually main). This method returns up to 100 results per page.

\n

When searching for commits, you can get text match metadata for the message field when you provide the text-match media type. For more details about how to receive highlighted search results, see Text match\nmetadata.

\n

For example, if you want to find commits related to CSS in the octocat/Spoon-Knife repository. Your query would look something like this:

\n

q=repo:octocat/Spoon-Knife+css

", "statusCodes": [ { "httpStatusCode": "200", @@ -504771,7 +504770,8 @@ "httpStatusCode": "304", "description": "

Not modified

" } - ] + ], + "descriptionHTML": "

Find commits via various criteria on the default branch (usually main). This method returns up to 100 results per page.

\n

When searching for commits, you can get text match metadata for the message field when you provide the text-match media type. For more details about how to receive highlighted search results, see Text match\nmetadata.

\n

For example, if you want to find commits related to CSS in the octocat/Spoon-Knife repository. Your query would look something like this:

\n

q=repo:octocat/Spoon-Knife+css

" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -534835,13 +534835,13 @@ } ], "previews": [], - "descriptionHTML": "

Warning

\n

\nEndpoint closing down notice: This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new Update a discussion comment endpoint.

\n
\n

Edits the body text of a discussion comment.

\n

OAuth app tokens and personal access tokens (classic) need the write:discussion scope to use this endpoint.

", "statusCodes": [ { "httpStatusCode": "200", "description": "

OK

" } - ] + ], + "descriptionHTML": "

Warning

\n

\nEndpoint closing down notice: This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new Update a discussion comment endpoint.

\n
\n

Edits the body text of a discussion comment.

\n

OAuth app tokens and personal access tokens (classic) need the write:discussion scope to use this endpoint.

" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -546024,7 +546024,6 @@ } ], "previews": [], - "descriptionHTML": "

Provides publicly available information about someone with a GitHub account.

\n

The email key in the following response is the publicly visible email address from your GitHub Enterprise Server profile page. When setting up your profile, you can select a primary email address to be public which provides an email entry for this endpoint. If you do not set a public email address for email, then it will have a value of null. You only see publicly visible email addresses when authenticated with GitHub Enterprise Server. For more information, see Authentication.

\n

The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see Emails API.

", "statusCodes": [ { "httpStatusCode": "200", @@ -546034,7 +546033,8 @@ "httpStatusCode": "404", "description": "

Resource not found

" } - ] + ], + "descriptionHTML": "

Provides publicly available information about someone with a GitHub account.

\n

The email key in the following response is the publicly visible email address from your GitHub Enterprise Server profile page. When setting up your profile, you can select a primary email address to be public which provides an email entry for this endpoint. If you do not set a public email address for email, then it will have a value of null. You only see publicly visible email addresses when authenticated with GitHub Enterprise Server. For more information, see Authentication.

\n

The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see Emails API.

" }, { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -549917,13 +549917,13 @@ } ], "previews": [], - "descriptionHTML": "

Lists the verified public SSH keys for a user. This is accessible by anyone.

", "statusCodes": [ { "httpStatusCode": "200", "description": "

OK

" } - ] + ], + "descriptionHTML": "

Lists the verified public SSH keys for a user. This is accessible by anyone.

" } ], "social-accounts": [ diff --git a/src/rest/lib/config.json b/src/rest/lib/config.json index d3c5a1fee903..09701ddaa650 100644 --- a/src/rest/lib/config.json +++ b/src/rest/lib/config.json @@ -44,5 +44,5 @@ ] } }, - "sha": "5efe9a47bbe583fdc512c811f92b779b0715b95c" + "sha": "23ea15fe816288eb00bb9c764c5c137fd16f4115" } \ No newline at end of file diff --git a/src/secret-scanning/data/public-docs.yml b/src/secret-scanning/data/public-docs.yml index 37213e5a1466..bc8e495b3e4f 100644 --- a/src/secret-scanning/data/public-docs.yml +++ b/src/secret-scanning/data/public-docs.yml @@ -543,7 +543,7 @@ isPublic: true isPrivateWithGhas: true hasPushProtection: true - hasValidityCheck: false + hasValidityCheck: '{% ifversion fpt or ghes %}false{% else %}true{% endif %}' base64Supported: false isduplicate: false - provider: Azure @@ -751,7 +751,7 @@ isPublic: true isPrivateWithGhas: true hasPushProtection: true - hasValidityCheck: false + hasValidityCheck: '{% ifversion fpt or ghes %}false{% else %}true{% endif %}' base64Supported: false isduplicate: true - provider: Azure @@ -1024,7 +1024,7 @@ isPublic: true isPrivateWithGhas: true hasPushProtection: true - hasValidityCheck: false + hasValidityCheck: '{% ifversion fpt or ghes %}false{% else %}true{% endif %}' base64Supported: false isduplicate: false - provider: Azure @@ -3696,7 +3696,7 @@ isPublic: true isPrivateWithGhas: true hasPushProtection: false - hasValidityCheck: false + hasValidityCheck: '{% ifversion fpt or ghes %}false{% else %}true{% endif %}' base64Supported: false isduplicate: false - provider: MongoDB diff --git a/src/secret-scanning/lib/config.json b/src/secret-scanning/lib/config.json index cc9085711684..1d5acb324f6d 100644 --- a/src/secret-scanning/lib/config.json +++ b/src/secret-scanning/lib/config.json @@ -1,5 +1,5 @@ { - "sha": "eccf6431f1e97d23ff7575fc7afabf9f7b27329f", - "blob-sha": "3f57c664f49dbf57e8c64c07e611cab51689c215", + "sha": "d9b6f5d1cc49b0244927746bb3cc3b0ee35a67f7", + "blob-sha": "f9097b9e8b93a9b46bbf0cc0ceb91d06cb137efb", "targetFilename": "code-security/secret-scanning/introduction/supported-secret-scanning-patterns" } \ No newline at end of file diff --git a/src/webhooks/lib/config.json b/src/webhooks/lib/config.json index 291ca67decf4..e7d3c035069e 100644 --- a/src/webhooks/lib/config.json +++ b/src/webhooks/lib/config.json @@ -1,3 +1,3 @@ { - "sha": "5efe9a47bbe583fdc512c811f92b779b0715b95c" + "sha": "23ea15fe816288eb00bb9c764c5c137fd16f4115" } \ No newline at end of file