diff --git a/content/actions/how-tos/manage-runners/larger-runners/use-larger-runners.md b/content/actions/how-tos/manage-runners/larger-runners/use-larger-runners.md index 43b2945db7a1..5ac2bc8b4d28 100644 --- a/content/actions/how-tos/manage-runners/larger-runners/use-larger-runners.md +++ b/content/actions/how-tos/manage-runners/larger-runners/use-larger-runners.md @@ -42,9 +42,6 @@ Use the labels in the table below to run your workflows on the corresponding mac {% data reusables.actions.larger-runners-table %} -> [!NOTE] -> For macOS {% data variables.actions.hosted_runner %}s, the `-latest` runner label uses the macOS 12 runner image. For macOS Xlarge, the `-latest` runner label uses the macOS 13 runner image - {% endmac %} {% ifversion repository-actions-runners %} diff --git a/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/about-the-backup-service-for-github-enterprise-server.md b/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/about-the-backup-service-for-github-enterprise-server.md index dce8c90d94f2..dc46a2c0aeb3 100644 --- a/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/about-the-backup-service-for-github-enterprise-server.md +++ b/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/about-the-backup-service-for-github-enterprise-server.md @@ -12,7 +12,9 @@ topics: - Infrastructure --- +{% ifversion ghes < 3.20 %} >[!NOTE] {% data variables.product.prodname_enterprise_backup_service %} is currently in {% data variables.release-phases.public_preview %} and subject to change. The service is available at no additional cost and will remain free. +{% endif %} ## About the {% data variables.product.prodname_enterprise_backup_service %} @@ -29,7 +31,9 @@ Compared to the legacy backup utilities, the {% data variables.product.prodname_ * Doesn’t require a separate host for backup software. * Stores backups on a dedicated storage volume directly accessible by your instance. +{% ifversion ghes < 3.20 %} >[!NOTE] {% data variables.product.prodname_enterprise_backup_service %} is currently only supported on standalone instances and high availability primary nodes. Cluster configurations and replica nodes are not yet supported. +{% endif %} ## How does the backup service differ from a High Availability replica? @@ -47,8 +51,7 @@ The backup service is a disaster recovery solution. It captures full, timestampe ## Further reading -* [AUTOTITLE](/admin/backing-up-and-restoring-your-instance/configuring-backups-on-your-instance) -* [About {% data variables.product.prodname_enterprise_backup_utilities %}](https://github.com/github/backup-utils#readme) -* [AUTOTITLE](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh) -* [AUTOTITLE](/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode) -* [AUTOTITLE](/admin/github-actions/advanced-configuration-and-troubleshooting/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled) +* [AUTOTITLE](/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/understanding-the-backup-service) +* [AUTOTITLE](/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/configuring-the-backup-service) +* [AUTOTITLE](/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/restoring-from-a-backup) +* [AUTOTITLE](/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/restoring-with-github-actions-enabled) diff --git a/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/backup-from-replica-in-high-availability.md b/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/backup-from-replica-in-high-availability.md new file mode 100644 index 000000000000..39ac8f2eba56 --- /dev/null +++ b/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/backup-from-replica-in-high-availability.md @@ -0,0 +1,30 @@ +--- +title: Backup from replica in high availability +shortTitle: Backup from replica +intro: 'Enable backup from a high availability replica node.' +versions: + ghes: '> 3.19' +type: how_to +topics: + - Backups +--- + +## Configuring backups from a replica node + +For high availability, you can designate a replica node as your backup server. To minimize latency, {% data variables.product.github %} recommends picking a replica node in the same region or datacenter as your primary node. + +> [!IMPORTANT] +> Backups from cache replica nodes or active geo replica nodes are not supported. + +To configure your backup server, run the following commands, replacing `HOSTNAME` with the hostname of the node: + +```shell +ghe-config cluster.HOSTNAME.backup-server true + +ghe-config-apply +``` + +You can now run `ghe-backup` directly on your replica node. + +> [!WARNING] +> Due to the latency between primary and replica nodes, you may lose data when backing up from a replica node. diff --git a/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/backup-in-clustering-mode.md b/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/backup-in-clustering-mode.md new file mode 100644 index 000000000000..30343dc76aca --- /dev/null +++ b/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/backup-in-clustering-mode.md @@ -0,0 +1,21 @@ +--- +title: Backup in clustering mode +shortTitle: Backup in clustering +intro: 'Enable backup from a node in cluster.' +versions: + ghes: '> 3.19' +type: how_to +topics: + - Backups +--- + +## Configuring backups from a cluster node + +For clustering, you can designate a node as your backup server. To minimize latency, {% data variables.product.github %} recommends picking a data node (for example, a `mysql-server` node or a `git-server` node) instead of a frontend node. + +> [!IMPORTANT] +> Only one node can be specified as a `backup-server` node. + +1. To configure your backup server, set up a backup disk on one of the cluster nodes of your choice. See [AUTOTITLE](/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/configuring-the-backup-service). + +1. After `ghe-storage-init-backup` is executed, the `backup-server` role will be set on this cluster node. You can now run `ghe-backup` directly on this node, or use the management console to schedule backups. diff --git a/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/configuring-remote-archives-for-backups.md b/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/configuring-remote-archives-for-backups.md new file mode 100644 index 000000000000..bd1a35d0eced --- /dev/null +++ b/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/configuring-remote-archives-for-backups.md @@ -0,0 +1,41 @@ +--- +title: Configuring remote archives for backups +shortTitle: Configure remote archives +intro: 'Enable a remote archive for backups through SSH.' +versions: + ghes: '> 3.19' +type: how_to +topics: + - Backups +--- + +If you are running {% data variables.product.prodname_ghe_server %} on a cloud platform or virtualization platform that supports disk snapshots, we recommend that you use snapshots to archive your backup disk, and recreate a new backup disk for testing, restoring, or disaster recovery purposes. However, if your infrastructure does not support disk snapshots or similar solutions, you can setup a {% data variables.product.prodname_ghe_server %} backup archive on a remote {% data variables.product.prodname_ghe_server %} appliance for data replication and restoration purposes. + +## Set up a remote archive destination + +Remote archives are required to be saved on a backup disk of a {% data variables.product.prodname_ghe_server %} appliance, which is used as a staging or testing {% data variables.product.prodname_ghe_server %} appliance. Follow these steps to configure remote backup archives. + +1. Set up a backup disk on a remote {% data variables.product.prodname_ghe_server %} appliance. See [AUTOTITLE](/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/configuring-the-backup-service). +1. From the production appliance, run the following command to initiate configuration and display the SSH public key that needs to be added to the remote {% data variables.product.prodname_ghe_server %} appliance: + + ```bash + ghe-backup-remote-add + ``` + + This command will print a public SSH key that you need to add to the remote {% data variables.product.prodname_ghe_server %} environment through the management console. +1. After the SSH key has been added to the remote {% data variables.product.prodname_ghe_server %} appliance, run the same command again to complete the configuration: + + ```bash + ghe-backup-remote-add + ``` + + It will display "Done: Configured remote backup archive destination host to ." A {% data variables.product.prodname_ghe_server %} configuration `ghe-config backup.remote-archive-destination-host` will be set. +1. After that, any successful invocation of `ghe-backup` will sync the latest backup to this remote archive destination in the background, displaying a message like "Uploading backup data to remote host in background...". + +### Manually sync a snapshot + +To push the current snapshot immediately without taking a new backup, you can manually run: `/usr/local/share/github-backup/ghe-backup-remote-archive`. + +### Limitations + +{% data variables.product.prodname_ghe_server %} remote backup archives are archived via SSH and are limited by your network and I/O. We recommend using disk snapshots whenever your infrastructure allows, instead of remote archives. diff --git a/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/configuring-the-backup-service.md b/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/configuring-the-backup-service.md index e3c2e09b6032..f19b46a341d7 100644 --- a/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/configuring-the-backup-service.md +++ b/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/configuring-the-backup-service.md @@ -87,6 +87,35 @@ If you're using a dedicated block device as your backup target, you need to init From {% data variables.product.prodname_ghe_server %} 3.17.4 onward, the script is installed in PATH so you can run it directly using: `ghe-storage-init-backup /dev/YOUR_DEVICE_NAME`. {% endif %} + +#### Detach a backup disk + +> [!WARNING] +> Before detaching a backup disk, ensure that no backups or restores are currently in progress. Detaching a disk while it is in use can result in data loss or service interruption. + +In case you need to detach backup disk from {% data variables.product.prodname_ghe_server %}, please use following steps + +1. List block devices and unmount `/data/backup`. + + ```bash + sudo lsblk + sudo umount /data/backup + ``` + +1. List logical volumes and deactivate logical volume. + + ```bash + sudo lvs + sudo lvchange -an / + ``` + +1. Detach disk using console or CLI provided by cloud provider or hypervisor. +1. Remove mount point. + + ```bash + sudo rmdir /data/backup + ``` + #### Reusing a previously initialized disk If the device was already initialized using `ghe-storage-init-backup`, you can reuse it without reformatting: @@ -110,7 +139,7 @@ If the device was already initialized using `ghe-storage-init-backup`, you can r ### Configuring backup settings -After the backup target is mounted, the Backup Service page will become available in the {% data variables.enterprise.management_console %}. {% ifversion ghes > 3.19 %} If your instance is part of a clustered environment, the system will automatically detect the node that was initialized with `ghe-storage-init-backup` and treat it as the backup server. {% endif %} +After the backup target is mounted, the Backup Service page will become available in the {% data variables.enterprise.management_console %} in the "Backup" section. {% ifversion ghes > 3.19 %} If your instance is part of a clustered environment, the system will automatically detect the node that was initialized with `ghe-storage-init-backup` and treat it as the backup server. {% endif %} >[!NOTE] The settings page won’t appear until the backup storage is mounted at `/data/backup` by completing the initialization or mount steps above. @@ -125,36 +154,30 @@ If you're migrating from {% data variables.product.prodname_enterprise_backup_ut Use the `--dry-run` flag to preview changes without applying them. -#### Scheduling automated backups - -Once the service is configured, you can define a backup schedule. - -1. In the {% data variables.enterprise.management_console %}, open the "Backups" tab from the top menu. -1. In the "Backup Schedule" section, choose a predefined schedule (e.g., Daily) or enter a custom cron expression. -1. Click **Save** to apply the changes. - -The first run will be a full backup. Future runs will be incremental. If a new backup attempt starts while a previous one is still running, it may be skipped or fail. In that case, adjust the schedule to avoid overlap. - {% ifversion ghes > 3.19 %} +#### Take a backup -### Configuring backups from a replica node +Once the service is configured, you can take a backup manually using the following steps: -For high availability, you can designate a replica node as your backup server. To minimize latency, {% data variables.product.github %} recommends picking a replica node in the same region or datacenter as your primary node. - -> [!IMPORTANT] -> Backups from cache replica nodes or active geo replica nodes are not supported. - -To configure your backup server, run the following commands, replacing `HOSTNAME` with the hostname of the node: +1. In the {% data variables.enterprise.management_console %}, open the "Backups" tab from the top menu. +1. Click **Backup Now**. -```shell -ghe-config cluster.HOSTNAME.backup-server true +A {% data variables.product.prodname_ghe_server %} backup will be taken, and displayed in a list. -ghe-config-apply -``` +{% endif %} -You can now run `ghe-backup` directly on your replica node. +#### Scheduling automated backups -> [!WARNING] -> Due to the latency between primary and replica nodes, you may lose data when backing up from a replica node. +Once the service is configured, you can define a backup schedule. +{% ifversion ghes > 3.19 %} +1. In the {% data variables.enterprise.management_console %}, open the "Settings" tab from the top menu. +1. In the "Backup" section, choose a predefined schedule (e.g., Daily) or enter a custom cron expression. +1. Click **Save settings** to apply the changes. +{% else %} +1. In the {% data variables.enterprise.management_console %}, open the "Backups" tab from the top menu. +1. In the "Backup Schedule" section, choose a predefined schedule (e.g., Daily) or enter a custom cron expression. +1. Click **Save** to apply the changes. {% endif %} + +The first run will be a full backup. Future runs will be incremental. If a new backup attempt starts while a previous one is still running, it may be skipped or fail. In that case, adjust the schedule to avoid overlap. \ No newline at end of file diff --git a/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/index.md b/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/index.md index dd02deec71bc..57a9678ad926 100644 --- a/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/index.md +++ b/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/index.md @@ -12,6 +12,9 @@ children: - /configuring-the-backup-service - /creating-and-monitoring-backups - /restoring-from-a-backup + - /configuring-remote-archives-for-backups + - /backup-from-replica-in-high-availability + - /backup-in-clustering-mode - /restoring-with-github-actions-enabled - /backup-service-settings-reference - /understanding-the-snapshot-file-structure diff --git a/content/admin/managing-your-enterprise-account/creating-an-enterprise-account.md b/content/admin/managing-your-enterprise-account/creating-an-enterprise-account.md index d215f5a98bf6..e0639526acef 100644 --- a/content/admin/managing-your-enterprise-account/creating-an-enterprise-account.md +++ b/content/admin/managing-your-enterprise-account/creating-an-enterprise-account.md @@ -15,14 +15,13 @@ redirect_from: - /admin/overview/creating-an-enterprise-account --- - + - - + {% data reusables.enterprise.single-organizations-enterprise-migration %} - + ## When should I create an enterprise account? diff --git a/content/billing/concepts/budgets-and-alerts.md b/content/billing/concepts/budgets-and-alerts.md index 16280c6cffd1..d2e091dfc793 100644 --- a/content/billing/concepts/budgets-and-alerts.md +++ b/content/billing/concepts/budgets-and-alerts.md @@ -15,8 +15,6 @@ Budgets and alerts allow you to track spending on metered products for your ente By setting a monthly budget, you can monitor your spending and receive notifications by email when your spending exceeds certain preset percentages of your budget threshold. This can help you stay within your budget and avoid overspending. -{% data reusables.billing.migrated-budgets %} - ## Stopping usage For license-based products such as {% data variables.product.prodname_copilot %}, {% data variables.product.prodname_AS %}, {% data variables.product.prodname_team %}, and {% data variables.product.prodname_enterprise %}, setting a budget does not prevent usage over the budget amount but does provide alerts. diff --git a/content/billing/concepts/product-billing/git-lfs.md b/content/billing/concepts/product-billing/git-lfs.md index dbc952206a88..5aa9e6435801 100644 --- a/content/billing/concepts/product-billing/git-lfs.md +++ b/content/billing/concepts/product-billing/git-lfs.md @@ -125,8 +125,6 @@ In this example, you would pay for 1.5 GiB of additional storage for the month o {% data reusables.billing.default-over-quota-behavior %} -{% data reusables.billing.migrated-budgets %} - ## Further reading * [AUTOTITLE](/repositories/working-with-files/managing-large-files/about-git-large-file-storage) diff --git a/content/billing/concepts/product-billing/github-actions.md b/content/billing/concepts/product-billing/github-actions.md index b32451888bf0..a62531c6da43 100644 --- a/content/billing/concepts/product-billing/github-actions.md +++ b/content/billing/concepts/product-billing/github-actions.md @@ -165,8 +165,6 @@ For cached storage, billing charts and reports show only the cost of usage beyon {% data reusables.billing.default-over-quota-behavior %} -{% data reusables.billing.migrated-budgets %} - ## Further reading * [AUTOTITLE](/actions/get-started/understand-github-actions) diff --git a/content/billing/concepts/product-billing/github-codespaces.md b/content/billing/concepts/product-billing/github-codespaces.md index 4e419ece01b0..bdfa2a1f32eb 100644 --- a/content/billing/concepts/product-billing/github-codespaces.md +++ b/content/billing/concepts/product-billing/github-codespaces.md @@ -136,8 +136,6 @@ A {% data variables.enterprise.prodname_managed_user %} cannot be the billable o {% data reusables.billing.default-over-quota-behavior %} -{% data reusables.billing.migrated-budgets %} - {% data reusables.codespaces.exporting-changes %} ## Further reading diff --git a/content/billing/concepts/product-billing/github-copilot-premium-requests.md b/content/billing/concepts/product-billing/github-copilot-premium-requests.md index a44cde87b1b9..560d710aa89f 100644 --- a/content/billing/concepts/product-billing/github-copilot-premium-requests.md +++ b/content/billing/concepts/product-billing/github-copilot-premium-requests.md @@ -111,8 +111,6 @@ You can set budgets at the organization, enterprise, or cost center level. If yo For detailed setup instructions, see [AUTOTITLE](/billing/tutorials/set-up-budgets). -{% data reusables.copilot.zero-budget-changes-link %} - ## Monitoring usage * Track your monthly usage in your IDE, in {% data variables.product.prodname_copilot_short %} settings on {% data variables.product.prodname_dotcom %}, or by downloading a usage report. diff --git a/content/billing/concepts/product-billing/github-models.md b/content/billing/concepts/product-billing/github-models.md index 2077ebc2f608..5f6ed2ca8892 100644 --- a/content/billing/concepts/product-billing/github-models.md +++ b/content/billing/concepts/product-billing/github-models.md @@ -112,8 +112,6 @@ Enterprises and organizations can opt in to paid usage to access expanded model Enterprises, organizations and personal accounts may have default budgets to limit spending. Check the budgets for your account to ensure they are appropriate for your usage needs. -{% data reusables.billing.migrated-budgets %} - For more information, see [AUTOTITLE](/billing/managing-your-billing/using-budgets-control-spending). ## Further reading diff --git a/content/billing/concepts/product-billing/github-packages.md b/content/billing/concepts/product-billing/github-packages.md index bc8a39e616ca..5d9c3b422797 100644 --- a/content/billing/concepts/product-billing/github-packages.md +++ b/content/billing/concepts/product-billing/github-packages.md @@ -120,8 +120,6 @@ The projected 1.6 GB of storage usage for the month would not exceed your 2 GB l {% data reusables.billing.default-over-quota-behavior %} -{% data reusables.billing.migrated-budgets %} - ## Further reading * [AUTOTITLE](/packages/learn-github-packages/introduction-to-github-packages) diff --git a/content/billing/get-started/introduction-to-billing.md b/content/billing/get-started/introduction-to-billing.md index d36176aabd46..c2aa324731ef 100644 --- a/content/billing/get-started/introduction-to-billing.md +++ b/content/billing/get-started/introduction-to-billing.md @@ -9,6 +9,7 @@ redirect_from: - /billing/using-the-new-billing-platform/about-the-new-billing-platform - /billing/using-the-new-billing-platform/getting-started-with-the-new-billing-platform - /billing/managing-your-billing/about-the-new-billing-platform + - /billing/reference/previous-billing-platform-endpoints topics: - Billing - Personal account diff --git a/content/billing/reference/index.md b/content/billing/reference/index.md index 37858423da95..8dbb2fcd2f78 100644 --- a/content/billing/reference/index.md +++ b/content/billing/reference/index.md @@ -23,6 +23,5 @@ children: - /product-usage-included - /roles-for-visual-studio - /supported-payment-methods - - /previous-billing-platform-endpoints contentType: reference --- diff --git a/content/billing/reference/previous-billing-platform-endpoints.md b/content/billing/reference/previous-billing-platform-endpoints.md deleted file mode 100644 index 39109a86dcd7..000000000000 --- a/content/billing/reference/previous-billing-platform-endpoints.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: Migrating from the endpoints used for the previous billing platform -shortTitle: Previous billing platform endpoints -intro: 'If your organization previously used the billing platform that predated metered billing, this article explains how to migrate existing usage reporting to the current billing usage endpoints.' -versions: - fpt: '*' - ghec: '*' -topics: - - Enterprise - - Billing - - REST -permissions: 'Enterprise owners, organization owners, and billing managers' -product: '{% data reusables.billing.enhanced-billing-platform-product %}' -contentType: reference ---- - - - - -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. - -You will need to upgrade all calls using the previous `/ACCOUNT-TYPE/NAME/settings/billing/PRODUCT` REST API endpoints to use the equivalent `/ACCOUNT-TYPE/NAME/settings/billing/usage` endpoint. - -## 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. - -## Calculating {% data variables.product.prodname_actions %} information from the new response data - -Example of the previous response - -```json -{"total_minutes_used": 305, "total_paid_minutes_used": 0, "included_minutes": 3000, "minutes_used_breakdown": { "UBUNTU": 205, "MACOS": 10, "WINDOWS": 90 } } -``` - -Example of the new response - -```json -{ "usageItems": [ { "date": "2023-08-01", "product": "Actions", "sku": "Actions Linux", "quantity": 100, "unitType": "minutes", "pricePerUnit": 0.008, "grossAmount": 0.8, "discountAmount": 0, "netAmount": 0.8, "organizationName": "GitHub", "repositoryName": "github/example"} ] } -``` - -To get the same values from the new response data: - -{% rowheaders %} - -| Previous property | Calculate from new API response | -|------ |----------- | -| `total_minutes_used` |
  1. Filter results by `"product": "Actions"` and `"unitType": "minutes"`
  2. Sum `quantity`
