You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
O GitHub Repository Sync Tool é uma aplicação web que replica, com um único clique, o comportamento de fluxos n8n para sincronizar múltiplos repositórios GitHub privados. O produto foca em simplicidade operacional e transparência das ações executadas.
2. Objetivos do Produto
Permitir sincronização total (delete + copy) de repositórios configurados em um único comando.
Fornecer interface gráfica minimalista para gerenciamento das configurações e execução do processo.
Exibir monitoramento em tempo real do progresso e dos logs de cada sincronização.
2.1 Métricas de Sucesso (KPIs)
Métrica
Alvo
Tempo médio para sincronizar 10 repositórios
≤ 2 min
Erros de sincronização por execução
0 críticos
Adoção interna (usuários ativos)
≥ 80 % dos devs
3. Requisitos Funcionais
ID
Descrição
Prioridade
RF-01
Botão SYNC ALL executa delete & copy completos para todos os repositórios habilitados
Alta
RF-02
Adicionar, editar, remover e habilitar/desabilitar pares origem → destino
Alta
RF-03
Validação de existência e permissões de cada repositório antes da sincronização
Alta
RF-04
Barra de progresso global e por repositório
Média
RF-05
Log detalhado de cada operação (delete, copy)
Média
RF-06
Opção de cancelar ou pausar sincronização em andamento
Baixa
4. Requisitos Não Funcionais
Tipo
Descrição
Performance
Sincronizar 500 MB de arquivos em ≤ 5 min (rede 100 Mb/s)
Confiabilidade
Registro de logs em disco para auditoria │
Usabilidade
Interface em português, foco em acessibilidade (atalhos de teclado) │
Segurança
Armazenar token GitHub de forma segura no Supabase │
asyncfunctionsyncAll(){for(constcfgofenabledConfigs){try{awaitdeleteAllFiles(cfg.target);awaitcopyAllFiles(cfg.source,cfg.target);awaitlogToSupabase(cfg.id,'success');}catch(error){awaitlogToSupabase(cfg.id,'error',error.message);displayError(error.message);// Apenas exibir erro na página}}}
8. Cronograma (MVP)
Semana
Entrega
1
Setup React + Supabase, autenticação GitHub
2
Implementar sync logic (delete & copy) para repos privados
3
Interface funcional + logs (3 dias retenção)
4
Testes, deploy e validação final
9. Especificações Técnicas Definidas
Aspecto
Especificação
Autenticação
Token GitHub apenas para github.com
Repositórios
Suporte exclusivo para repositórios privados
Tratamento de Erros
Exibir descrição do erro na página (sem recovery)
Banco de Dados
Supabase (não salvar commits, apenas configs e logs)
Interface
Funcional e simples (sem foco no visual)
Logs
Retenção de 3 dias em formato texto
Tipo de App
Webapp (sem assinatura digital)
Configurações
Sem importação de configurações existentes
10. Critérios de Aceite
Usuário configura pares e executa SYNC ALL sem erros críticos.
Logs mostram todas as etapas executadas com status (sucesso/falha).
Operação pode ser cancelada/pause sem travar a UI.
PRD aprovado pelos stakeholders e documentação incluída no repo.