1001Ferramentas
🐙Validadores

Validador de Handle GitHub

Valida formato de username GitHub: 1-39 caracteres alfanuméricos e hífens, não pode começar ou terminar com hífen, sem hífens consecutivos.

Validação de username do GitHub: regras, redirecionamentos e integrações

Um username do GitHub identifica uma conta de usuário ou organização e aparece em toda URL da plataforma: github.com/torvalds, username.github.io, README de perfil no repo especial username/username, links do GitHub Sponsors, workflows do GitHub Actions, caminhos do container registry. Validar importa em formulários que pré-criam links de perfil, em scripts de CI que consomem variáveis de ambiente (GITHUB_ACTOR) e em campos de redes sociais onde um nome errado produz 404 em vez do perfil.

As regras de formato são mais rígidas do que parecem: 1 a 39 caracteres, alfanuméricos mais hifens simples, sem hifens consecutivos, não pode começar nem terminar com hífen. O roteamento case-insensitive significa que octocat e OCTOCAT resolvem para a mesma conta, mas a capitalização canônica é preservada para exibição.

Regras de formato e o regex canônico

  • Comprimento: 1 a 39 caracteres.
  • Caracteres permitidos: [A-Za-z0-9-] — letras, dígitos e hífen.
  • Regras do hífen: não pode começar nem terminar com hífen; hifens consecutivos (--) não são permitidos.
  • Palavras reservadas: admin, root, login, api, www e outros paths de sistema são bloqueados no cadastro.
  • Case-insensitive: OctoCat, octocat e OCTOCAT caem no mesmo perfil. Busca e URLs normalizam para minúsculas.
// Regex canônico de username do GitHub
const GITHUB_USERNAME = /^[a-z\d](?:[a-z\d]|-(?=[a-z\d])){0,38}$/i

function validarUsernameGithub(nome) {
  return GITHUB_USERNAME.test(nome)
}

// Contas notórias
validarUsernameGithub('torvalds')   // true (Linus Torvalds)
validarUsernameGithub('gaearon')    // true (Dan Abramov)
validarUsernameGithub('-ruim')      // false (hífen no início)
validarUsernameGithub('a--b')       // false (hifens consecutivos)

Recursos baseados em username: Pages, README de perfil, Sponsors

O username está costurado em vários recursos do GitHub:

  • GitHub Pages: username.github.io hospeda site estático direto do repo de mesmo nome. Tier gratuito com limite de 1 GB por site e 100 GB/mês de banda.
  • README de perfil: criar um repo público chamado exatamente username/username exibe seu README no topo do perfil do usuário — usado para cards de portfólio, badges de estatística e READMEs pinados.
  • GitHub Sponsors: recurso de monetização usando o username como URL de doação (github.com/sponsors/username). Disponível para indivíduos e organizações após checagem de elegibilidade.
  • GitHub Container Registry: imagens de container ficam em ghcr.io/username/imagem:tag — o username é o namespace.
  • GitHub Actions: a variável de ambiente GITHUB_ACTOR em todo workflow carrega o username que disparou a execução.

Mudança de username, redirecionamento e squatting

Diferente do X/Twitter, o GitHub auto-redireciona contas renomeadas: ao trocar o username, a URL antiga segue funcionando até o nome velho ser tomado por outra pessoa, e mesmo assim o GitHub pode manter redirecionamentos históricos para URLs de repositório. Mudanças de username são limitadas a aproximadamente uma por ano via UI. URLs antigas de clone continuam funcionando via redirect, o que é crítico para projetos que já têm consumidores downstream. O GitHub também combate ativamente username squatting: detentores de marca podem solicitar reaver contas inativas que violem política de marca sob a Acceptable Use Policy do GitHub.

Conta de organização vs usuário e Enterprise

Nomes de organização seguem as mesmas restrições de formato que os de usuário: 1-39 caracteres, alfanumérico + hifens simples. Organizações não podem ter sub-perfis diretamente — todo membro tem sua conta de usuário e entra na org como colaborador. O GitHub Enterprise Server (self-hosted) usa as mesmas regras internamente mas mantém namespace separado do github.com. O tier gratuito do GitHub Actions dá 2.000 minutos de CI/mês para repos privados em contas individuais (ilimitado para repos públicos); organizações ganham tiers maiores em planos pagos. Limites da API: 5.000 requisições/hora para usuários autenticados, 60/hora sem autenticação.

Comunidade dev brasileira no GitHub

Grandes organizações brasileiras têm presença forte no GitHub: rocketseat (educação online), nubank (ferramentas fintech open-source), iFood, VTEX, PicPay, Stone. A adoção do GitHub Actions cresceu rapidamente em times de DevOps brasileiros entre 2022-2025 como alternativa gratuita de CI. Para usuários desconfortáveis com as políticas do GitHub, GitLab e Codeberg (Forgejo) são alternativas comuns — ambos com regras de username mais frouxas (tipicamente 2-255 chars no GitLab).

Perguntas frequentes

Qual é o comprimento máximo do username? 39 caracteres. O limite vem dos primórdios do GitHub e permanece por compatibilidade com URLs, DNS do Pages (que usa o username como subdomínio) e vários endpoints da API.

Username pode começar com hífen? Não. O primeiro caractere precisa ser alfanumérico. O último também precisa ser alfanumérico, e não é permitido ter hifens consecutivos em lugar nenhum do nome.

Se eu renomear minha conta, URLs antigas quebram? Não — o GitHub mantém auto-redirecionamento do username antigo, incluindo URLs de repositório e endpoints de clone. Renames são limitados a cerca de uma vez por ano e o redirect fica até alguém tomar o nome antigo.

Usernames do GitHub diferenciam maiúscula? Não, buscas são case-insensitive. github.com/torvalds e github.com/Torvalds resolvem para o mesmo perfil, com a capitalização canônica preservada para exibição.

Posso ter underscore ou ponto no username? Não. Só letras, dígitos e hifens simples são permitidos. Isso é mais rígido que Twitter (underscore) e Instagram (ponto + underscore).

Ferramentas Relacionadas