| -| `total_paid_minutes_used`| This is now represented as a $ amount via `netAmount`.
  1. Filter results by `"product": "Actions"` and `"unitType": "minutes"`
  2. Sum `netAmount`
| -| `included_minutes` | This is now represented as a $ amount via `discountAmount`.
  1. Filter results by `"product": "Actions"` and `"unitType": "minutes"`
  2. Sum `discountAmount`
| -| `minutes_used_breakdown` |
  1. Filter results by `"product": "Actions"` and `"unitType": "minutes"`
  2. Sum `quantity` grouped by `sku`
| - -{% endrowheaders %} - -## Calculating {% data variables.product.prodname_registry %} information from the new response data - -Example of the previous response - -```json -{ "total_gigabytes_bandwidth_used": 50, "total_paid_gigabytes_bandwidth_used": 40, "included_gigabytes_bandwidth": 10 } -``` - -Example of the new response - -```json -{ "usageItems": [ { "date": "2023-08-01", "product": "Packages", "sku": "Packages data transfer", "quantity": 100, "unitType": "gigabytes", "pricePerUnit": 0.008, "grossAmount": 0.8, "discountAmount": 0, "netAmount": 0.8, "organizationName": "GitHub", "repositoryName": "github/example" } ] } -``` - -{% rowheaders %} - -| Previous property | Calculate from new API response | -|------ |----------- | -| `total_gigabytes_bandwidth_used` |
  1. Filter results by `"product": "Packages"` and `"unitType": "gigabytes"`
  2. Sum `quantity`
