Personal access tokens do GitHub para usar com o Git
Personal access tokens do GitHub
Personal access token do GitHub: criar, usar no Git e revogar | We.Inc
Escolha entre fine-grained e classic com um verificador rápido, crie o token, use-o no git via HTTPS, guarde-o em um credential helper e saiba lidar com expiração e revogação.
Um personal access token substitui a sua senha do GitHub quando o git se comunica com o GitHub via HTTPS ou quando um script chama a API. Crie um em Settings, Developer settings, Personal access tokens, escolha fine-grained a menos que precise de um recurso do classic, e cole-o quando o git pedir uma senha.
Tokens fine-grained e classic comparados
Fine-grained
Classic
Escopo
Repositórios escolhidos, com permissões por área
Escopos amplos em todos os repositórios a que você tem acesso
Recomendação do GitHub
Usar por padrão
Só quando o fine-grained não resolve
Repositórios públicos dos quais você não é membro
Não consegue contribuir
Consegue escrever
Várias organizações em um só token
Não
Sim
Packages e Checks API
Sem suporte
Com suporte
Limite por conta
Nenhum limite informado na documentação
O GitHub deixou de aceitar senhas de conta para git via HTTPS, então clonar um repositório privado ou fazer push a partir de um servidor exige um token, uma chave SSH ou um gerenciador de credenciais. Esta página ajuda você a escolher o tipo de token, mostra onde criá-lo e explica as formas mais seguras de mantê-lo na sua máquina em vez de colá-lo toda vez.
Responda às perguntas do verificador para ver se um token fine-grained atende ao seu caso.
Clique na sua foto de perfil e depois em Settings, Developer settings, Personal access tokens, e escolha o tipo que o verificador sugere.
Defina uma expiração, escolha os repositórios e as permissões, gere o token e copie-o na hora; o GitHub só o mostra na criação.
Use-o como senha do git via HTTPS ou, melhor ainda, faça login uma vez com o GitHub CLI ou o Git Credential Manager para que ele fique guardado para você.
Dê a cada token uma única função e o mínimo de repositórios e permissões de que essa função precisa, para que um vazamento exponha o mínimo possível.
Sempre defina uma data de expiração. Um lembrete na agenda antes do vencimento é melhor do que um deploy quebrado numa sexta-feira.
Nunca coloque um token em um repositório ou em um gist. O GitHub revoga os tokens que encontra em repositórios públicos, e nos privados continua sendo um vazamento.
Para servidores e CI, prefira deploy keys ou as credenciais de curta duração da própria plataforma a um token pessoal ligado à sua conta.
Perguntas frequentes
Por que o git diz que a autenticação por senha não é suportada?
O GitHub não aceita mais a senha da sua conta para git via HTTPS. Quando o git pedir uma senha, cole um personal access token no lugar, ou passe a usar SSH, o GitHub CLI ou o Git Credential Manager.
Quais permissões um token fine-grained precisa para fazer push de código?
Selecione os repositórios e, em repository permissions, defina Contents como leitura e escrita. Adicione outras permissões só se um script precisar delas, como Pull requests ou Issues.
Personal access tokens expiram?
Você escolhe uma expiração ao criar o token, e as organizações podem impor um prazo máximo. Além disso, o GitHub revoga automaticamente um personal access token que não foi usado por um ano.
Como revogo um token?
Vá em Settings, Developer settings, Personal access tokens, abra o token e exclua-o. Qualquer remote do git ou script que o use para de funcionar na hora, então substitua-o em todos os lugares onde estava guardado.
Devo usar um token ou SSH?
Os dois funcionam com o git. Chaves SSH nunca expiram, a menos que você as remova, e são boas para o seu próprio computador. Tokens servem para redes que só permitem HTTPS, para scripts que também chamam a API e para casos em que você quer uma expiração automática.
Guardar o token em vez de colá-lo
O próprio GitHub recomenda deixar a autenticação com o GitHub CLI ou o Git Credential Manager. Rode gh auth login, escolha HTTPS, e a partir daí os comandos do git ficam autenticados sem nenhum token na sua área de transferência.
O Git Credential Manager vem com o Git for Windows e pode ser instalado no macOS e no Linux. Ele guarda as credenciais no armazenamento seguro do sistema e cuida do login com autenticação em dois fatores pelo navegador.
Organizações podem precisar aprovar tokens
Uma organização pode exigir aprovação para tokens fine-grained, restringi-los ou bloquear os classic. Se o seu token funciona nos repositórios pessoais, mas não nos da empresa, pergunte a um owner da organização qual é a política.
Usando um token com o git
Faça login uma vez com o GitHub CLI
Escolha GitHub.com, depois HTTPS, e faça login pelo navegador. O CLI configura o git para usar a credencial guardada.
Cole o token quando o git pedir uma senha
Digite o seu nome de usuário do GitHub e cole o token como senha. Um credential helper pode salvá-lo depois.
Use um token em um script sem salvá-lo em disco
Leia o token de uma variável de ambiente para que ele nunca apareça no arquivo do script nem na URL do remote do repositório.
Contribuir com um repositório público do qual não sou membro
Trabalhar nos repositórios de uma organização como colaborador externo
Acessar repositórios de várias organizações com um só token
Usar o GitHub Packages
Usar a Checks API
De qual tipo de token eu preciso?
Marque tudo o que o token precisa fazer:
Um token fine-grained resolve isso. O GitHub o recomenda como padrão.
Você precisa de um token classic para: {v}. Dê a ele os escopos mais restritos possíveis e uma expiração.
Onde criar
Settings > Developer settings > Personal access tokens > Fine-grained tokens > Generate new token
Settings > Developer settings > Personal access tokens > Tokens (classic) > Generate new token