Resposta rápida
Se git clone ou git fetch de um repositório público via HTTPS passou a informar que autenticação é necessária, isso pode ser uma proteção temporária do GitHub durante períodos de tráfego incomum. Autentique a operação e tente novamente ou, se o processo não puder usar credenciais, aguarde e repita com backoff. O GitHub afirma que a medida é aplicada de forma estreita e não transforma todos os repositórios públicos em privados.
Para uma estação de trabalho, prefira GitHub CLI ou Git Credential Manager. No GitHub Actions, use o GITHUB_TOKEN integrado. Em CI externo que acessa repositórios de uma organização, prefira um token de instalação de GitHub App com acesso somente de leitura ao conteúdo necessário. Não coloque token na URL registrada, no arquivo do workflow nem nos logs.
O que mudou e o que não mudou
O GitHub anunciou em 19 de outubro de 2026 que alguns clones e fetches não autenticados de repositórios públicos por HTTPS podem receber temporariamente uma exigência de autenticação quando sinais de tráfego anômalo acionam a proteção de disponibilidade. Operações HTTPS já autenticadas, Git sobre SSH, pushes e tráfego não relacionado de navegador e API não são afetados por essa medida específica.
A mensagem de erro deve indicar que autenticação é necessária. Isso é diferente de Repository not found, 403 por falta de permissão, falha de SSO, certificado inválido, timeout ou erro de negociação TLS. Registre a saída completa, a URL, o horário e o ambiente antes de trocar credenciais ou protocolos.
Confirme a causa antes de alterar a automação
Comece com uma operação somente de leitura, como git ls-remote na mesma URL, e compare o resultado em uma sessão autenticada. Consulte o GitHub Status no mesmo intervalo para separar uma proteção seletiva ou erro local de uma indisponibilidade ampla de Git Operations. Se apenas um repositório falha, confira owner, nome, visibilidade e URL copiada da página oficial.
Não use o limite da API REST como explicação automática. Clone e fetch são operações Git, enquanto endpoints REST possuem limites próprios. O GitHub também publica uma recomendação de até 15 operações de leitura Git por segundo por repositório; automações muito agressivas devem reduzir concorrência, usar clone raso quando suficiente e evitar baixar repetidamente o mesmo histórico.
- Capture a mensagem completa sem imprimir cabeçalhos ou tokens.
- Confira git remote -v e teste git ls-remote com a URL HTTPS correta.
- Abra o GitHub Status e observe Git Operations no mesmo horário.
- Repita uma vez com autenticação segura no mesmo ambiente.
- Se a autenticação funcionar, corrija o fluxo de credenciais; se não puder autenticar, aplique backoff e tente depois.
Como corrigir no computador sem salvar token no comando
O GitHub recomenda GitHub CLI ou Git Credential Manager para conexões HTTPS. Com a CLI, execute gh auth login, escolha GitHub.com e HTTPS e autorize o uso das credenciais para o Git. O gerenciador armazena a credencial pelo mecanismo seguro da plataforma e lida com a autenticação no navegador, inclusive quando a conta exige 2FA.
Se a equipe já usa SSH com chaves administradas, a operação não é afetada por essa proteção específica de HTTPS. Não migre às pressas criando uma chave compartilhada entre máquinas. Mantenha uma chave por identidade ou workload, verifique a impressão digital do host e limite o acesso da chave ao necessário.
- Verifique se GitHub CLI ou Git Credential Manager veio de uma fonte oficial.
- Autentique a conta correta e escolha HTTPS quando esse for o protocolo desejado.
- Confirme o resultado com gh auth status sem copiar a saída sensível para tickets públicos.
- Repita git ls-remote, clone ou fetch e confirme que o remoto não contém credencial embutida.
- Revogue a credencial se ela apareceu em URL, log, histórico de shell ou artefato.
GitHub Actions deve usar o GITHUB_TOKEN integrado
Dentro de um workflow, o GitHub cria um GITHUB_TOKEN para o job. Use actions/checkout para o repositório do workflow e conceda apenas contents: read quando a automação só precisa ler código. Evite criar um PAT pessoal para resolver um clone público que passou a pedir login; o token integrado tem duração limitada ao job e permissões controladas pelo workflow e pelas políticas do repositório.
Para baixar outro repositório, confirme se o token realmente possui acesso a ele. O GITHUB_TOKEN pertence ao repositório do workflow e não ganha acesso geral à organização. Se a automação precisa ler vários repositórios privados ou públicos sob controle da empresa, um GitHub App instalado nos repositórios selecionados oferece identidade própria e escopo mais claro.
- Defina permissions com contents: read no menor escopo possível.
- Use uma versão mantida de actions/checkout e revise a origem de qualquer action de terceiros.
- Não exiba github.token, variáveis de ambiente ou a URL autenticada nos logs.
- Teste o job em um repositório de baixo risco antes de replicar a configuração.
CI externo deve preferir GitHub App
Para runners externos, espelhos, agentes e sistemas que precisam clonar de forma contínua, use uma instalação de GitHub App com permissão Contents em leitura e acesso somente aos repositórios necessários. O sistema autentica como o App, gera um token de instalação de curta duração e usa x-access-token como usuário na autenticação HTTPS.
Gere o token no início da tarefa e descarte-o ao final. Não presuma tamanho ou formato fixo, não grave o token no remoto persistente e faça a renovação por uma biblioteca ou integração que entenda sua validade. Um PAT pode funcionar, mas vincula a automação a uma pessoa e tende a ampliar o risco operacional quando muitos repositórios dependem dele.
Retentativas precisam de limite e backoff
Se o processo não puder autenticar, a orientação do GitHub é aguardar e tentar novamente quando a proteção temporária for retirada. Implemente poucas retentativas com atraso crescente e variação aleatória, preserve o erro final e interrompa antes de criar uma tempestade de clones. Não troque rapidamente entre IPs, proxies ou identidades para contornar a proteção.
Reduza o trabalho repetido: use clone raso quando o histórico completo não for necessário, reaproveite caches controlados, limite paralelismo por repositório e invalide o cache apenas quando houver uma referência nova. Cache não substitui verificação de integridade; confirme o commit ou a tag esperada antes de executar código baixado.
O que não fazer
Uma exigência temporária de autenticação não justifica enfraquecer TLS nem espalhar um token de longa duração. Corrija a identidade da automação e mantenha a credencial fora dos artefatos.
- Não use senha da conta: autenticação por senha para Git sobre HTTPS foi removida.
- Não coloque PAT ou token de instalação diretamente na URL versionada.
- Não desative sslVerify nem ignore erros de certificado.
- Não dê contents: write quando a tarefa precisa apenas clonar.
- Não trate todo 401, 403 ou Repository not found como essa proteção temporária.
Limitações e próxima ação útil
Este guia foi verificado em 20 de outubro de 2026 e cobre a proteção anunciada para github.com. O GitHub não publica os sinais exatos nem uma duração fixa para cada aplicação da medida. GitHub Enterprise Server, proxies corporativos, SSO, políticas da organização e falhas de credencial podem produzir sintomas diferentes e exigem diagnóstico próprio.
Faça agora um inventário dos jobs que clonam repositórios públicos sem autenticação. Para cada um, registre repositório, frequência, concorrência e ambiente; depois escolha GITHUB_TOKEN no Actions ou GitHub App no CI externo, restrinja a leitura e teste a recuperação. Mantenha uma retentativa com backoff apenas como contingência, não como substituto de uma identidade de automação.
Faça o próximo teste
Fontes consultadas
Os links abaixo servem para conferir conceitos, orientações oficiais e o critério editorial usado neste conteúdo.
- Some Git over HTTPS may temporarily require authenticationGitHub Changelog
- Troubleshooting cloning errorsGitHub Docs
- Caching your GitHub credentials in GitGitHub Docs
- Use GITHUB_TOKEN for authentication in workflowsGitHub Docs
- Authenticating as a GitHub App installationGitHub Docs
- Repository limitsGitHub Docs
- GitHub StatusGitHub
