Skip to content
Merged
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
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ Because this restriction only applies to requests that are sent via a proxy that
| {% data variables.product.prodname_pages %} | `github.io` | This is generally user-generated content that cannot accept data. You may not want to restrict access. |
| {% data variables.product.prodname_github_codespaces %} | `github.dev` | To restrict access, block the endpoint entirely. |
| SSH access | Port 22 on {% data variables.product.prodname_dotcom_the_website %} | To restrict access, block the endpoint entirely. |
| SSH over HTTPS | `ssh.github.com` | To restrict access, block the endpoint entirely. |
| {% data variables.product.github %}-hosted runners | Various | To enforce specific routing, use Azure private networking. See [AUTOTITLE](/admin/configuring-settings/configuring-private-networking-for-hosted-compute-products/about-azure-private-networking-for-github-hosted-runners-in-your-enterprise). |

### Endpoints that don't require restriction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,8 @@ To restart streaming, click **Resume stream**.

## Enabling audit log streaming of API requests

>[!NOTE] Not all API requests are included in the audit log stream after this feature is enabled. The streaming of API requests is limited to security relevant endpoints.

{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.audit-log-tab %}
Expand Down
84 changes: 40 additions & 44 deletions content/billing/reference/cost-center-allocation.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ This article contains reference information for how spending is assigned to cost
| ------- | ----------------------------------------------------- |
| {% data variables.product.prodname_actions %} | The repository or organization where the workflow runs. |
| {% data variables.product.prodname_github_codespaces %} | The repository or organization where the codespace is created. |
| {% data variables.product.prodname_copilot %} | The user who receives the license (priority), or the organization where they are a member. |
| {% data variables.product.prodname_copilot %} | The user who receives the license (priority), or the organization that is billed for the {% data variables.product.prodname_copilot_short %} license. |
| Git Large File Storage | The repository or organization where Git LFS is used. |
| {% data variables.product.prodname_GH_cs_and_sp %} | The user who receives the license. |
| {% data variables.product.prodname_enterprise %} | The user who receives the license. |
Expand All @@ -36,19 +36,49 @@ To ensure your cost centers reflect spending as intended, it's important to unde

### {% data variables.product.prodname_copilot %}

* If a user belongs to a cost center, all charges associated with the user are billed to the cost center.
* If a user does not belong to any cost center, usage is billed to the organization where the user receives their {% data variables.product.prodname_copilot_short %} license. If _that organization_ is part of a cost center, the charges are billed to that cost center.
* If the user receives access to {% data variables.product.prodname_copilot_short %} through **multiple organizations**, one of the organizations is chosen at random each month to be billed, and the cost center that contains the organization is charged accordingly. See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-subscription-for-your-enterprise/about-billing-for-github-copilot-in-your-enterprise#about-seat-assignment-for-copilot-in-your-enterprise).
* If a user belongs to a cost center, all usage associated with the user is charged to the cost center.
* If a user does not belong to any cost center, if the organization that provides the user their {% data variables.product.prodname_copilot_short %} license belongs to a cost center, all usage associated with the user is charged to the cost center.
* If the user receives access to {% data variables.product.prodname_copilot_short %} through **multiple organizations**, only one of the organizations is billed, and any cost center containing that organization is charged accordingly. See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-subscription-for-your-enterprise/about-billing-for-github-copilot-in-your-enterprise#about-seat-assignment-for-copilot-in-your-enterprise).

### {% data variables.product.prodname_GH_cs_and_sp %}

* If a user belongs to a cost center, licenses consumed by the user are billed to the cost center.
* If a user does not belong to any cost center, their license consumption is charged to the enterprise's default payment method and grouped under "Enterprise Only" spending on the usage page.
* If a user belongs to a cost center, licenses consumed by the user are charged to the cost center.
* If a user does not belong to any cost center, licenses consumed by the user are charged to the enterprise.

### {% data variables.product.prodname_enterprise %}

* If a user belongs to a cost center, the license consumed by the user is billed to the cost center.
* If a user does not belong to any cost center, their license is billed to the enterprise's default payment method and grouped under "Enterprise Only" spending on the usage page.
* If a user belongs to a cost center, the license consumed by the user is charged to the cost center.
* If a user does not belong to any cost center, the license consumed by the user is charged to the enterprise.

## Understanding cost center usage and attribution

To view usage by cost center, go to the "Usage" page and group or filter by cost center. Any usage that is not assigned to a specific cost center is categorized as "Enterprise Only" when grouping by cost center. See [AUTOTITLE](/billing/tutorials/gather-insights).

To understand how usage for a specific resource is being attributed to cost centers, request a detailed usage report and refer to the `cost_center_name` column. See [AUTOTITLE](/billing/reference/usage-reports).

## Effects of changes to cost centers

You can change the included resources of a cost center or delete a cost center at any time. This affects the cost center in different ways.

### Deleting a cost center

If a cost center is deleted, future usage of its resources will be charged to the enterprise. Usage before deletion is charged to the cost center.

You can still view the cost center even after you delete it. To do so, select the "Deleted" tab on the cost center page.

### Adding or removing a member

If you add a member to a cost center, any future usage will be charged to the cost center. If you remove a member from a cost center, any future usage will be charged to the enterprise. For example:

| Date | Scenario | Effect |
| ---- | -------- | ------ |
| May 1 | An enterprise has three {% data variables.product.prodname_copilot_short %} users. | The charges for all three users are charged to the enterprise. |
| May 10 | You create two cost centers: Cost Center 1 with User A and User B as members, and Cost Center 2 with User C. | Future charges for Users A and B are charged to Cost Center 1, and for User C to Cost Center 2. |
| May 20 | You remove User A from Cost Center 1. | Future charges for User A are charged to the enterprise. |

### Deleting a user from the enterprise

Removing a user from an enterprise will not remove the user from the cost center. This ensures that the remaining usage attributable to the user will be allocated to the cost center.

## Example for license-based products

Expand All @@ -65,7 +95,7 @@ There are four users, each a member of one or more organizations in the enterpri
| `user-3` | `org-1` |
| `user-4` | `org-1`, `org-2` |

All users have a license for **{% data variables.product.prodname_copilot %}** and **{% data variables.product.prodname_enterprise %}** (GHE).
All users have a license for **{% data variables.product.prodname_copilot %}** provided by `org-1` and **{% data variables.product.prodname_enterprise %}** (GHE).

**{% data variables.product.prodname_GH_secret_protection %}** (GHSP) is enabled in `org-1`, where all users are active committers.

Expand All @@ -89,41 +119,7 @@ The following table illustrates how spending for each user is allocated to a cos
| | Copilot charges | GHSP charges | GHE charges | Explanation |
| ----------- | --------------- | ------------ | ----------- | ----------- |
| Cost Center A | `user-1`, `user-3` | `user-1`, `user-3` | `user-1`, `user-3` | These users are assigned directly to the cost center. |
| Cost Center B | `user-2`, `user-4` | {% octicon "dash" aria-label="Not applicable" %} | {% octicon "dash" aria-label="Not applicable" %} | These users aren't directly assigned to a cost center, so Copilot charges are assigned based on organization membership, whereas GHSP and GHE default to enterprise spending.
| Cost Center B | `user-2`, `user-4` | {% octicon "dash" aria-label="Not applicable" %} | {% octicon "dash" aria-label="Not applicable" %} | These users aren't directly assigned to a cost center, so Copilot charges are assigned based on organization membership, whereas GHSP and GHE default to enterprise spending. |
| Enterprise Only (default) | {% octicon "dash" aria-label="Not applicable" %} | `user-2`, `user-4` | `user-2`, `user-4` | These users aren't directly assigned to a cost center, so GHSP and GHE default to enterprise spending. |

{% endrowheaders %}

## Effects of changes to cost centers

You can change the included resources of a cost center or delete a cost center at any time. This affects the cost center in different ways.

### Deleting a cost center

If a cost center is deleted, future usage of its resources will be charged to the enterprise. Usage before deletion is billed to the cost center until the end of the billing cycle.

You can still view the cost center even after you delete it. To do so, select the "Deleted" tab on the cost center page.

### Adding or removing a member

If you add a member to a cost center, any usage accrued (for example, a {% ifversion enterprise-licensing-language %}license{% else %}seat{% endif %}) will immediately start being billed against the cost center. If you remove a member from a cost center, any usage from that point will be billed against the enterprise. For example:

| Date | Scenario | Effect |
| ---- | -------- | ------ |
| May 1 | An enterprise has three {% data variables.product.prodname_copilot_short %} users. | The charges for all three users are billed to the enterprise. |
| May 10 | You create two cost centers: Cost Center 1 and Cost Center 2. User A and User B are assigned to Cost Center 1, and User C to Cost Center 2. | Future charges for Users A and B go to Cost Center 1, and for User C to Cost Center 2. |
| May 20 | You remove User A from Cost Center 1. | From now on, User A's charges are billed to the enterprise, while User B's charges remain with Cost Center 1, and User C's charges with Cost Center 2. |

The "units" for {% data variables.product.prodname_copilot_short %} licenses displayed on your enterprise's "Usage" page will show fractional usage instead of whole numbers.

#### Update delays for license-based products

Adding or removing users from a cost center comes with a delay for license-based products.

* For {% data variables.product.prodname_copilot %}: A change to add or remove a user from a cost center is reflected the **next day**.
* For {% data variables.product.prodname_enterprise %}: A change to add or remove a user from a cost center is reflected the **next day**.
* For {% data variables.product.prodname_GH_cs_and_sp %}: A change to add or remove a user from a cost center is reflected in the **next billing cycle**.

If a user is already part of a cost center and _then_ receives a license, the license is immediately billed to the cost center.

If a user who already has a license is added to a cost center, the license will be billed to the cost center from the next billing cycle.
2 changes: 1 addition & 1 deletion content/billing/reference/github-license-users.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ If your enterprise does not use {% data variables.product.prodname_emus %}, you
* Enterprise billing managers
* Billing managers for individual organizations
* Anyone with a pending invitation to become a billing manager
* Anyone with a pending invitation to become an outside collaborator on a public repository owned by your organization
* Anyone who is an outside collaborator on a public repository owned by your organization, or who has a pending invitation to become one
* Guest collaborators who are not organization members or repository collaborators (see [AUTOTITLE](/enterprise-cloud@latest/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise#guest-collaborators))
* Users of {% data variables.visual_studio.prodname_vss_ghe %} whose accounts on {% data variables.product.prodname_dotcom %} are not linked, and who do not meet any of the other criteria for per-user pricing
* Users who have been provisioned with a {% data variables.enterprise.prodname_managed_user %}, but are not members of any organizations in the enterprise
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ A {% data variables.product.prodname_copilot_short %} seat is a license to use {

Seat assignment is managed by organization owners. With {% data variables.product.prodname_ghe_cloud %}, an enterprise owner must have enabled {% data variables.product.prodname_copilot %} for the organization before an organization owner can assign seats. See [AUTOTITLE](/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/granting-access-to-copilot-for-members-of-your-organization).

If a single user receives a seat from multiple organizations in the same enterprise, the enterprise will only be billed once per billing cycle for that unique user. One of the organizations that assigned {% data variables.product.prodname_copilot_short %} to the user will be chosen at random each month to be billed for the seat.
If a user receives a seat from multiple organizations in the same enterprise, the enterprise will be billed only once, and one organization is selected and billed for the seat. To determine which organization is billed for a given user, request a detailed usage report and refer to the `organization` column for the user's {% data variables.product.prodname_copilot_short %} license. See [AUTOTITLE](/billing/reference/usage-reports).

## Billing cycles

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ If you have questions about this list, please contact us at <privacy@github.com>
| Cloudflare | Content delivery service | United States | United States |
| CoreWeave, Inc. | Cloud Hosted Infrastructure | United States | United States |
| Fastly | Content delivery service | United States | United States |
| Fireworks AI | AI Inference and AI Services | United States, Iceland, Germany | United States |
| Google Cloud Platform (GCP) | Cloud Hosted Infrastructure, AI Inference and AI Services | United States, Belgium, Singapore | United States |
| Hewlett-Packard Limited | Cloud Hosted Infrastructure | United States | United States |
| LambdaTest | Cloud Hosted Infrastructure | United States | United States |
Expand Down
6 changes: 4 additions & 2 deletions data/reusables/billing/cost-center-allocation.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
To allocate spending to a cost center, you add repositories, organizations, or users to the cost center. Any usage that is not assigned to a specific cost center is categorized as "Enterprise Only" spending on your enterprise's "Usage" page.
To allocate metered spending to a cost center, you add repositories, organizations, or users to the cost center.

* For **metered** products like {% data variables.product.prodname_actions %}, cost centers are charged based on the **repositories or organizations** in the cost center, as this is where the usage takes place.
* For **license-based** products like {% data variables.product.prodname_copilot %}, cost centers are charged based on the **users** in the cost center. If a licensed user isn't assigned to a cost center, costs for the license either default to "Enterprise Only" spending or are assigned to a cost center based on the user's organization membership. This depends on the product.
* For **metered license-based** products like {% data variables.product.prodname_copilot %}, cost centers are charged based on the **users** in the cost center.

Cost centers only apply to metered usage, and do not work with volume or subscription billing.
4 changes: 2 additions & 2 deletions src/audit-logs/data/ghec/enterprise.json
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@
},
{
"action": "api.request",
"description": "An API request was made to an endpoint for the enterprise, or an enterprise owned resource. This event is only included if API Request Events is enabled in the enterprise's audit log settings. This event is only available via audit log streaming.",
"description": "An API request was made to a security relevant endpoint for the enterprise, or an enterprise owned resource. This event is only included if API Request Events is enabled in the enterprise's audit log settings. This event is only available via audit log streaming.",
"docs_reference_links": "/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise#enabling-audit-log-streaming-of-api-requests",
"fields": [
"user_agent",
Expand Down Expand Up @@ -20170,4 +20170,4 @@
"request_access_security_header"
]
}
]
]
4 changes: 2 additions & 2 deletions src/audit-logs/data/ghes-3.14/enterprise.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@
},
{
"action": "api.request",
"description": "An API request was made to an endpoint for the enterprise, or an enterprise owned resource. This event is only included if API Request Events is enabled in the enterprise's audit log settings. This event is only available via audit log streaming.",
"description": "An API request was made to a security relevant endpoint for the enterprise, or an enterprise owned resource. This event is only included if API Request Events is enabled in the enterprise's audit log settings. This event is only available via audit log streaming.",
"docs_reference_links": "/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise#enabling-audit-log-streaming-of-api-requests",
"fields": [
"user_agent",
Expand Down Expand Up @@ -16247,4 +16247,4 @@
"request_access_security_header"
]
}
]
]
4 changes: 2 additions & 2 deletions src/audit-logs/data/ghes-3.15/enterprise.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@
},
{
"action": "api.request",
"description": "An API request was made to an endpoint for the enterprise, or an enterprise owned resource. This event is only included if API Request Events is enabled in the enterprise's audit log settings. This event is only available via audit log streaming.",
"description": "An API request was made to a security relevant endpoint for the enterprise, or an enterprise owned resource. This event is only included if API Request Events is enabled in the enterprise's audit log settings. This event is only available via audit log streaming.",
"docs_reference_links": "/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise#enabling-audit-log-streaming-of-api-requests",
"fields": [
"user_agent",
Expand Down Expand Up @@ -16446,4 +16446,4 @@
"request_access_security_header"
]
}
]
]
Loading
Loading