GitHub – Autenticação Git via Personal Access Token

Saudações, devs! 😎👍 Se você chegou até aqui, muito provavelmente está enfrentando problemas com a autenticação do Git no repositório GitHub, certo? Bom, vamos falar sobre o que mudou! 😉
No blog do GitHub, num post do dia 12 de agosto de 2021, foi anunciado que a partir do dia 13 do mesmo mês, o GitHub não aceitaria mais a autenticação via nome de usuário e senha nas operações remotas do Git. 😯
Isso significa que a partir de agora, para que os desenvolvedores possam executar operações de push e pull, por exemplo, será necessário configurar a autenticação via personal access token (PAT), OAuth, chave SSH, ou token do aplicativo GitHub.
Neste tutorial iremos aprender como configurar a autenticação via personal access token, que usa o protocolo HTTPS, considerando ambientes Windows. Go, go, go! 🚀
Passo 1 – Resetar as configurações “remote/origin” do seu repositório local
Para garantir que esse tutorial funcione, vamos zerar as configurações de “remote/origin” do seu repositório local, isto é, caso você já esteja utilizando um. Para isso, vamos fazer o seguinte:
- Abra a pasta .git que fica oculta em um de seus repositórios locais;
- A seguir, abra o arquivo config e exclua as configurações [remote “origin”] – vide imagem a seguir.

ATENÇÃO! Você também pode excluir o repositório local, considerando que há uma versão atual no GitHub (remoto). Se esse for o caso, podemos fazer o git clone, baixar a versão mais atual do repositório e realizar as configurações locais do zero.
Passo 2 – Excluir as credenciais do GitHub localmente
Para garantir as as configurações estejam de fato zeradas, abra o Gerenciador de Credenciais do Windows e exclua todas as credenciais relacionadas Git que estejam cadastradas. Veja a imagem a seguir.

Passo 3 – Gerar um Personal Access Token (PAT)
Um token de acesso pessoal deve ser gerado no próprio GitHub. Para isso, siga os passo a seguir:
- Faça o login em sua conta do GitHub;
- Acesse as configurações de sua conta – clique no seu avatar no canto superior direito, depois em Settings;
- No menu à esquerda, clique em Developer Settings;
- Ainda no menu à esquerda, clique em Personal acess tokens;
- Remova os tokens existentes (se houver);
- Depois clique em Generate new Token – essa operação deverá pedir a senha do usuário;
- Na página New personal acess token, adicione uma nota (ou nome) para seu PAT, defina o tempo de expiração (normalmente “No Expiration”) e marque todos os escopos possíveis;
- Agora clique no botão Generate Token;
- O token será gerado e mostrado apenas uma vez, portanto, copie e salve-o em um local seguro;

Passo 4 – Configurando o repositório local
Agora precisamos setar as configurações remote/origin de um repositório local já existente. Para isso, precisamos confirmar a URL HTTPS do seu repositório, acessar a pasta do repositório via Git Bash (ou outro terminal) e digitar o seguinte código:
git remote add origin [URL-HTTPS-DO-REPOSITORIO]
Caso você tenha excluído o repositório local, será necessário realizar o git clone para baixá-lo novamente.
git clone [URL-HTTPS-DO-REPOSITORIO]
Pronto! Agora, quando você for realizar o próximo git push, a seguinte janela deverá ser exibida, pedindo o seu PAT:

E se mesmo assim não for possível fazer push/pull?
Caso o comando git push ou git pull retorne uma mensagem de erro, informando que não foi possível autenticar com usuário, senha ou token, confirme os passos 1 e 2, e tente novamente.
Se o erro persistir é possível informar o PAT diretamente nas configurações do repositório. Para isso, faça o seguinte:
- Abra a pasta oculta .git na pasta do seu repositório;
- Na configuração [remote “origin”], edite a URL do repositório da seguinte maneira:
url = https://$(git_token)@github.com/user_name/repo_name.git
Alternativamente, você pode executar o push/pull informando diretamente a URL como parâmetro, veja:
git push https://$(git_token)@github.com/user_name/repo_name.git
Obviamente, você deve substituir a porção git_token
pelo seu PAT. 😉 Tente fazer o push/pull agora, deve funcionar!
Conclusão
É claro que a autenticação com usuário e senha era muito mais simples. Entretanto, o fato de informar dados pessoais diretamente não é uma boa prática quando consideramos o quesito segurança.
Assim, o GitHub achou por bem implementar formas mais seguras de autenticação.
No próximo post, irei falar sobre a autenticação via chaves SSH. Até breve! 😎👍