Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -163,4 +163,7 @@ jobs:
ENABLED_LANGUAGES: ${{ matrix.name == 'languages' && 'all' || '' }}
ROOT: ${{ (matrix.name == 'fixtures' || matrix.name == 'article-api' || matrix.name == 'landings' ) && 'src/fixtures/fixtures' || '' }}
TRANSLATIONS_FIXTURE_ROOT: ${{ (matrix.name == 'fixtures' || matrix.name == 'article-api') && 'src/fixtures/fixtures/translations' || '' }}
# Enable debug logging when "Re-run jobs with debug logging" is used in GitHub Actions UI
# This will output additional timing and path information to help diagnose timeout issues
RUNNER_DEBUG: ${{ runner.debug }}
run: npm test -- src/${{ matrix.name }}/tests/
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ The following IdPs are partner IdPs. They offer an application that you can use

When you use a single partner IdP for both authentication and provisioning, {% data variables.product.company_short %} provides support for the application on the partner IdP and the IdP's integration with {% data variables.product.prodname_dotcom %}. Support for PingFederate is in {% data variables.release-phases.public_preview %}.

We do not have a supported partner application when using Entra ID for Azure Government.

### Other identity management systems

If you cannot use a single partner IdP for both authentication and provisioning, you can use another identity management system or combination of systems. The system must:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ For more information about connecting Microsoft Entra ID (previously known as Az

For more information about connecting Entra ID to your enterprise, see [Tutorial: Microsoft Entra SSO integration with GitHub Enterprise Server](https://learn.microsoft.com/en-us/entra/identity/saas-apps/github-ae-tutorial) in Microsoft Docs.

We do not have a supported partner application when using Entra ID for Azure Government.

## Username considerations with SAML

{% data reusables.enterprise_user_management.consider-usernames-for-external-authentication %} For more information, see [AUTOTITLE](/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication).
Expand Down
2 changes: 1 addition & 1 deletion content/billing/reference/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,6 @@ children:
- /product-usage-included
- /roles-for-visual-studio
- /supported-payment-methods
- /previous-billing-platform-endpoints
contentType: reference
---

105 changes: 105 additions & 0 deletions content/billing/reference/previous-billing-platform-endpoints.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
---
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
---

<!-- expires 2026-01-15 -->
<!-- To check on whether this can be deleted or not, see the PM in ref: 6591 -->

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` | <ol><li> Filter results by `"product": "Actions"` and `"unitType": "minutes"`</li><li>Sum `quantity`</li></ol>|
| `total_paid_minutes_used`| This is now represented as a $ amount via `netAmount`.<ol><li>Filter results by `"product": "Actions"` and `"unitType": "minutes"`</li><li>Sum `netAmount`</li></ol>|
| `included_minutes` | This is now represented as a $ amount via `discountAmount`.<ol><li>Filter results by `"product": "Actions"` and `"unitType": "minutes"`</li><li>Sum `discountAmount`</li></ol>|
| `minutes_used_breakdown` | <ol><li>Filter results by `"product": "Actions"` and `"unitType": "minutes"`</li><li>Sum `quantity` grouped by `sku`</li></ol>|

{% 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` | <ol><li>Filter results by `"product": "Packages"` and `"unitType": "gigabytes"` </li><li>Sum `quantity`</li></ol> |
| `total_paid_gigabytes_bandwidth_used`| This is now represented as a $ amount via `netAmount`. <ol><li>Filter results by `"product": "Packages"` and `"unitType": "gigabytes"`</li><li>Sum `netAmount`</li></ol> |
| `included_gigabytes_bandwidth` | This is now represented as a $ amount via `discountAmount`.<ol><li>Filter results by `"product": "Packages"` and `"unitType": "gigabytes"`</li><li>Sum `discountAmount`</li></ol> |

{% 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`. <br><br> Prerequisite: pass the `month` and `year` query parameters. <br><br> <i> For Actions storage </i> <ol><li> Filter results by `"product": "Actions"` and `"unitType": "GigabyteHours"`</li><li> Sum `netAmount`</li></ol> <i> For Packages storage </i> <ol><li> Filter results by `"product": "Packages"` and `"unitType": "GigabyteHours"`</li><li> Sum `netAmount`</li></ol>|
| `estimated_storage_for_month` | Prerequisite: pass the `month` and `year` query parameters. <br><br> <i> For Actions storage </i> <ol><li> Filter results by `"product": "Actions"` and `"unitType": "GigabyteHours"`</li><li> Sum `quantity`</li></ol> <i> For Packages storage </i> <ol><li> Filter results by `"product": "Packages"` and `"unitType": "GigabyteHours"`</li><li> Sum `quantity`</li></ol>|

{% endrowheaders %}

<!-- end expires 2026-01-15 -->
Loading
Loading