Por padrão, o fluxo de trabalho de GitHub Actions para uma configuração de pré-compilação só pode acessar o próprio conteúdo do 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 o acesso de leitura para outros repositórios do GitHub, com o mesmo proprietário do repositório, especificando permissões no arquivo devcontainer.json
usado pela configuração de prebuild. Para obter mais informações, confira "Gerenciar o acesso a outros repositórios em seu codespace".
Observações:
- 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, comoasocto-org/octodemo
, se isso for especificado no arquivodevcontainer.json
e 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 obter mais informações, confira "Configurando as pré-criações".
Permitir que um prebuild tenha acesso para gravação em recursos externos
Se o projeto exigir acesso para gravação em recursos ou se os recursos externos residirem em um repositório com proprietário diferente do que o do repositório em que você está criando uma configuração de pré-build, use um personal access token para permitir esse acesso.
Você precisará criar uma conta pessoal e usá-la para criar um personal access token (classic) com os escopos adequados.
-
Crie uma nova conta pessoal em GitHub.
Aviso: embora você possa gerar o personal access token (classic) usando a conta pessoal existente, recomendamos expressamente a criação de uma conta com acesso somente aos repositórios de destino necessários para o cenário. Isso porque a permissão
repository
do token de acesso permite acesso em todos os repositórios aos quais a conta tem acesso. Para obter mais informações, confira "Criar uma conta no GitHub" e "Fortalecimento de segurança para o GitHub Actions." -
Dê a nova conta acesso de leitura aos repositórios necessários. Para obter mais informações, confira "Gerenciar o acesso de um indivíduo a um repositório da organização".
-
Ao entrar na nova conta, crie um personal access token (classic) com o escopo
repo
. Opcionalmente, se o pré-build precisar baixar pacotes do GitHub Container registry, selecione também o escoporead:packages
. Para obter mais informações, confira "Gerenciar seus tokens de acesso pessoal".Se a pré-compilação usar um pacote do GitHub Container registry, você deverá conceder o novo acesso à nova conta ao pacote ou configurar o pacote para herdar as permissões de acesso do repositório que você está pré-compilando. Para obter mais informações, confira "Configurando o controle de acesso e visibilidade de um pacote".
-
Copie a string do token. Você irá atribuir isto a um segredo de repositório de Codespaces.
-
Efetue novamente o login na conta com acesso de administrador ao repositório.
-
No repositório para o qual você deseja criar o pré-build dos GitHub Codespaces, crie um segredo de repositório do Codespaces chamado
CODESPACES_PREBUILD_TOKEN
, fornecendo o valor do token que já criou e copiou. Para obter mais informações, confira "Gerenciando segredos do ambiente de desenvolvimento para seu repositório ou organização".
O personal access token será usado para todos os próximos pré-buids criados para o repositório. Ao contrário de outros segredos de repositório do Codespaces, o segredo CODESPACES_PREBUILD_TOKEN
é usado apenas para pré-builds e não estará disponível para uso em codespaces criados por meio do seu repositório.