Skip to content

Commit 7854008

Browse files
authored
Merge pull request #43621 from github/repo-sync
Repo sync
2 parents 8dda970 + 8dd32cb commit 7854008

31 files changed

+4458
-61
lines changed

content/billing/concepts/billing-cycles.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,6 @@ For example, if you started a paid plan or converted from a trial on the 15th of
3939

4040
Volume-based licenses may follow a different billing cycle. These products are often billed based on the anniversary date of your subscription rather than by calendar month.
4141

42-
You can switch between annual and monthly billing from the "Licensing" page under "Billing and licensing", see [AUTOTITLE](/copilot/how-tos/manage-your-account/view-and-change-your-copilot-plan#changing-your-billing-cycle).
43-
4442
## How mid-cycle changes affect your billing
4543

4644
Changes you make mid-cycle, such as adding or removing users, seats, or resources, can affect your bill. Some behaviors apply to both metered and volume-based billing; others are specific to one model.

content/billing/concepts/product-billing/github-copilot-licenses.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Usage of {% data variables.product.prodname_copilot %} is measured through a com
2323

2424
| Account type | Options |
2525
|-------------------|-------------------------------------------------------------------------|
26-
| **Personal accounts** | <ul><li>{% data variables.copilot.copilot_pro_short %}: {% data variables.copilot.cfi_price_per_month %} per calendar month or {% data variables.copilot.cfi_price_per_year %} per year.</li><li>{% data variables.copilot.copilot_pro_plus_short %}: {% data variables.copilot.cpp_price_per_month %} per calendar month or {% data variables.copilot.cpp_price_per_year %} per year.</li><li>{% data variables.copilot.copilot_student_short %}: access to {% data variables.product.prodname_copilot_short %} premium features at no cost.</li><li>{% data variables.copilot.copilot_free_short %}: limited access to {% data variables.product.prodname_copilot_short %} features at no cost.</li></ul> |
26+
| **Personal accounts** | <ul><li>{% data variables.copilot.copilot_pro_short %}: {% data variables.copilot.cfi_price_per_month %} per calendar month.</li><li>{% data variables.copilot.copilot_pro_plus_short %}: {% data variables.copilot.cpp_price_per_month %} per calendar month.</li><li>{% data variables.copilot.copilot_student_short %}: access to {% data variables.product.prodname_copilot_short %} premium features at no cost.</li><li>{% data variables.copilot.copilot_free_short %}: limited access to {% data variables.product.prodname_copilot_short %} features at no cost.</li></ul> |
2727
| **Organizations** | {% data variables.copilot.copilot_business_short %}: {% data variables.copilot.cfb_price_per_month %} per user per month (billed monthly). |
2828
| **Enterprises** | Choose {% data variables.copilot.copilot_business_short %} or {% data variables.copilot.copilot_enterprise_short %}, or mix them across organizations. Both are billed monthly, pricing varies. |
2929

@@ -43,7 +43,7 @@ There are several ways to use {% data variables.product.prodname_copilot_short %
4343
### 30-day trial for {% data variables.copilot.copilot_pro_short %}
4444

4545
* Before starting a paid plan for a personal account, you can activate a **one-time 30-day trial**. [Start using {% data variables.copilot.copilot_free_short %}](https://github.com/copilot).
46-
* You must choose a monthly or yearly billing cycle and provide a payment method.
46+
* You must provide a payment method.
4747
* If you do not cancel before the end of the trial, it automatically converts to a paid plan.
4848
* You can cancel any time during the 30 days. If you cancel, you will not be charged and will keep access until the trial ends.
4949
* Free trials are limited to three per payment method. Additional trials will continue as paid subscriptions.
@@ -59,9 +59,9 @@ Usage of {% data variables.product.prodname_copilot_short %} licenses is measure
5959

6060
### Personal accounts
6161

62-
* You choose monthly or yearly billing.
63-
* Plan changes (upgrades, downgrades, or switching between monthly and yearly) take effect immediately, with proration applied where relevant.
64-
* Canceling a monthly plan keeps access until the end of the cycle; yearly plans run until the end of the paid term.
62+
* Upgrades take effect immediately, with proration applied for the remainder of the current billing cycle.
63+
* Downgrades take effect at the start of the next billing cycle and are generally not prorated.
64+
* Canceling a monthly plan keeps access until the end of the current billing cycle, with no proration.
6565

6666
For details on billing and proration, see [AUTOTITLE](/copilot/concepts/billing/billing-for-individuals).
6767

content/billing/get-started/how-billing-works.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ You can use {% data variables.product.github %} without incurring any costs. If
5050
{% data variables.product.github %} bills you separately for each account you own (personal, organization, or enterprise). Each account has a separate:
5151

5252
* Billing date
53-
* Billing period, monthly or yearly, for {% data variables.product.github %} and {% data variables.product.prodname_copilot_short %} plans
53+
* Billing period for {% data variables.product.github %} plans
5454
* Payment method of credit card, PayPal, or a connected Azure subscription
5555
* Receipt
5656

content/copilot/concepts/billing/billing-for-individuals.md

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,10 @@ category:
1818

1919
## Pricing for {% data variables.copilot.copilot_pro_short %} and {% data variables.copilot.copilot_pro_plus_short %}
2020

21-
{% data variables.product.github %} offers two paid plans for individuals: {% data variables.copilot.copilot_pro_short %} and {% data variables.copilot.copilot_pro_plus_short %}. Both plans are available on a monthly or yearly billing cycle.
21+
{% data variables.product.github %} offers two paid plans for individuals: {% data variables.copilot.copilot_pro_short %} and {% data variables.copilot.copilot_pro_plus_short %}.
2222

23-
**{% data variables.copilot.copilot_pro_short %}**
24-
25-
* **If you choose a monthly billing cycle**, you will be billed {% data variables.copilot.cfi_price_per_month %} per calendar month.
26-
* **If you choose a yearly billing cycle**, you will be billed {% data variables.copilot.cfi_price_per_year %} per year.
27-
28-
**{% data variables.copilot.copilot_pro_plus_short %}**
29-
30-
* **If you choose a monthly billing cycle**, you will be billed {% data variables.copilot.cpp_price_per_month %} per calendar month.
31-
* **If you choose a yearly billing cycle**, you will be billed {% data variables.copilot.cpp_price_per_year %} per year.
32-
33-
You can change to a monthly or yearly billing cycle at any time. The change will take effect from the start of your next billing cycle.
23+
* {% data variables.copilot.copilot_pro_short %} is billed at {% data variables.copilot.cfi_price_per_month %} per calendar month.
24+
* {% data variables.copilot.copilot_pro_plus_short %} is billed at {% data variables.copilot.cpp_price_per_month %} per calendar month.
3425

3526
{% ifversion billing-auth-and-capture %}
3627

@@ -44,7 +35,7 @@ You can change to a monthly or yearly billing cycle at any time. The change will
4435

4536
> [!NOTE] {% data variables.copilot.copilot_pro_plus_short %} does not include a trial. You will be billed immediately upon subscribing.
4637
47-
Before starting a paid plan for a personal account, you can set up a one-time {% data reusables.copilot.trial-period %}-day trial to evaluate {% data variables.product.prodname_copilot_short %}. To begin a trial, you will need to choose a monthly or yearly billing cycle, and provide a payment method. If you do not cancel the trial before the end of the {% data reusables.copilot.trial-period %} days, the trial will automatically convert to a paid plan.
38+
Before starting a paid plan for a personal account, you can set up a one-time {% data reusables.copilot.trial-period %}-day trial to evaluate {% data variables.product.prodname_copilot_short %}. To begin a trial, you will need to provide a payment method. If you do not cancel the trial before the end of the {% data reusables.copilot.trial-period %} days, the trial will automatically convert to a paid plan.
4839

4940
You can cancel your {% data variables.product.prodname_copilot_short %} trial at any time during the {% data reusables.copilot.trial-period %} days and you won't be charged. If you cancel before the end of the trial, you will continue to have access to {% data variables.product.prodname_copilot_short %} until the {% data reusables.copilot.trial-period %}-day trial period ends. See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/canceling-your-copilot-trial-as-an-individual-user).
5041

@@ -79,8 +70,7 @@ You can cancel your {% data variables.product.prodname_copilot_short %} plan at
7970

8071
Your billing date will depend on whether or not you are already being billed by {% data variables.product.prodname_dotcom %}.
8172

82-
* **If you are not already being billed by {% data variables.product.prodname_dotcom %}**, in most cases your billing cycle will start on the day you sign up for {% data variables.product.prodname_copilot_short %}. For example, if you sign up on 3 September, with monthly billing, your initial billing cycle will run from 3 September until and including 2 October, and then on the same days of subsequent months. For annual billing, if you sign up on 3 September, your initial cycle will end on 2 September the following year.
83-
73+
* **If you are not already being billed by {% data variables.product.prodname_dotcom %}**, in most cases your billing cycle will start on the day you sign up for {% data variables.product.prodname_copilot_short %}. For example, if you sign up on 3 September, with monthly billing, your initial billing cycle will run from 3 September until and including 2 October, and then on the same days of subsequent months.
8474
* **If you already have a billing cycle**, billing for {% data variables.product.prodname_copilot_short %} will be included in your next bill, or your first bill after the end of your 30-day {% data variables.product.prodname_copilot_short %} trial. You will be charged on a pro rata basis for that initial period. If you do not already have an established billing date, you will be billed for {% data variables.copilot.copilot_pro_short %} at the end of your 30-day trial, or when you set up a new paid {% data variables.product.prodname_copilot_short %} plan.
8575

8676
## Further reading

content/copilot/concepts/billing/individual-plans.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ The following table highlights the key differences between individual {% data va
6969

7070
| Feature | {% data variables.copilot.copilot_free %} | {% data variables.copilot.copilot_student %} | {% data variables.copilot.copilot_pro %} | {% data variables.copilot.copilot_pro_plus %} |
7171
|--------|----------------------------------------------------|----------------------------------------------|--------------------------------------------------|----------------------------------------------------------|
72-
| Price | Free | [Free](/copilot/how-tos/manage-your-account/free-access-with-copilot-student) | {% data variables.copilot.cfi_price_per_month %} per month, or<br>{% data variables.copilot.cfi_price_per_year %} per year<br>([free](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/getting-free-access-to-copilot-pro-as-a-student-teacher-or-maintainer) for some users) | {% data variables.copilot.cpp_price_per_month %} per month, or<br>{% data variables.copilot.cpp_price_per_year %} per year |
72+
| Price | Free | [Free](/copilot/how-tos/manage-your-account/free-access-with-copilot-student) | {% data variables.copilot.cfi_price_per_month %} per month<br>([free](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/getting-free-access-to-copilot-pro-as-a-student-teacher-or-maintainer) for some users) | {% data variables.copilot.cpp_price_per_month %} per month |
7373
| Real-time code suggestions with included models | Up to 2,000 per month | Unlimited | Unlimited | Unlimited |
7474
| Premium requests | 50 per month | 300 per month | 300 per month | 1,500 per month |
7575
| Purchase additional premium requests at {% data variables.copilot.additional_premium_requests %} per request | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} |

content/copilot/how-tos/copilot-sdk/index.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,8 @@ versions:
66
feature: copilot
77
children:
88
- /sdk-getting-started
9+
- /use-copilot-sdk
10+
- /use-hooks
11+
- /observability
912
contentType: how-tos
1013
---
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
title: Observability for Copilot SDK
3+
shortTitle: Observability
4+
intro: Learn how to monitor and trace your {% data variables.copilot.copilot_sdk_short %} applications.
5+
versions:
6+
feature: copilot
7+
children:
8+
- /opentelemetry
9+
contentType: how-tos
10+
---
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
---
2+
title: OpenTelemetry instrumentation for Copilot SDK
3+
shortTitle: OpenTelemetry
4+
intro: Learn how to add OpenTelemetry tracing to your {% data variables.copilot.copilot_sdk_short %} applications.
5+
product: '{% data reusables.gated-features.copilot-sdk %}'
6+
versions:
7+
feature: copilot
8+
contentType: how-tos
9+
category:
10+
- Author and optimize with Copilot
11+
---
12+
13+
> [!NOTE]
14+
> {% data variables.copilot.copilot_sdk_short %} is currently in {% data variables.release-phases.technical_preview %}. Functionality and availability are subject to change.
15+
16+
{% data variables.copilot.copilot_sdk %} has built-in support for configuring OpenTelemetry on the CLI process and propagating W3C Trace Context between the SDK and CLI.
17+
18+
For examples in Python, Go, and .NET, see the `github/copilot-sdk` [repository](https://github.com/github/copilot-sdk/blob/main/docs/observability/opentelemetry.md).
19+
20+
## Built-in telemetry support
21+
22+
To opt in to telemetry, provide a `TelemetryConfig` when creating the client:
23+
24+
```typescript copy
25+
import { CopilotClient } from "@github/copilot-sdk";
26+
27+
const client = new CopilotClient({
28+
telemetry: {
29+
otlpEndpoint: "http://localhost:4318",
30+
},
31+
});
32+
```
33+
34+
### TelemetryConfig options
35+
36+
| Option | Node.js | Description |
37+
|---|---|---|
38+
| OTLP endpoint | `otlpEndpoint` | OTLP HTTP endpoint URL |
39+
| File path | `filePath` | File path for JSON-lines trace output |
40+
| Exporter type | `exporterType` | `"otlp-http"` or `"file"` |
41+
| Source name | `sourceName` | Instrumentation scope name |
42+
| Capture content | `captureContent` | Whether to capture message content |
43+
44+
## Trace context propagation
45+
46+
> [!NOTE]
47+
> Most users don't need this. The `TelemetryConfig` above is all you need to collect traces from the CLI. Trace context propagation is an advanced feature for applications that create their own OpenTelemetry spans and want them to appear in the same distributed trace as the CLI's spans.
48+
49+
The SDK can propagate W3C Trace Context (`traceparent`/`tracestate`) on JSON-RPC payloads so that your application's spans and the CLI's spans are linked in one distributed trace. This is useful when, for example, you want to show the SDK call as a child of your request-handling span.
50+
51+
For a detailed sequence diagram of the session flow, see the `github/copilot-sdk` [repository](https://github.com/github/copilot-sdk/blob/main/docs/observability/opentelemetry.md).
52+
53+
### SDK to CLI (outbound)
54+
55+
Provide an `onGetTraceContext` callback on the client options. This is only needed if your application already uses `@opentelemetry/api` and you want to link your spans with the CLI's spans. The SDK calls this callback before `session.create`, `session.resume`, and `session.send` RPCs:
56+
57+
```typescript copy
58+
import { CopilotClient } from "@github/copilot-sdk";
59+
import { propagation, context } from "@opentelemetry/api";
60+
61+
const client = new CopilotClient({
62+
telemetry: { otlpEndpoint: "http://localhost:4318" },
63+
onGetTraceContext: () => {
64+
const carrier: Record<string, string> = {};
65+
propagation.inject(context.active(), carrier);
66+
return carrier; // { traceparent: "00-...", tracestate: "..." }
67+
},
68+
});
69+
```
70+
71+
### CLI to SDK (inbound)
72+
73+
When the CLI invokes a tool handler, the `traceparent` and `tracestate` from the CLI's span are available. Since the SDK has no OpenTelemetry dependency, these are passed as raw strings on the `ToolInvocation` object. Restore the context manually if needed:
74+
75+
```typescript copy
76+
import { propagation, context, trace } from "@opentelemetry/api";
77+
78+
session.registerTool(myTool, async (args, invocation) => {
79+
// Restore the CLI's trace context as the active context
80+
const carrier = {
81+
traceparent: invocation.traceparent,
82+
tracestate: invocation.tracestate,
83+
};
84+
const parentCtx = propagation.extract(context.active(), carrier);
85+
86+
// Create a child span under the CLI's span
87+
const tracer = trace.getTracer("my-app");
88+
return context.with(parentCtx, () =>
89+
tracer.startActiveSpan("my-tool", async (span) => {
90+
try {
91+
const result = await doWork(args);
92+
return result;
93+
} finally {
94+
span.end();
95+
}
96+
})
97+
);
98+
});
99+
```
100+
101+
## Further reading
102+
103+
* [OpenTelemetry GenAI semantic conventions](https://opentelemetry.io/docs/specs/semconv/gen-ai/) in the OpenTelemetry documentation
104+
* [OpenTelemetry MCP semantic conventions](https://opentelemetry.io/docs/specs/semconv/gen-ai/mcp/) in the OpenTelemetry documentation
105+
* [OpenTelemetry Python SDK](https://opentelemetry.io/docs/instrumentation/python/) in the OpenTelemetry documentation

0 commit comments

Comments
 (0)