Resumo
- O GitHub chamou de crítico o incidente em interações SSH de repositório que usavam deploy keys.
- As falhas foram intermitentes entre 10:31:44 e 11:57:01 UTC de 21 de julho, pouco mais de 85 minutos.
- Uma alteração recente foi identificada como causa potencial e revertida; não é ainda uma causa raiz final.
- Deploy keys autenticam máquinas, e clone, fetch ou push afetados podem bloquear partes da entrega automatizada.
- Não houve comunicado de queda de todo SSH, HTTPS, chaves de usuário, todos os deploys ou dados; o RCA detalhado ainda será publicado.
Uma deploy key limita o acesso de uma máquina a um repositório por SSH, sem compartilhar a conta completa de uma pessoa. É uma escolha de menor privilégio. Ainda assim, pode ser o único caminho que leva o código a um sistema de build ou publicação.
Durante o incidente, esse primeiro passo falhou de maneira intermitente. O restante da infraestrutura podia estar saudável e, mesmo assim, não receber a versão necessária.
O efeito depende da arquitetura de cada cliente
Servidores de compilação, espelhos, sistemas de release e atualizadores podem executar clone, fetch ou push com deploy keys. Uma falha de autenticação bloqueia a interação específica.
Isso não significa que todos os deploys falharam. Pipelines com HTTPS, credenciais pessoais, fonte em cache ou outros repositórios podem ter continuado. O GitHub não publicou quantidade de repositórios nem dano financeiro.
O limite verificado é o SSH com deploy key. Só o mapa interno de cada organização mostra quais produtos e ambientes dependem dele.
Intermitência torna o reprocessamento arriscado
Uma interrupção total produz estado claro. Em uma falha intermitente, uma tentativa pode cair e outra funcionar. Executores ficam diferentes, e uma interface pode marcar erro quando uma repetição já alcançou o destino.
Antes de repetir etapa não idempotente, é preciso conferir commit, hash do artefato, registro da publicação e estado externo. O GitHub não relatou perda de código ou repositório, mas uma rotina local pode duplicar ação.
Logs devem manter repositório, identificador não secreto da chave, operação, horário e tentativa, nunca o conteúdo privado. Assim se separa o incidente de expiração, revogação ou configuração local.
Rollback apoia a hipótese, não encerra a causa
O GitHub descreveu a mudança como causa potencial e a retirou. A recuperação reforça o vínculo, mas não explica o mecanismo, a natureza intermitente, as barreiras ausentes ou por que outras credenciais não foram atingidas.
A empresa prometeu uma análise detalhada. Até ela surgir, dizer que a mudança é a causa raiz definitiva ultrapassa a própria linguagem do provedor.
Resiliência requer inventário de identidade
Equipes devem localizar trabalhos dependentes exclusivamente de deploy key SSH. Uma alternativa HTTPS pode elevar disponibilidade, desde que não amplie permissões, ignore aprovações ou crie segredos sem gestão.
Repetições precisam de limite, espera progressiva e etapas idempotentes. O build deve fixar e verificar o commit após a recuperação. O sistema também deve distinguir “fonte não obtida” de “ação externa possivelmente realizada”.
O GitHub restaurou o caminho em cerca de 85 minutos. A plataforma inteira não ficou indisponível. A lição é mais precisa: uma credencial de privilégio mínimo ainda pode ser o ponto único de disponibilidade de uma automação extensa. O RCA deverá mostrar se o rollback também corrige o controle que deixou a mudança chegar à produção.

