# 2026-04-17 - Conexao OAuth do GitHub para colaboradores

## O que mudou
- criado `src/Integrations/GitHub/GitHubIdentityAuthService.php` para conduzir a conexao OAuth do GitHub com `state`, troca de token e leitura da identidade autenticada
- adicionada a rota fisica `pages/admin/github-connect.php` para iniciar a conexao e concluir o callback autenticado no contexto do colaborador logado
- expandido `src/Integrations/GitHub/GitHubConfig.php` com `oauth_client_id`, `oauth_client_secret`, `oauth_callback_url` e detector de prontidao do OAuth
- evoluido `src/Modules/User360/Repository/User360Repository.php` para persistir conta verificada com `github_user_id`, marcar verificacao, relinkar commits e permitir desconexao segura
- criado o endpoint `self_github_disconnect` em `src/Modules/User360/Http/User360Controller.php`
- atualizada `pages/admin/meu-perfil.php` para trocar o foco de validacao manual por `Conectar GitHub`, status visual da conta, reconexao e desconexao
- atualizada `pages/admin/dev-repos.php` para expor `OAuth Client ID`, `OAuth Client Secret` e callback no modal de configuracao GitHub
- criada a migration `sql/2026-04-17-github-user-links-oauth-verification.sql` para expandir `wpjy_github_user_links` com identificador forte da conta e metadados de verificacao

## Intencao tecnica
- provar posse da conta GitHub em vez de confiar apenas em login ou URL digitados manualmente
- usar `github_user_id` como chave forte para evitar problemas quando o login publico mudar
- preparar a base para governanca futura de repositorios por usuario, aproximando o modelo do comportamento de times e memberships do GitHub
- manter o vinculo manual apenas como contingencia operacional enquanto o OAuth nao estiver configurado ou enquanto um colaborador ainda nao conectou a conta

## Resultado
- o colaborador passa a enxergar claramente se sua conta GitHub esta apenas vinculada manualmente ou realmente verificada
- o sistema ganha um fluxo seguro para conectar, reconectar e desconectar a conta GitHub sem sobrescrever silenciosamente o vinculo de outra pessoa
- commits recebidos por webhook passam a poder ser religados a partir de uma identidade verificada, fortalecendo os cruzamentos com repos, tarefas, tickets e erros do Tracy
