GS Time Sheet
Extensao do Azure DevOps para lancamento de horas diretamente em uma aba de Work Item.
Funcionalidades
- Identifica automaticamente o Work Item aberto.
- Exibe resumo com
Original Estimate, Completed Work e Remaining Work.
- Permite informar data, horas, minutos e comentario.
- Valida os campos antes do envio.
- Atualiza o campo
Microsoft.VSTS.Scheduling.CompletedWork do Work Item.
- Grava cada lancamento em uma colecao do Firebase.
- Lista os lancamentos gravados para o Work Item atual.
Estrutura
Scripts
npm install
npm run typecheck
npm run compile:dev
npm run start:dev
npm run package:dev
npm run publish:dev
npm run package
npm run publish
Desenvolvimento local
- Preencha a configuracao do Firebase em src/timesheet-tab/services/firebaseConfig.ts.
- Publique a extensao de desenvolvimento:
npm run publish:dev
- Instale a extensao
gs-timesheet-dev na sua organizacao do Azure DevOps.
- Inicie o servidor local:
npm run start:dev
- Abra
https://localhost:3000/dist/timesheet-tab/timesheet-tab.html e aceite o certificado.
- Abra um Work Item no Azure DevOps e selecione a aba
Time Sheet.
Publicacao
- Ajuste a versao em vss-extension.json quando for publicar uma nova versao.
- Defina um PAT com permissao
Marketplace (publish).
- Para publicacao manual:
npm run publish
- Para usar o script local com PAT salvo fora do Git:
.\publish.local.ps1
Como testar
- Abra um Work Item que possua os campos de estimativa.
- Verifique se o resumo mostra
Original Estimate, Completed Work e Remaining Work.
- Lance um registro com comentario preenchido e horas maiores que zero.
- Confirme que o
Completed Work foi somado e salvo no Work Item.
- Confirme que o registro apareceu na listagem da aba e tambem na colecao configurada no Firebase.
Configuracao do Firebase
Preencha estes valores em src/timesheet-tab/services/firebaseConfig.ts:
apiKey
authDomain
projectId
storageBucket
messagingSenderId
appId
measurementId se usado
timeEntriesCollection
Informacoes que eu ainda preciso para conectar na base correta:
- O projeto Firebase correto.
- O nome da colecao onde os lancamentos devem ser gravados.
- Se o ambiente de dev e de producao usam a mesma base ou bases separadas.
- As regras de seguranca esperadas para leitura e escrita.
Observacoes
- A configuracao do Firebase fica no bundle da extensao; isso e normal para apps web Firebase.
- A seguranca real deve estar nas regras do Firestore.
- O projeto compila localmente com
npm run compile:dev.
| |