Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

Autenticação em um fluxo de trabalho

GitHub fornece um token que você pode usar para autenticar em nome de GitHub Actions.

GitHub Actions está disponível com GitHub Free, GitHub Pro, GitHub Free para organizações, GitHub Team, GitHub Enterprise Cloud e GitHub AE. GitHub Actions não está disponível para repositórios privados pertencentes a contas usando os planos de legado por repositório. Para obter mais informações, consulte "produtos de GitHub

Sobre o segredo GITHUB_TOKEN

O GitHub cria automaticamente um segredo GITHUB_TOKEN para uso no fluxo de trabalho. Você pode usar o GITHUB_TOKEN para autenticar em uma execução de fluxo de trabalho.

Ao habilitar GitHub Actions, GitHub instala um aplicativo GitHub no seu repositório. O segredo GITHUB_TOKEN é um token de acesso de instalação aplicativo GitHub. Você pode usar o token de acesso de instalação para autenticar em nome do aplicativo GitHub instalado no seu repositório. As permissões do token são restritas ao repositório do fluxo de trabalho. Para obter mais informações, consulte "Permissões para o GITHUB_TOKEN".

Antes de iniciar cada trabalho, GitHub busca um token de acesso de instalação para o trabalho. O token expira quando o trabalho é concluído.

O token também está disponível no contexto github.token. Para obter mais informações, consulte "Contexto e sintaxe de expressão para GitHub Actions".

Usar o GITHUB_TOKEN em um fluxo de trabalho

Você pode usar o GITHUB_TOKEN ao usar a sintaxe padrão para fazer referência a segredos: ${{ secrets.GITHUB_TOKEN }}. Exemplos de uso do GITHUB_TOKEN incluem passar o token como uma entrada para uma ação ou usá-lo para fazer uma solicitação da API de GitHub autenticada.

Importante: Uma ação pode acessar o GITHUB_TOKEN por meio do contexto github.token, mesmo que o fluxo de trabalho não passe explicitamente o GITHUB_TOKEN para a ação. Como uma boa prática de segurança, você deve sempre certificar-se de que as ações só têm o acesso mínimo necessário limitando as permissões concedidas ao GITHUB_TOKEN. Para obter mais informações, consulte "Permissões para o GITHUB_TOKEN".

Quando você utiliza o GITHUB_TOKEN do repositório para executar tarefas em nome do aplicativo GitHub Actions , eventos acionados pelo GITHUB_TOKEN não criarão uma nova execução de fluxo de trabalho. Isso impede que você crie execuções de fluxo de trabalho recursivo. Por exemplo, se um fluxo de trabalho executar código pushes usando o GITHUB_TOKEN, um novo fluxo de trabalho não será executado mesmo quando o repositório contém um fluxo de trabalho configurado para ser executado quando ocorrerem eventos push.

Exemplo 1: Passar o GITHUB_TOKEN como uma entrada

Este exemplo de fluxo de trabalho usa a ação etiquetadora, que exige o GITHUB_TOKEN como o valor para o parâmetro de entrada do token:

name: Pull request labeler

on: [ pull_request_target ]

permissions:
  contents: read
  pull-requests: write

jobs:
  triage:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/labeler@v2
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}

Exemplo 2: chamando a API REST

Você pode usar o GITHUB_TOKEN para fazer chamadas de API autenticada. Este exemplo de fluxo de trabalho cria um problema usando a API REST de GitHub:

name: Create issue on commit

on: [ push ]

jobs:
  create_commit:
    runs-on: ubuntu-latest 
    permissions:
      issues: write 
    steps:
      - name: Create issue using REST API
        run: 
          curl --request POST \
          --url https://api.github.com/repos/${{ github.repository }}/issues \
          --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
          --header 'content-type: application/json' \
          --data '{
            "title": "Automated issue for commit: ${{ github.sha }}",
            "body": "This issue was automatically created by the GitHub Action workflow **${{ github.workflow }}**. \n\n O hash do commit foi: _${{ github.sha }}_."
            }' \
          --fail

Permissões para o GITHUB_TOKEN

Para obter informações sobre quais os pontos de extremidade da API de Aplicativos do GitHub podem acessar com cada permissão, consulte "Permissões de aplicativo GitHub."

A tabela a seguir mostra as permissões concedidas ao GITHUB_TOKEN por padrão. As pessoas com permissões de administrador para uma empresa, organização ou repositório podem definir as permissões padrão como permissivas ou restritas. Para obter mais informações sobre como definir as permissões padrão para GITHUB_TOKEN para a sua empresa, organização ou repositório, consulte "Aplicar políticas de GitHub Actions na sua conta corporativa," "Desabilitar ou limitar GitHub Actions para a sua organizaçãon," ou "Desabilitar ou limitar GitHub Actions para um repositório."

