{"meta":{"title":"Configuração do repositório para o GitHub aplicativo Copilot","intro":"Defina instruções, scripts e comportamento de automação específicos do repositório para o GitHub Copilot app.","product":"GitHub Copilot","breadcrumbs":[{"href":"/pt/copilot","title":"GitHub Copilot"},{"href":"/pt/copilot/reference","title":"Referência"},{"href":"/pt/copilot/reference/github-copilot-app-reference","title":"GitHub Copilot app referência"},{"href":"/pt/copilot/reference/github-copilot-app-reference/repository-configuration","title":"Configuração do repositório"}],"documentType":"article"},"body":"# Configuração do repositório para o GitHub aplicativo Copilot\n\nDefina instruções, scripts e comportamento de automação específicos do repositório para o GitHub Copilot app.\n\nUse `.github/github-app.yml` em seu repositório para definir como o GitHub Copilot app deve se comportar para esse projeto.\n\nVocê 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.\n\n## Sobre o local do arquivo de configuração\n\nCrie o arquivo em:\n\n```text copy\n.github/github-app.yml\n```\n\nO aplicativo também dá suporte ao nome de arquivo herdado `.github/copilot-desktop.yml` para compatibilidade com versões anteriores.\n\nPara ver as etapas de personalização baseadas na interface do usuário, consulte [Personalizando a aplicativo Copilot do GitHub](/pt/copilot/how-tos/github-copilot-app/customize-github-copilot-app).\n\n## Examinar e confiar na configuração\n\nQuando 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.\n\n> \\[!WARNING]\n> 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.\n\nSe 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.\n\n## Configuração de exemplo\n\n```yaml copy\ninstructions: |\n  Use bun instead of npm.\n\nscripts:\n  - name: Setup\n    command: bun install\n    triggers:\n      - session.create\n  - name: Run\n    command: bun run dev\n  - name: Archive cleanup\n    command: rm -rf node_modules\n    triggers:\n      - session.archive\n\nserver_ready_pattern: '(?i)Local:\\s+(https?://\\S+)'\nauto_open_in_browser: true\n\nautomation:\n  auto_issue_session: true\n  remote_control: false\n```\n\n## Configurar instruções e scripts\n\n### `instructions`\n\nUse o `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.\n\n### `scripts`\n\nUse `scripts` para definir comandos que aparecem no aplicativo e podem ser executados manualmente ou em gatilhos específicos.\n\nCada item de script dá suporte a:\n\n* `name` (`string`): Nome de exibição na interface do usuário.\n* `command` (`string`): Comando a ser executado.\n* `triggers` (`string[]`opcional): eventos que executam automaticamente o script.\n\nScripts sem `triggers` são manuais.\n\n### Valores de gatilho\n\nUse os valores de gatilho canônicos em seu arquivo:\n\n* `session.create`\n* `session.archive`\n\nO aplicativo também aceita esses aliases herdados ao analisar arquivos existentes:\n\n* `workspace.create` (alias de `session.create`)\n* `workspace.archive` (alias de `session.archive`)\n\nQuando um script disparado é executado, `COPILOT_SCRIPT_TRIGGER` é definido como o valor canônico:\n\n* `session.create`\n* `session.archive`\n\n## Configurar a detecção de servidor e o comportamento do navegador\n\n### `server_ready_pattern`\n\n`server_ready_pattern` é uma expressão regular usada para detectar quando um script de execução iniciou um servidor.\n\nOs padrões usam a sintaxe suportada pelo crate `regex` do Rust. Para obter detalhes de sintaxe, consulte [Syntax](http://gfffh22e371b9eff0451es5990p9w96nf56oo0.ffgi.yc2.bjmu.edu.cn/regex/1/regex/#syntax) 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.\n\nUse um primeiro grupo de captura para a URL ou porta detectada. O aplicativo lê o grupo de captura `1`:\n\n* Se a captura for uma URL (`http://...` ou `https://...`), a URL será usada.\n* Se a captura for apenas um número de porta (por exemplo `3000`), o aplicativo a converte em `http://localhost:3000`.\n\n### `auto_open_in_browser`\n\nSe `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`.\n\n## Configurar o comportamento da automação\n\nDefina as opções de automação abaixo de `automation`:\n\n* `automation.auto_issue_session` (`boolean`) controla se o aplicativo inicia automaticamente uma sessão com contexto de problema. Se omitido, o padrão efetivo é `true`.\n* `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 é `false`.\n\nSe a sua Copilot licença 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 organização `remoteControl` podem restringir ainda mais o controle remoto mesmo quando `automation.remote_control` for `true`. Para obter mais informações, consulte [Controle remoto das GitHub Copilot CLI sessões](/pt/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-remote-control) e [Configurações gerenciadas pela empresa](/pt/copilot/reference/enterprise-administrators/enterprise-managed-settings).\n\n## Variáveis de ambiente de runtime para scripts\n\nOs scripts são executados com essas variáveis de ambiente fornecidas pelo aplicativo:\n\n| Variable                 | Descrição                                                                                              |\n| ------------------------ | ------------------------------------------------------------------------------------------------------ |\n| `COPILOT_WORKSPACE_NAME` | Nome do workspace atual.                                                                               |\n| `COPILOT_WORKSPACE_PATH` | Caminho absoluto para o workspace.                                                                     |\n| `COPILOT_ROOT_PATH`      | Caminho absoluto para o checkout da raiz do projeto.                                                   |\n| `COPILOT_DEFAULT_BRANCH` | Ramificação padrão do projeto.                                                                         |\n| `COPILOT_PORT`           | Porta WebSocket do aplicativo para o contexto atual do workspace.                                      |\n| `COPILOT_SCRIPT_TRIGGER` | Gatilho que iniciou o script (definido apenas para scripts disparados).                                |\n| `GH_TOKEN`               | Token para a GitHub conta selecionada.                                                                 |\n| `GH_HOST`                | Host da conta selecionada GitHub.                                                                      |\n| `COPILOT_GH_ACCOUNT_*`   | Tokens específicos de host e conta para cada conta com sessão iniciada, incluindo a conta selecionada. |\n\nPara cada variável `COPILOT_GH_ACCOUNT_*`, o aplicativo converte o host e o login para minúsculas, 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` em `github.com` é `COPILOT_GH_ACCOUNT_github_2E_com_alice`, e o token para `user` em `ghe-example.com` é `COPILOT_GH_ACCOUNT_ghe_2D_example_2E_com_user`.\n\n## Compatibilidade legada\n\nPara compatibilidade com versões anteriores, o aplicativo ainda pode analisar o formato mais antigo baseado em objeto `scripts`:\n\n```yaml copy\nscripts:\n  setup: bun install\n  run: bun run dev\n  archive: rm -rf node_modules\n```\n\nNesta shape legada:\n\n* `setup` mapeia para um script com o gatilho create.\n* `archive` mapeia para um script com o gatilho de arquivamento.\n* `run` mapeia para entradas de script manuais e pode ser uma única cadeia de caracteres de comando ou uma lista de `{ name, command }` objetos."}