Wann Clientinformationen festgelegt werden sollen
Legen Sie Clientinformationen fest, wenn Ihre SDK-Anwendung ein anderes Produkt, einen dienst oder eine bestimmte Integration darstellt, deren Laufzeitaktivität konsistent zugeordnet werden soll.
Lassen Sie die Clientinformationen für Skripts, einmalige Tools und Jobs, die keine eigenständige Anwendung darstellen, nicht festlegen. Die Laufzeit behält dann die Standardzuordnung bei.
Clientinformationen enthalten vier optionale Zeichenfolgenfelder. Legen Sie die Felder fest, die Sie kennen, und lassen Sie den Rest aus. Das SDK enthält Clientinformationen nur dann im server.connect Handshake, wenn mindestens ein Feld einen nicht leeren Wert aufweist.
| Feld | Example | Bedeutung |
|---|---|---|
applicationName | "vscode" | Name der Anwendung mit dem SDK |
application | "1.124.2" | Version der Anwendung mit dem SDK |
integrationName | "copilot-chat" | Name der Erweiterung, des Plug-Ins oder eines anderen Anwendungsunterteils mithilfe des SDK |
integration | "0.54.0" | Version der Erweiterung, des Plug-Ins oder des Unterteils der Anwendung |
Legen Sie für eine eigenständige Anwendung ohne eine eindeutige Integration nur die Anwendungsfelder fest. Ein Entwicklerportal könnte beispielsweise "acme-developer-portal" auf applicationVersion und "2.4.0" auf applicationName setzen, wobei beide Integrationsfelder nicht festgelegt bleiben.
Das SDK sendet Clientinformationen einmal, wenn sie die Verbindung herstellt. Die Identität gilt für die Lebensdauer dieser Verbindung.
Konfigurieren von Clientinformationen
Übergeben Sie Clientinformationen, wenn Sie den Client erstellen:
import { CopilotClient } from "@github/copilot-sdk";
const client = new CopilotClient({
clientInfo: {
applicationName: "vscode",
applicationVersion: "1.124.2",
integrationName: "copilot-chat",
integrationVersion: "0.54.0",
},
});
await client.start();
from copilot import CopilotClient
client = CopilotClient(
client_info={
"application_name": "vscode",
"application_version": "1.124.2",
"integration_name": "copilot-chat",
"integration_version": "0.54.0",
},
)
await client.start()
client := copilot.NewClient(&copilot.ClientOptions{
ClientInfo: &copilot.ClientInfo{
ApplicationName: "vscode",
ApplicationVersion: "1.124.2",
IntegrationName: "copilot-chat",
IntegrationVersion: "0.54.0",
},
})
if err := client.Start(ctx); err != nil {
return err
}
using GitHub.Copilot;
await using var client = new CopilotClient(new CopilotClientOptions
{
ClientInfo = new CopilotClientInfo
{
ApplicationName = "vscode",
ApplicationVersion = "1.124.2",
IntegrationName = "copilot-chat",
IntegrationVersion = "0.54.0",
},
});
await client.StartAsync();
var options = new CopilotClientOptions()
.setClientInfo(new ClientInfo()
.setApplicationName("vscode")
.setApplicationVersion("1.124.2")
.setIntegrationName("copilot-chat")
.setIntegrationVersion("0.54.0"));
var client = new CopilotClient(options);
client.start().get();
use github_copilot_sdk::{Client, ClientInfo, ClientOptions};
let client = Client::start(
ClientOptions::new().with_client_info(
ClientInfo::new()
.with_application_name("vscode")
.with_application_version("1.124.2")
.with_integration_name("copilot-chat")
.with_integration_version("0.54.0"),
),
)
.await?;
Hinweise
- Client-Informationen dienen nur zur Orientierung. Die Laufzeit kann Werte ignorieren, die nicht mit dem erwarteten Format übereinstimmen, z. B. eine ungültige Versionszeichenfolge.
- Das Festlegen von Client-Informationen ändert, wie die Laufzeit ihre Telemetriedaten zuordnet. Es ändert nicht, was die Laufzeitumgebung aufzeichnet.
- Wenn alle Felder nicht gesetzt oder leer sind, übermittelt das SDK beim Handshake keine Client-Informationen, und die Laufzeit behält ihre standardmäßige Attribution bei.