EscopoAcesso padrão
(permissivo)
Acesso padrão
(restrito)
Acesso máximo
por repositórios bifurcados
açõesleitura/gravaçãonenhumleitura
Verificaçõesleitura/gravaçãonenhumleitura
Conteúdoleitura/gravaçãoleituraleitura
Implantaçõesleitura/gravaçãonenhumleitura
Problemasleitura/gravaçãonenhumleitura
metadadosleituraleituraleitura
pacotesleitura/gravaçãonenhumleitura
Pull requestsleitura/gravaçãonenhumleitura
Projetos de repositórioleitura/gravaçãonenhumleitura
eventos de segurançaleitura/gravaçãonenhumleitura
Statusleitura/gravaçãonenhumleitura

Observação: As execuções de fluxo de trabalho acionadas por pull requests de Dependabot são executadas como se fossem de um repositório bifurcado, usando, portanto um GITHUB_TOKEN apenas leitura. Estas execuções de fluxo de trabalho não podem acessar nenhum segredo. See "Keeping your GitHub Actions and workflows secure: Preventing pwn requests" for strategies to keep these workflows secure.

Modificar as permissões para o GITHUB_TOKEN

Você pode modificar as permissões para o GITHUB_TOKEN nos arquivos de fluxo de trabalho individuais. Se as permissões padrão para o GITHUB_TOKEN forem restritivas, você poderá ter que elevar as permissões para permitir que algumas ações e comandos sejam executados com sucesso. Se as permissões padrão forem permissivas, você poderá editar o arquivo do fluxo de trabalho para remover algumas permissões do GITHUB_TOKEN. Como uma boa prática de segurança, você deve conceder ao GITHUB_TOKEN o acesso menos necessário.

Você pode ver as permissões que o GITHUB_TOKEN tem para uma tarefa específica na seção "Configurar trabalho" no registro de execução do fluxo de trabalho. Para obter mais informações, consulte "Usar registros de execução do fluxo de trabalho".

Você pode usar a chave de permissões no seu arquivo de fluxo de trabalho para modificar as permissões para o GITHUB_TOKEN para um fluxo de trabalho inteiro ou para trabalhos individuais. Isso permite que você configure as permissões mínimas necessárias para um fluxo de trabalho ou trabalho. Quando a chave permissions for usada, todas as permissões não especificadas são configuradas como sem acesso, com exceção do escopo de metadados, que sempre recebe acesso de leitura.

You can use the permissions key to add and remove read permissions for forked repositories, but typically you can't grant write access. The exception to this behavior is where an admin user has selected the Send write tokens to workflows from pull requests option in the GitHub Actions settings. For more information, see "Disabling or limiting GitHub Actions for a repository."

Os dois exemplos de fluxo de trabalho anteriores neste artigo mostram a chave de permissões usada no nível de fluxo de trabalho e no nível de trabalho. Em Exemplo 1 as duas permissões são especificadas para todo o fluxo de trabalho. No Exemplo 2 de acesso de gravação é concedido para um único escopo para um único trabalho.

Para obter detalhes completos sobre a chave de permissões, consulte "Sintaxe de fluxo de trabalho para GitHub Actions.

Como as permissões são calculadas para um trabalho de fluxo de trabalho

As permissões para o GITHUB_TOKEN são inicialmente definidas como a configuração padrão para a empresa, organização ou repositório. Se o padrão for definido como permissões restritas em qualquer um desses níveis, isso irá aplicar-se aos repositórios relevantes. Por exemplo, Se você escolher o padrão restrito no nível da organização, todos os repositórios nessa organização usarão as permissões restritas como padrão. As permissões serão, então, ajustadas com base em qualquer configuração dentro do arquivo de fluxo de trabalho, primeiro no nível de fluxo de trabalho e, em seguida, no nível de trabalho. Por fim, se o fluxo de trabalho foi acionado por um pull request de um repositório bifurcado, e a configuração Enviar tokens de gravação para fluxos de trabalho de pull requests não estiver selecionada, as permissões serão ajustadas para alterar qualquer permissão de gravação para somente leitura.

Conceder permissões adicionais

Se você precisa de um token que exige premissões que não estão disponíveis no GITHUB_TOKEN, é possível criar um token de acesso pessoal e configurá-lo como um segredo no repositório:

  1. Use ou crie um token com as permissões adequadas para o repositório. Para mais informação, consulte "Criando um token de acesso pessoal."
  2. Adicione o token como um segredo no repositório do fluxo de trabalho e refira-se a ele usando a sintaxe ${{ secrets.SECRET_NAME }}. Para obter mais informações, consulte "Criando e usando segredos encriptados".

Esse documento ajudou você? Política de Privacidade

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.