Por padrão, o fluxo de trabalho GitHub Actions de uma configuração de pré-compilação só pode acessar o conteúdo do próprio repositório. Seu projeto pode usar recursos adicionais, localizados em outro lugar, para criar o ambiente de desenvolvimento.
Permitir que um prebuild tenha acesso de leitura a recursos externos
Você pode configurar acesso de leitura a outros repositórios GitHub, com o mesmo proprietário, especificando permissões no arquivo devcontainer.json usado pela sua configuração de pré-compilação. Para saber mais, confira Gerenciar o acesso a outros repositórios em seu codespace.
Observação
- Você só pode autorizar permissões de leitura dessa forma, e o proprietário do repositório de destino deve ser o mesmo que o proprietário do repositório para o qual você está criando um prebuild. Por exemplo, se você estiver criando uma configuração de pré-build para o
octo-org/octocatrepository, poderá conceder permissões de leitura para outros repositórios, comoocto-org/octodemo, se isso for especificado no arquivodevcontainer.jsone desde que você tenha as permissões. - Não é possível usar curingas para especificar repositórios. Você deve definir permissões para cada repositório ao qual deseja conceder acesso.
Ao criar ou editar uma configuração de prebuild para um arquivo devcontainer.json que configura o acesso de leitura para outros repositórios com o mesmo proprietário do repositório, você deverá conceder essas permissões quando clicar em Criar ou Atualizar. Para saber mais, confira Configurando as pré-compilações.
Permitir que um prebuild tenha acesso para gravação em recursos externos
Se o projeto exigir acesso de gravação aos recursos ou se os recursos externos residirem em um repositório com um proprietário diferente do repositório para o qual você está criando uma configuração de pré-buil, você poderá usar um personal access token para conceder esse acesso.
Você precisará criar uma nova conta pessoal e, em seguida, usar essa conta para criar uma personal access token (classic) com os escopos apropriados.
-
Crie uma nova conta pessoal em GitHub.
Aviso
Embora você possa gerar o personal access token (classic) usando sua conta pessoal existente, recomendamos fortemente criar uma nova conta com acesso apenas aos repositórios de destino necessários para o seu cenário. Isso porque a permissão
repositorydo token de acesso permite acesso em todos os repositórios aos quais a conta tem acesso. Para saber mais, confira Criando uma conta no GitHub e Referência de uso seguro. -
Dê a nova conta acesso de leitura aos repositórios necessários. Para saber mais, confira Gerenciar o acesso de um indivíduo a um repositório da organização.
-
Enquanto estiver conectado à nova conta, crie um personal access token (classic) com o
repoescopo. Opcionalmente, se o prebuild precisar baixar pacotes a partir de GitHubContainer registry, selecione também o escoporead:packages. Para saber mais, confira Gerenciar seus tokens de acesso pessoal.
Se o pré-build usar um pacote de GitHubContainer registry, você precisará conceder à nova conta acesso ao pacote ou configurar o pacote para herdar as permissões de acesso do repositório para o qual você está fazendo o pré-build. Para saber mais, confira Configurando o controle de acesso e visibilidade de um pacote.
-
Copie a string do token. Você atribuirá isso a um segredo de repositório Codespaces.
-
Efetue novamente o login na conta com acesso de administrador ao repositório.
-
No repositório para o qual você deseja criar GitHub Codespaces prebuilds, crie um novo Codespaces secret do repositório chamado
CODESPACES_PREBUILD_TOKEN, definindo como valor o token que você criou e copiou. Para saber mais, confira Gerenciando segredos de ambiente de desenvolvimento para seu repositório ou organização.
O personal access token será usado para todas as compilações prévias seguintes criadas para o seu repositório. Ao contrário de outros Codespaces segredos de repositório, o segredo CODESPACES_PREBUILD_TOKEN é usado apenas para a pré-compilação e não estará disponível para uso em codespaces criados do seu repositório.