| -| `total_paid_gigabytes_bandwidth_used`| This is now represented as a $ amount via `netAmount`.
  1. Filter results by `"product": "Packages"` and `"unitType": "gigabytes"`
  2. Sum `netAmount`
| -| `included_gigabytes_bandwidth` | This is now represented as a $ amount via `discountAmount`.
  1. Filter results by `"product": "Packages"` and `"unitType": "gigabytes"`
  2. Sum `discountAmount`
| - -{% endrowheaders %} - -## Calculating shared storage information from the new response data - -Example of the previous response - -```json -{ "days_left_in_billing_cycle": 20, "estimated_paid_storage_for_month": 15, "estimated_storage_for_month": 40 } -``` - -Example of the new response - -```json -{ "usageItems": [ { "date": "2023-08-01", "product": "Packages", "sku": "Packages storage", "quantity": 100, "unitType": "GigabyteHours", "pricePerUnit": 0.008, "grossAmount": 0.8, "discountAmount": 0, "netAmount": 0.8, "organizationName": "GitHub", "repositoryName": "github/example" } ] } -``` - -{% rowheaders %} - -| Previous property | Calculate from new API response | -|------ |----------- | -| `days_left_in_billing_cycle` | Not available. This information can be inferred by subtracting the current day of the month from the number of days in the current month. | -| `estimated_paid_storage_for_month`| This is now represented as a $ amount via `netAmount`.

