Skip to main content

Configuração do repositório para o GitHub aplicativo Copilot

Defina instruções, scripts e comportamento de automação específicos do repositório para o aplicativo GitHub Copilot.

Quem pode usar esse recurso?

aplicativo GitHub Copilot está disponível para todos os Copilot planos.
Download aplicativo GitHub Copilot

Use .github/github-app.yml em seu repositório para definir como o aplicativo GitHub Copilot deve se comportar para esse projeto.

Você também pode editar essas configurações de projeto na interface do usuário do aplicativo. Se .github/github-app.yml já existir, as alterações de interface do usuário serão gravadas de volta nesse arquivo. Se ele ainda não existir, você poderá criá-lo a partir das configurações atuais do projeto no aplicativo.

Sobre o local do arquivo de configuração

Crie o arquivo em:

Text
.github/github-app.yml

O aplicativo também dá suporte ao nome de arquivo herdado .github/copilot-desktop.yml para compatibilidade com versões anteriores.

Para obter as etapas de personalização baseadas em interface do usuário, consulte Personalizando a aplicativo Copilot do GitHub.

Examinar e confiar na configuração

Quando o aplicativo detecta uma configuração do repositório, ele não aplica instruções de repositório, scripts ou outras configurações do arquivo até que você examine e aceite a configuração. Isso protege você contra a execução de comandos ou a aplicação de configurações que foram adicionadas por outro colaborador. As configurações que você cria ou atualiza por meio da interface do usuário do aplicativo são confiáveis automaticamente.

Aviso

Antes de aceitar uma configuração de repositório, examine cada comando configurado e as dependências que ele executa. Os scripts e seus processos filho recebem as GitHub credenciais descritas posteriormente neste artigo, portanto, nunca configure-os para registrar ou persistir essas variáveis de ambiente.

Se o arquivo for alterado fora do aplicativo, incluindo alterações no espaço em branco ou comentários, você deverá examinar e aceitar a configuração atualizada antes que o aplicativo a aplique. Até que você aceite a versão atual, o aplicativo continua a usar as configurações de projeto que foram configuradas anteriormente no aplicativo.

Configuração de exemplo

YAML
instructions: |
  Use bun instead of npm.

scripts:
  - name: Setup
    command: bun install
    triggers:
      - session.create
  - name: Run
    command: bun run dev
  - name: Archive cleanup
    command: rm -rf node_modules
    triggers:
      - session.archive

server_ready_pattern: '(?i)Local:\s+(https?://\S+)'
auto_open_in_browser: true

automation:
  auto_issue_session: true
  remote_control: false

Configurar instruções e scripts

instructions

Use instructions para adicionar diretrizes específicas do repositório ao prompt do sistema para sessões no projeto. Se você também configurar instruções globais no aplicativo, as instruções globais serão aplicadas primeiro, seguidas pelas instruções do projeto.

scripts

Use scripts para definir comandos que aparecem no aplicativo e podem ser executados manualmente ou em gatilhos específicos.

Cada item de script dá suporte a:

  • name (string): Nome de exibição na interface do usuário.
  • command (string): Comando a ser executado.
  • triggers (string[]opcional): eventos que executam automaticamente o script.

Scripts sem triggers são manuais.

Valores de gatilho

Use valores de gatilho canônicos em seu arquivo:

  • session.create
  • session.archive

O aplicativo também aceita esses aliases herdados ao analisar arquivos existentes:

  • workspace.create (alias for session.create)
  • workspace.archive (alias for session.archive)

Quando um script disparado é executado, COPILOT_SCRIPT_TRIGGER é definido como o valor canônico:

  • session.create
  • session.archive

Configurar a detecção de servidor e o comportamento do navegador

server_ready_pattern

server_ready_pattern é uma expressão regular usada para detectar quando um script de execução iniciou um servidor.

Os padrões usam a sintaxe compatível com o crate do regex Rust. Para obter detalhes de sintaxe, consulte Sintaxe na documentação do crate. Se o padrão for inválido, o aplicativo usará seu padrão de detecção de servidor padrão.

Use um primeiro grupo de captura para a URL ou porta detectada. O aplicativo lê o grupo 1de captura:

  • Se a captura for uma URL (http://... ou https://...), a URL será usada.
  • Se a captura for apenas um número de porta (por exemplo 3000), o aplicativo a converterá http://localhost:3000em .

auto_open_in_browser

Se auto_open_in_browser estiver true, o aplicativo abrirá a URL de execução detectada no navegador integrado. Se esse campo for omitido, o padrão efetivo será true.

Configurar o comportamento da automação

Defina as opções de automação em automation:

  • automation.auto_issue_session (boolean) controla se o aplicativo inicia automaticamente uma sessão com contexto de problema. Se omitido, o padrão efetivo será true.
  • automation.remote_control (boolean) controla se as sessões podem ser acessadas na interface da GitHub Web ou GitHub Mobile. Se omitido, o padrão efetivo será false.

Se o seu Copilot assento for proveniente de uma organização, a política aplicável "Armazenar sessões locais na nuvem" deverá ser definida como "Exibir e controlar" para que o controle remoto esteja disponível. As configurações gerenciadas pela remoteControl empresa podem restringir ainda mais o controle remoto mesmo quando automation.remote_control for true. Para obter mais informações, consulte Sobre o controle remoto de CLI do GitHub Copilot sessões e Configurações gerenciadas pela empresa.

Variáveis de ambiente de runtime para scripts

Os scripts são executados com essas variáveis de ambiente fornecidas pelo aplicativo:

VariableDescrição
COPILOT_WORKSPACE_NAMENome do workspace atual.
COPILOT_WORKSPACE_PATHCaminho absoluto para o workspace.
COPILOT_ROOT_PATHCaminho absoluto para o check-out raiz do projeto.
COPILOT_DEFAULT_BRANCHProject branch padrão.
COPILOT_PORTPorta WebSocket do aplicativo para o contexto atual do workspace.
COPILOT_SCRIPT_TRIGGERGatilho que iniciou o script (definido apenas para scripts disparados).
GH_TOKENToken para a conta selecionada GitHub .
GH_HOSTHospedar para a conta selecionada GitHub .
COPILOT_GH_ACCOUNT_*Tokens específicos de host e conta para cada conta assinada, incluindo a conta selecionada.

Para cada COPILOT_GH_ACCOUNT_* variável, o aplicativo reduz o host e o logon, deixa as letras e dígitos ASCII inalterados e substitui todos os outros bytes UTF-8 por seu valor hexadecimal maiúsculo cercado por sublinhados. O nome da variável usa o formato COPILOT_GH_ACCOUNT_<HOST>_<LOGIN>. Por exemplo, o token para alice ativado github.com é COPILOT_GH_ACCOUNT_github_2E_com_alice, e o token para user ativado ghe-example.com é COPILOT_GH_ACCOUNT_ghe_2D_example_2E_com_user.

Compatibilidade herdada

Para compatibilidade com versões anteriores, o aplicativo ainda pode analisar a forma mais antiga baseada em scripts objeto:

YAML
scripts:
  setup: bun install
  run: bun run dev
  archive: rm -rf node_modules

Nesta forma herdada:

  • setup mapeia para um script com o gatilho create.
  • archive mapeia para um script com o gatilho de arquivo morto.
  • run mapeia para entradas de script manuais e pode ser uma única cadeia de caracteres de comando ou uma lista de { name, command } objetos.