Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dev Timer

Extensão privada para Chrome e Edge que cronometra o tempo dedicado a uma tarefa.

Funcionalidades

  • integração OAuth com GitLab.com, GitLab Self-Managed e GitHub Projects;
  • fluxo conta/projeto → board → coluna → tarefa;
  • iniciar, pausar, continuar, reiniciar e finalizar;
  • estado persistido em chrome.storage.local;
  • contagem correta mesmo quando o popup está fechado;
  • movimentação de tarefas entre colunas;
  • arquitetura de provedores preparada para novas integrações.

Executar

cd extension
npm install
npm run build

Depois, abra chrome://extensions ou edge://extensions, habilite o modo de desenvolvedor e use Carregar sem compactação apontando para a pasta extension/dist.

Desenvolvimento

Após alterações, execute novamente npm run build e recarregue a extensão na página de extensões do navegador.

OAuth do GitLab

Cadastre uma aplicação OAuth não confidencial no GitLab com escopo api. A URL de callback exata é exibida na tela de conexão da extensão e tem o formato:

https://<extension-id>.chromiumapp.org/gitlab

Copie extension/.env.example para extension/.env.local e informe o Application ID público. Nunca inclua o Client Secret no projeto ou na extensão. Durante o desenvolvimento, o Application ID também pode ser informado diretamente na tela de conexão.

Depois do login, a extensão lista os projetos dos quais o usuário participa, os boards do projeto escolhido e todas as issues da coluna selecionada. Para manter o login após reloads, os tokens OAuth ficam no armazenamento local da extensão com acesso limitado a contextos confiáveis, além de uma cópia ativa em chrome.storage.session. O armazenamento local do navegador não é um cofre criptográfico; use logout em computadores compartilhados.

OAuth do GitHub Projects

Crie um GitHub OAuth App e configure a callback exibida pela extensão:

https://<extension-id>.chromiumapp.org/github

Informe o Client ID público em VITE_GITHUB_CLIENT_ID. A extensão usa OAuth Authorization Code com PKCE e acessa Projects V2 pela API GraphQL. Ela lista a conta pessoal e as organizações acessíveis, os Projects, as opções do campo Status e todos os itens da coluna escolhida.

O GitHub Projects não oferece um campo universal de tempo gasto equivalente ao time tracking do GitLab. Por isso, para tarefas do GitHub, o cronômetro é salvo no Dev Timer, mas não é enviado ao GitHub. A movimentação entre opções de Status é sincronizada normalmente.

Arquitetura de integrações

O popup conversa apenas com comandos work:* e com o contrato WorkProvider. Cada integração fica em um adaptador próprio sob extension/src/services/providers. Para adicionar outro provedor, implemente o contrato, registre o adaptador em extension/src/services/work.ts e declare suas capacidades.

Documentação

A documentação usa Next.js e Fumadocs em uma aplicação independente:

cd docs
npm install
npm run dev

Abra http://localhost:3000. Além do site navegável, a aplicação oferece llms.txt, llms-full.txt e uma representação Markdown de cada página para agentes de IA.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages