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
4 changes: 4 additions & 0 deletions config/moda/configuration/default/env.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ data:
RATE_LIMIT_MAX: '21'
# Moda uses a non-default port for sending datadog metrics
DD_DOGSTATSD_PORT: '28125'
# OTel distributed tracing — sends spans to OTel Collector via OTLP/HTTP (proto).
# Uses stamp address (not mesh) since docs-internal is not on the service mesh.
# See https://thehub.github.com/epd/engineering/dev-practicals/observability/distributed-tracing/instrumentation/
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: 'https://otelcol.service.%stamp%.github.net/v1/traces'
4 changes: 4 additions & 0 deletions config/moda/configuration/production/env.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,7 @@ data:
# Identifies the service deployment environment as production
# Equivalent to HEAVEN_DEPLOYED_ENV === 'production'
MODA_PROD_SERVICE_ENV: 'true'
# OTel distributed tracing — sends spans to OTel Collector via OTLP/HTTP (proto).
# Uses stamp address (not mesh) since docs-internal is not on the service mesh.
# See https://thehub.github.com/epd/engineering/dev-practicals/observability/distributed-tracing/instrumentation/
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: 'https://otelcol.service.%stamp%.github.net/v1/traces'
5 changes: 5 additions & 0 deletions config/moda/secrets/production/secrets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,3 +64,8 @@ secrets:
type: hydro_api_key
owner: '@github/docs-engineering'
externally_usable: true
OTEL_EXPORTER_OTLP_TRACES_HEADERS:
kind: latest_at_deployment_start
type: salt
owner: '@github/docs-engineering'
externally_usable: true
10 changes: 7 additions & 3 deletions content/billing/reference/billing-roles.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ The following roles have access to the billing platform:

* **Enterprise owners and enterprise billing managers**: Can manage billing for an enterprise account.
* **Organization owners and organization billing managers**: Can manage billing for an organization on {% data variables.product.prodname_free_team %} or {% data variables.product.prodname_team %}.

> [!NOTE]
> If your organization is owned by an enterprise account, you cannot add billing managers at the organization level. Billing for enterprise-owned organizations is managed at the enterprise level.

* **Personal accounts (non-managed)**: Can access the billing platform for their personal usage.

To add a billing manager, see:
Expand All @@ -38,9 +42,7 @@ You have full administrative access to your organization. You can:

You can:

* View all metered usage for your organization its repositories.
* View organization-level budgets.
* Download CSV usage reports.
{% data reusables.billing.org-billing-manager-permissions %}

## Enterprise owners and enterprise billing managers

Expand All @@ -51,6 +53,8 @@ You can:
* Download CSV usage reports for products your enterprise is using.
* Set budgets for your enterprise.
* Create cost centers for all organizations within your enterprise.
* View and manage user licenses.
* Manage other billing settings, such as payment methods and billing contacts.

## Further reading

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,14 @@ redirect_from:

This article shows how you can enable extended metadata checks for individual repositories through repository settings. Alternatively, you can enable them at scale using **security configurations** at the organization or enterprise level. See [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-organization-security/establish-complete-coverage/creating-a-custom-security-configuration) or [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-enterprise-security/establish-complete-coverage/creating-a-custom-security-configuration-for-your-enterprise).

{% ifversion secret-scanning-validity-check-partner-patterns %}

## Prerequisites

Before enabling metadata checks, you need to ensure that validity checks are enabled for the repository. See [AUTOTITLE](/code-security/secret-scanning/enabling-secret-scanning-features/enabling-validity-checks-for-your-repository#enabling-validity-checks).

{% endif %}

## Enabling extended metadata checks

{% ifversion fpt or ghec %}
Expand Down
10 changes: 6 additions & 4 deletions content/copilot/concepts/agents/code-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ Organizations in this situation can use self-hosted runners. For more informatio

Each time {% data variables.product.prodname_copilot_short %} reviews a pull request or reviews code in your IDE, your monthly quota of {% data variables.product.prodname_copilot_short %} premium requests is reduced by one.

If a repository is configured to automatically request a code review from {% data variables.product.prodname_copilot_short %} for all new pull requests, the premium request usage is applied to the pull request author's quota.
If a repository is configured to automatically request a code review from {% data variables.product.prodname_copilot_short %} for all new pull requests, the premium request usage is applied to the pull request author's quota. If a review is manually requested by another user, the usage is applied to that user's quota instead.

If a pull request is created by {% data variables.product.prodname_actions %} or by a bot, the usage will apply to:

Expand All @@ -120,11 +120,13 @@ If a pull request is created by {% data variables.product.prodname_actions %} or

When you reach your monthly quota, you will not be able to get a code review from {% data variables.product.prodname_copilot_short %} until your quota resets. To continue to use code reviews before your quota resets, you will need to upgrade your {% data variables.product.prodname_copilot_short %} plan or enable additional premium requests.

### Quota for users without a {% data variables.product.prodname_copilot_short %} license
### Users without a {% data variables.product.prodname_copilot_short %} license or plan that includes {% data variables.copilot.copilot_code-review_short %}

Users without a {% data variables.product.prodname_copilot_short %} license do not have a monthly premium request quota. When {% data variables.copilot.copilot_code-review_short %} is enabled for these users, any premium requests they generate are billed directly to the organization or enterprise as paid overage usage. This applies to both manually requested reviews and automatic code reviews.
Users without access to {% data variables.copilot.copilot_code-review_short %} do not have a monthly premium request quota. This includes users who have no {% data variables.product.prodname_copilot_short %} license and users on the {% data variables.copilot.copilot_free_short %} plan, which does not include {% data variables.copilot.copilot_code-review_short %}.

Premium requests generated by users without a license are not attributed to any {% data variables.product.prodname_copilot_short %} plan quota. They appear as overage usage in billing reports and premium request analytics. Users with a {% data variables.product.prodname_copilot_short %} license continue to consume premium requests from their assigned plan quota.
When {% data variables.copilot.copilot_code-review_short %} is enabled for these users, any premium requests they generate are billed directly to the organization or enterprise as paid overage usage. This applies to both manually requested reviews and automatic code reviews.

Premium requests generated by these users are not attributed to any {% data variables.product.prodname_copilot_short %} plan quota. They appear as overage usage in billing reports and premium request analytics. Users with a {% data variables.product.prodname_copilot_short %} license that includes code review continue to consume premium requests from their assigned plan quota.

## Model usage

Expand Down
2 changes: 1 addition & 1 deletion content/copilot/concepts/billing/copilot-requests.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ category:

## What is a request?

A request is any interaction where you ask {% data variables.product.prodname_copilot_short %} to do something for you—whether its generating code, answering a question, or helping you through an extension. Each time you send a prompt in a chat window or trigger a response from {% data variables.product.prodname_copilot_short %}, youre making a request.
A request is any interaction where you ask {% data variables.product.prodname_copilot_short %} to do something for you—whether it's generating code, answering a question, or helping you through an extension. Each time you send a prompt in a chat window or trigger a response from {% data variables.product.prodname_copilot_short %}, you're making a request. For agentic features, only the prompts you send count as premium requests; actions {% data variables.product.prodname_copilot_short %} takes autonomously to complete your task, such as tool calls, do not. For example, using `/plan` in {% data variables.copilot.copilot_cli_short %} counts as one premium request, and any follow-up prompt you send counts as another.

## What are premium requests?

Expand Down
4 changes: 0 additions & 4 deletions content/integrations/concepts/github-developer-program.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,6 @@ Building an application that integrates with {% data variables.product.github %}

Build your own tools that seamlessly integrate with {% data variables.product.github %} APIs. For more information, see [AUTOTITLE](/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api).

## Take on the enterprise

Email <a href="mailto:partnerships@github.com">partnerships@github.com</a> to request developer licenses to build and test your application against {% data variables.product.prodname_ghe_server %}.

## Have an integration that works with GitHub?

Awesome! Here’s how you can spread the word:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,7 @@ Members of your organization's Owners team can give _billing manager_ permission

Billing managers can:

* Upgrade or downgrade between {% data variables.product.prodname_free_user %} and {% data variables.product.prodname_team %} plans
* Add, update, or remove payment methods
* View payment history
* Download receipts
* View, invite, and remove billing managers
* Start, modify, or cancel sponsorships
{% data reusables.billing.org-billing-manager-permissions %}

In addition, all billing managers will receive billing receipts by email on the organization's billing date.

Expand Down
8 changes: 8 additions & 0 deletions data/reusables/billing/org-billing-manager-permissions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
* View all metered usage for your organization and its repositories.
* View organization-level budgets.
* Download CSV usage reports.
* View payment history and download receipts.
* Add, update, or remove payment methods.
* Upgrade or downgrade between {% data variables.product.prodname_free_user %} and {% data variables.product.prodname_team %} plans.
* View, invite, and remove billing managers.
* Start, modify, or cancel sponsorships.
29 changes: 21 additions & 8 deletions next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@ const config: NextConfig = {
// Transpile @primer/react so Next's webpack can process its CSS and other assets
// This ensures CSS in node_modules/@primer/react is handled by the app's loaders.
transpilePackages: ['@primer/react'],
// Keep OTel packages out of the Next.js server bundle.
// They must be loaded via native require() for auto-instrumentation to work.
serverExternalPackages: [
'@opentelemetry/api',
'@opentelemetry/auto-instrumentations-node',
'@opentelemetry/core',
'@opentelemetry/exporter-trace-otlp-proto',
'@opentelemetry/sdk-node',
],
// speed up production `next build` by ignoring typechecking during that step of build.
// type-checking still occurs in the Dockerfile build
typescript: {
Expand All @@ -27,13 +36,7 @@ const config: NextConfig = {
},
sassOptions: {
quietDeps: true,
silenceDeprecations: [
'legacy-js-api',
'import',
'global-builtin',
'color-4-api',
'mixed-decls',
],
silenceDeprecations: ['legacy-js-api', 'import', 'global-builtin', 'color-4-api'],
},
// Don't use automatic Next.js logging in dev unless the log level is `debug` or higher
// See `src/observability/logger/README.md` for log levels
Expand All @@ -48,8 +51,15 @@ const config: NextConfig = {
})
},

webpack: (webpackConfig) => {
webpack: (webpackConfig, { isServer }) => {
webpackConfig.resolve.fallback = { fs: false, async_hooks: false }
// OTel is server-only. Alias to empty stub in browser bundles.
if (!isServer) {
webpackConfig.resolve.alias = {
...webpackConfig.resolve.alias,
'@/observability/lib/tracing': path.resolve('./src/observability/lib/tracing.browser.ts'),
}
}
return webpackConfig
},

Expand All @@ -71,6 +81,9 @@ const config: NextConfig = {
'@/observability/logger/lib/logger-context': {
browser: './empty.ts',
},
'@/observability/lib/tracing': {
browser: './src/observability/lib/tracing.browser.ts',
},
},
},

Expand Down
Loading
Loading