Prerequisite: pass the `month` and `year` query parameters.

For Actions storage
  1. Filter results by `"product": "Actions"` and `"unitType": "GigabyteHours"`
  2. Sum `netAmount`
For Packages storage
  1. Filter results by `"product": "Packages"` and `"unitType": "GigabyteHours"`
  2. Sum `netAmount`
| -| `estimated_storage_for_month` | Prerequisite: pass the `month` and `year` query parameters.

For Actions storage
  1. Filter results by `"product": "Actions"` and `"unitType": "GigabyteHours"`
  2. Sum `quantity`
For Packages storage
  1. Filter results by `"product": "Packages"` and `"unitType": "GigabyteHours"`
  2. Sum `quantity`
| - -{% endrowheaders %} - - diff --git a/content/copilot/concepts/billing/copilot-requests.md b/content/copilot/concepts/billing/copilot-requests.md index d4fc32b750f9..251d6a28a1b0 100644 --- a/content/copilot/concepts/billing/copilot-requests.md +++ b/content/copilot/concepts/billing/copilot-requests.md @@ -81,8 +81,6 @@ If you need more premium requests beyond your monthly allowance: * For an individual subscription, set a budget for additional premium requests or upgrade to a higher plan. See [AUTOTITLE](/billing/managing-your-billing/using-budgets-control-spending). * If you're an enterprise or organization owner, ensure that the "Premium request paid usage" policy is enabled and that extra spending is not prevented by a budget. See [AUTOTITLE](/copilot/how-tos/premium-requests/manage-for-enterprise). -{% data reusables.copilot.zero-budget-changes-link %} - ## Model multipliers The available models vary depending on your {% data variables.product.prodname_copilot_short %} plan. See [AUTOTITLE](/copilot/about-github-copilot/plans-for-github-copilot#models). 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 dc9f7527ca4f..eb920663b303 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 @@ -43,8 +43,6 @@ This report includes all premium request usage by user, both within and beyond t Your organization or enterprise's policies and budgets determine whether users can use premium requests over their included allowance. See [AUTOTITLE](/copilot/how-tos/premium-requests/manage-for-enterprise). -{% data reusables.copilot.zero-budget-changes-link %} - ## Mapping spending to groups of users You can create cost centers to map spending to individual business units or groups of users. Cost centers allow you to track costs tied to different initiatives and charge the costs to specific areas of your business. 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 1109a2228f0b..616802ff7797 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 @@ -31,8 +31,6 @@ The **Premium request paid usage policy** must be enabled for any additional bil You can increase the allowance for users by ensuring the policy is enabled, editing your budgets, or upgrading users to {% data variables.copilot.copilot_enterprise_short %}. -{% data reusables.copilot.zero-budget-changes %} - ## 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 [AUTOTITLE](/billing/how-tos/products/view-productlicense-use). 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 54e6b0f931c8..dad62cb3e58a 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 @@ -87,8 +87,6 @@ You can use the following strategies to maximize the value of your premium reque * **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 If you have {% data variables.product.prodname_copilot_short %} licenses from multiple standalone organizations or enterprises, you must define which entity is charged for your use of premium requests. Until you define a billing entity, all premium requests you make will be rejected. diff --git a/content/copilot/reference/custom-agents-configuration.md b/content/copilot/reference/custom-agents-configuration.md index c91b0d809360..fd7df66bcc12 100644 --- a/content/copilot/reference/custom-agents-configuration.md +++ b/content/copilot/reference/custom-agents-configuration.md @@ -17,27 +17,30 @@ This reference article provides detailed configuration information for {% data v ## YAML frontmatter properties -The following table outlines the properties that are supported for {% data variables.copilot.agent_profiles %} on {% data variables.product.prodname_dotcom_the_website %} and in the {% data variables.copilot.copilot_cli_short %}, as well as in IDEs. The configuration file's name (minus `.md` or `.agent.md`) is used for deduplication between levels so that the lowest level configuration takes precedence. +The following table outlines the properties that you can configure for {% data variables.copilot.agent_profiles %} in {% data variables.product.prodname_dotcom_the_website %}, the {% data variables.copilot.copilot_cli_short %}, and supported IDEs (unless otherwise noted). Any environment-specific behavior is noted in the property description. The configuration file's name (minus `.md` or `.agent.md`) is used for deduplication between levels so that the lowest level configuration takes precedence. {% rowheaders %} -| Property | Type | Purpose | {% data variables.product.prodname_vscode_shortname %}, JetBrains IDEs, Eclipse, and Xcode | -| ------------- | ----------------------- | --- | ------------------ | -| `name` | string | Display name for the {% data variables.copilot.copilot_custom_agent_short %}. Optional. | {% octicon "check" aria-label="Supported" %} | -| `description` | **Required** string | Description of the {% data variables.copilot.copilot_custom_agent_short %}'s purpose and capabilities | {% octicon "check" aria-label="Supported" %} | -| `target` | string | Target environment or context for the {% data variables.copilot.copilot_custom_agent_short %} (`vscode` or `github-copilot`). If unset, defaults to both environments. | {% octicon "check" aria-label="Supported" %} | -| `tools` | list of strings, string | List of tool names the {% data variables.copilot.copilot_custom_agent_short %} can use. Supports both a comma separated string and yaml string array. If unset, defaults to all tools. See [Tools](#tools). | {% octicon "check" aria-label="Supported" %} | -| `disable-model-invocation` | boolean | Disables {% data variables.copilot.copilot_coding_agent %} from automatically using this {% data variables.copilot.copilot_custom_agent_short %} based on task context. When `true`, the agent must be manually selected. Setting `disable-model-invocation: true` is equivalent to `infer: false`. If both are set, `disable-model-invocation` takes precedence. If unset, defaults to `false`. | {% octicon "check" aria-label="Supported" %} | -| `infer` | boolean | **{% data variables.release-phases.closing_down_caps %}**. Use `disable-model-invocation` instead. Enables {% data variables.copilot.copilot_coding_agent %} to automatically use this {% data variables.copilot.copilot_custom_agent_short %} based on task context. When `false`, the agent must be manually selected. If unset, defaults to `true`. | {% octicon "check" aria-label="Supported" %} | -| `mcp-servers` | object | Additional MCP servers and tools that should be used by the {% data variables.copilot.copilot_custom_agent_short %}. | {% octicon "x" aria-label="Not supported" %} | -| `metadata` | object consisting of a name and value pair, both strings | Allows annotation of the agent with useful data | {% octicon "x" aria-label="Not supported" %} | +| Property | Type | Purpose | +| ------------- | ----------------------- | --- | +| `name` | string | Display name for the {% data variables.copilot.copilot_custom_agent_short %}. Optional. | +| `description` | **Required** string | Description of the {% data variables.copilot.copilot_custom_agent_short %}'s purpose and capabilities | +| `target` | string | Target environment or context for the {% data variables.copilot.copilot_custom_agent_short %} (`vscode` or `github-copilot`). If unset, defaults to both environments. | +| `tools` | list of strings, string | List of tool names the {% data variables.copilot.copilot_custom_agent_short %} can use. Supports both a comma separated string and yaml string array. If unset, defaults to all tools. See [Tools](#tools). | +| `disable-model-invocation` | boolean | Disables {% data variables.copilot.copilot_coding_agent %} from automatically using this {% data variables.copilot.copilot_custom_agent_short %} based on task context. When `true`, the agent must be manually selected. Setting `disable-model-invocation: true` is equivalent to `infer: false`. If both are set, `disable-model-invocation` takes precedence. If unset, defaults to `false`. | +| `user-invocable` | boolean | Controls whether this {% data variables.copilot.copilot_custom_agent_short %} can be selected by a user. When `false`, the agent cannot be manually selected and can only be accessed programmatically. If unset, defaults to `true`. | +| `infer` | boolean | **{% data variables.release-phases.retired_caps %}**. Use `disable-model-invocation` and `user-invocable` instead. Enables {% data variables.copilot.copilot_coding_agent %} to automatically use this {% data variables.copilot.copilot_custom_agent_short %} based on task context. When `false`, the agent must be manually selected. If unset, defaults to `true`. | +| `mcp-servers` | object | Additional MCP servers and tools that should be used by the {% data variables.copilot.copilot_custom_agent_short %}. **Not used in {% data variables.product.prodname_vscode_shortname %} and other IDE {% data variables.copilot.custom_agents_short %}.** | +| `metadata` | object consisting of a name and value pair, both strings | Allows annotation of the agent with useful data. **Not used in {% data variables.product.prodname_vscode_shortname %} and other IDE {% data variables.copilot.custom_agents_short %}.** | {% endrowheaders %} Define the agent's behavior, expertise, and instructions in the Markdown content below the YAML frontmatter. The prompt can be a maximum of 30,000 characters. > [!NOTE] -> The `model`, `argument-hint`, and `handoffs` properties from {% data variables.product.prodname_vscode_shortname %} and other IDE {% data variables.copilot.custom_agents_short %} are currently not supported for {% data variables.copilot.copilot_coding_agent %} on {% data variables.product.prodname_dotcom_the_website %}. They are ignored to ensure compatibility. For more information on {% data variables.copilot.copilot_custom_agent_short %} file structure in {% data variables.product.prodname_vscode_shortname %}, see [{% data variables.copilot.custom_agents_caps_short %} in {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/docs/copilot/customization/custom-agents#_custom-agent-file-structure) in the {% data variables.product.prodname_vscode_shortname %} documentation. +> +> * The `model`, `argument-hint`, and `handoffs` properties from {% data variables.product.prodname_vscode_shortname %} and other IDE {% data variables.copilot.custom_agents_short %} are currently not supported for {% data variables.copilot.copilot_coding_agent %} on {% data variables.product.prodname_dotcom_the_website %}. They are ignored to ensure compatibility. +> * For more information on {% data variables.copilot.copilot_custom_agent_short %} file structure in {% data variables.product.prodname_vscode_shortname %}, see [{% data variables.copilot.custom_agents_caps_short %} in {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/docs/copilot/customization/custom-agents#_custom-agent-file-structure) in the {% data variables.product.prodname_vscode_shortname %} documentation. ## Tools diff --git a/content/organizations/collaborating-with-groups-in-organizations/about-organizations.md b/content/organizations/collaborating-with-groups-in-organizations/about-organizations.md index 69bae1358b85..ec6f23b0abf8 100644 --- a/content/organizations/collaborating-with-groups-in-organizations/about-organizations.md +++ b/content/organizations/collaborating-with-groups-in-organizations/about-organizations.md @@ -38,14 +38,15 @@ To learn how to use organizations most effectively, see [AUTOTITLE](/organizatio ## Organizations and enterprise accounts - + - + {% ifversion ghec %} > [!NOTE] {% data variables.product.prodname_ghe_cloud %} customers who use a single organization are being automatically upgraded to an enterprise account at no additional cost. For details, see [AUTOTITLE](/admin/managing-your-enterprise-account/creating-an-enterprise-account#what-will-happen-after-i-upgrade-my-organization). {% endif %} - + + {% ifversion fpt %} Enterprise accounts are a feature of {% data variables.product.prodname_ghe_cloud %} that allow owners to centrally manage policy and billing for multiple organizations. For more information, see [the {% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/organizations/collaborating-with-groups-in-organizations/about-organizations). diff --git a/data/reusables/actions/larger-runners-table.md b/data/reusables/actions/larger-runners-table.md index ae2c35d3a70d..c8aed1b1af9a 100644 --- a/data/reusables/actions/larger-runners-table.md +++ b/data/reusables/actions/larger-runners-table.md @@ -1,4 +1,4 @@ | Runner Size | Architecture| Processor (CPU)| Memory (RAM) | Storage (SSD) | Workflow label | | ------------| ------------| -------------- | ------------- | ------------- |--------------------------------------------------------------------------------------------------------------------------------------------------| -| Large | Intel | 12 | 30 GB | 14 GB | macos-latest-large, macos-14-large, macos-15-large (latest), macos-26-large ({% data variables.release-phases.public_preview %}) | -| XLarge | arm64 (M2) | 5 (+ 8 GPU hardware acceleration) | 14 GB | 14 GB | macos-latest-xlarge, macos-14-xlarge, macos-15-xlarge (latest), macos-26-xlarge ({% data variables.release-phases.public_preview %}) | +| Large | Intel | 12 | 30 GB | 14 GB | macos-latest-large, macos-14-large, macos-15-large (latest), macos-26-large | +| XLarge | arm64 (M2) | 5 (+ 8 GPU hardware acceleration) | 14 GB | 14 GB | macos-latest-xlarge, macos-14-xlarge, macos-15-xlarge (latest), macos-26-xlarge | diff --git a/data/reusables/actions/supported-github-runners.md b/data/reusables/actions/supported-github-runners.md index 7f4808a693e1..8fbcbf9b3de3 100644 --- a/data/reusables/actions/supported-github-runners.md +++ b/data/reusables/actions/supported-github-runners.md @@ -68,7 +68,8 @@ For public repositories, jobs using the workflow labels shown in the table below 14 GB Intel - macos-15-intel + macos-15-intel, + macos-26-intel @@ -81,7 +82,7 @@ For public repositories, jobs using the workflow labels shown in the table below macos-latest, macos-14, macos-15, - macos-26 ({% data variables.release-phases.public_preview %}), + macos-26 @@ -157,7 +158,8 @@ For {% ifversion ghec %}internal and{% endif %} private repositories, jobs using 14 GB Intel - macos-15-intel + macos-15-intel, + macos-26-intel @@ -170,7 +172,7 @@ For {% ifversion ghec %}internal and{% endif %} private repositories, jobs using macos-latest, macos-14, macos-15, - macos-26 ({% data variables.release-phases.public_preview %}) + macos-26 diff --git a/data/reusables/billing/migrated-budgets.md b/data/reusables/billing/migrated-budgets.md index 1248985af1bf..4207f9ddc88e 100644 --- a/data/reusables/billing/migrated-budgets.md +++ b/data/reusables/billing/migrated-budgets.md @@ -1,6 +1 @@ - - - Accounts that have migrated from the old billing platform may contain automatically generated budgets that mirror their previous spending limits. - - diff --git a/data/reusables/copilot/zero-budget-changes-link.md b/data/reusables/copilot/zero-budget-changes-link.md index 7e5240347252..65245e025b86 100644 --- a/data/reusables/copilot/zero-budget-changes-link.md +++ b/data/reusables/copilot/zero-budget-changes-link.md @@ -1,7 +1 @@ - - - -{% data reusables.copilot.zero-budget-changes %} See [AUTOTITLE](/copilot/how-tos/manage-and-track-spending/manage-request-allowances#setting-a-policy-for-paid-usage). - - +See [AUTOTITLE](/copilot/how-tos/manage-and-track-spending/manage-request-allowances#setting-a-policy-for-paid-usage). diff --git a/data/reusables/copilot/zero-budget-changes.md b/data/reusables/copilot/zero-budget-changes.md index cc3c074696f9..781dbec218b5 100644 --- a/data/reusables/copilot/zero-budget-changes.md +++ b/data/reusables/copilot/zero-budget-changes.md @@ -1,12 +1,6 @@ - - - Accounts created **before August 22, 2025** have a default $0 budget for {% data variables.product.prodname_copilot_short %} premium requests. Premium requests over the allowance are rejected unless you edit or delete this budget. > [!IMPORTANT] > **Beginning December 2, 2025:** > > **Account-level $0 {% data variables.product.prodname_copilot_short %} premium request budgets** for {% data variables.product.prodname_enterprise %} and {% data variables.product.prodname_team %} will be removed. See [Upcoming removal of Copilot premium request $0 budgets for enterprise and team accounts](https://github.blog/changelog/2025-09-17-upcoming-removal-of-copilot-premium-request-0-budgets-for-enterprise-and-team-accounts/) in the {% data variables.product.github %} changelog. - - diff --git a/data/reusables/enterprise/create-an-enterprise-account.md b/data/reusables/enterprise/create-an-enterprise-account.md index 77dbd89c5955..d24a42b8c3f5 100644 --- a/data/reusables/enterprise/create-an-enterprise-account.md +++ b/data/reusables/enterprise/create-an-enterprise-account.md @@ -1,7 +1,7 @@ - + - + If you currently use {% data variables.product.prodname_ghe_cloud %} with a single organization, we encourage you to create an enterprise account. - + diff --git a/data/reusables/enterprise/single-organizations-enterprise-migration.md b/data/reusables/enterprise/single-organizations-enterprise-migration.md index 619cfafa03a5..27ded088d155 100644 --- a/data/reusables/enterprise/single-organizations-enterprise-migration.md +++ b/data/reusables/enterprise/single-organizations-enterprise-migration.md @@ -1,7 +1,7 @@ - + - + > [!NOTE] Currently, {% data variables.product.prodname_ghe_cloud %} customers who use a single organization are being automatically upgraded to an enterprise account at no additional cost. For details, see [AUTOTITLE](/admin/managing-your-enterprise-account/creating-an-enterprise-account#what-will-happen-after-i-upgrade-my-organization). - +