Skip to main content

Аутентификация с помощью Copilot SDK

Выберите метод аутентификации, GitHub Copilot SDK который лучше подходит вашему сценарию развертывания.

Кто может использовать эту функцию?

GitHub Copilot SDK Доступна со всеми Copilot тарифными планами.

Примечание.

Второй пилот SDK в настоящее время находится в Публичный предварительный просмотр. Функциональность и доступность могут меняться.

Обзор методов аутентификации

          GitHub Copilot SDK Поддерживает несколько методов аутентификации для различных сценариев использования.

| Метод | Сценарий использования | Copilot Требуется подписка | |--------|----------|-------------------------------| | Пользователь GitHub, вошедший в систему | Интерактивные приложения, в которых пользователи входят GitHub | Да | | Приложение OAuth GitHub | Приложения, действующие от имени пользователей через OAuth | Да | | переменные среды | CI/CD, автоматизация, сервер-сервер | Да | | БЁК (принеси свой ключ) | Использование собственных API-ключей (Azure AI Foundry, OpenAI и др.) | Нет |

Пользователь GitHub, вошедший в систему

Это стандартный метод аутентификации при интерактивном запуске GitHub Copilot CLI , см. Аутентификация GitHub Copilot CLI. Пользователи аутентифицируются через GitHub поток устройств OAuth, а SDK использует их сохранённые учетные данные.

          **Принцип работы**.
  1. Пользователь запускает copilot CLI и входит через GitHub OAuth.

  2. Учетные данные надёжно хранятся в системном ключе.

  3. SDK автоматически использует сохранённые учетные данные.

           **Конфигурация SDK:**
    
import { CopilotClient } from "@github/copilot-sdk";

// Default: uses signed-in user credentials
const client = new CopilotClient();

Для примеров на других языках см. раздел «Аутентификация в github/copilot-sdk репозитории».

          **Когда использовать этот метод:**
  • Настольные приложения, где пользователи взаимодействуют напрямую
  • среды для разработки и тестирования;
  • Любой сценарий, когда пользователь может войти интерактивно

OAuth GitHub App

Используйте приложение OAuth GitHub для аутентификации пользователей через ваше приложение и передачи их учетных данных SDK. Это позволяет вашему приложению делать GitHub Copilot запросы на API от имени пользователей, которые авторизируют ваше приложение.

          **Принцип работы**.
  1. Пользователь авторизирует ваше приложение OAuth GitHub .

  2. Ваше приложение получает пользовательский токен доступа (gho_ или ghu_ префикс).

  3. Передайте токен SDK через опцию githubToken .

           **Конфигурация SDK:**
    
import { CopilotClient } from "@github/copilot-sdk";

const client = new CopilotClient({
    githubToken: userAccessToken,  // Token from OAuth flow
    useLoggedInUser: false,        // Don't use stored CLI credentials
});

Для примеров на других языках см. раздел «Аутентификация в github/copilot-sdk репозитории».

          **Поддерживаемые типы токенов:**
  • gho_ — OAuth пользовательские токены доступа

  • ghu_ — GitHub Токены доступа пользователей приложений

  • github_pat_ — Fine-grained personal access tokens

            **Не поддерживаются:**
    
  • ghp_ — Personal access tokens (classic) (закрывается)

            **Когда использовать этот метод:**
    
  • Веб-приложения, в которые пользователи входят через GitHub

  • Приложения программного обеспечения как услуги (SaaS), построенные на основе GitHub Copilot

  • Любое многопользовательское приложение, где нужно делать запросы от имени разных пользователей

Переменные среды

Для автоматизации, CI/CD конвейеров и сценариев сервер-сервер можно аутентифицировать с помощью переменных среды.

          **Поддерживаемые переменные среды (в порядке приоритета):**

1. COPILOT_GITHUB_TOKEN — Рекомендуется для явного Copilot использования 1. GH_TOKEN — GitHub CLI совместимым 1. GITHUB_TOKEN — GitHub Actions совместимым

SDK автоматически обнаруживает и использует эти переменные среды без необходимости изменения кода:

import { CopilotClient } from "@github/copilot-sdk";

// Token is read from environment variable automatically
const client = new CopilotClient();
          **Когда использовать этот метод:**
  • CI/CD конвейеры (GitHub Actions, Jenkins и др.)
  • Автоматическое тестирование
  • Серверные приложения с сервисными аккаунтами
  • Разработка, когда вы не хотите использовать интерактивный вход

БЁК (принеси свой ключ)

BYOK позволяет использовать собственные API-ключи от поставщиков моделей, таких как Azure AI Foundry, OpenAI или Anthropic. Это полностью обходит GitHub Copilot аутентификацию.

          **Ключевые преимущества:**
  • Подписка не GitHub Copilot требуется
  • Использование корпоративных моделей
  • Прямое выставление счетов у вашего поставщика модели
  • Поддержка совместимых с Azure AI Foundry, OpenAI, Anthropic и OpenAI конечных точек

Полные инструкции по установке, включая параметры настройки провайдера, ограничения и примеры кода, см. приносите свой ключ (BYOK).

Приоритет аутентификации

Когда доступно несколько методов аутентификации, SDK использует их в следующем порядке приоритета:

  1.        **Явно `githubToken`** — Токен передавался напрямую конструктору SDK
    
  2.        **Токен прямого API** — `GITHUB_COPILOT_API_TOKEN` с `COPILOT_API_URL`
    
  3.        **Токены переменных среды** — `COPILOT_GITHUB_TOKEN` → `GH_TOKEN` → `GITHUB_TOKEN`
    
  4.        **Сохранённые учетные данные OAuth** — из предыдущего `copilot` входа в CLI
    
  5.        **
           GitHub CLI
           ** — `gh auth` полномочия
    

Отключение автовхода

Чтобы предотвратить автоматическое использование SDK сохранённых учетных данных или GitHub CLI аутентификации, установить useLoggedInUser опцию на false:

const client = new CopilotClient({
    useLoggedInUser: false,  // Only use explicit tokens
});

Для примеров на других языках см. раздел «Аутентификация в github/copilot-sdk репозитории».

Дальнейшие действия