MeasureSoftGram Plugin (VS Code)
Onboarding Local
Este guia descreve como configurar e rodar o Plugin VS Code do MeasureSoftGram em ambiente de desenvolvimento.
Pré-requisitos
| Ferramenta | Descrição |
|---|---|
| Node.js 20 | Runtime usado pelo host da extensão (src/) e pela webview-ui/ |
| VS Code | Editor usado para rodar e depurar a extensão (Run Extension, F5) |
| Docker | Necessário apenas para a execução local da GitHub Action (via nektos/act) |
| Repositório do Service clonado localmente | Necessário para autenticar e obter dados de qualidade reais durante o desenvolvimento |
Estrutura do projeto
O repositório é dividido em dois projetos independentes:
src/ # Extension Host (Node/TypeScript)
├── extension.ts # entrypoint
├── activator.ts # wiring dos comandos e views
├── statusbar/
├── panels/
│ ├── measureSoftGramBase.ts
│ ├── measureSoftGramPanel.ts
│ └── measureSoftGramSidebar.ts
├── services/msgramApi.ts # cliente HTTP para o Service
└── utilities/
webview-ui/ # React + Vite, projeto separado
└── src/
└── components/
├── DashboardView.tsx
├── GrafanaView.tsx
├── SettingsView.tsx
└── action/ActionView.tsx
Os dois só se comunicam por postMessage/acquireVsCodeApi — a webview-ui nunca chama a API do Service diretamente, sempre por meio do Extension Host.
Instalando as dependências
Esse comando instala as dependências do host da extensão e, em seguida, as da webview-ui/.
Rodando em modo de desenvolvimento
- Abra o repositório no VS Code.
- Pressione
F5(ou rode a configuração de debug Run Extension) — isso compila a extensão (build:all) e abre uma nova janela do VS Code com o plugin carregado. - Para desenvolver a interface da webview isoladamente no navegador (sem precisar recarregar a extensão a cada mudança):
Validando contra um Service local
O plugin precisa de um Service rodando para autenticar e exibir dados reais. Resumo dos passos (detalhado em GUIA_VALIDACAO_API.md, no repositório do Plugin):
Login padrão do ambiente de desenvolvimento: usuário admin, senha admin. Configure msgram.serviceUrl apontando para http://localhost:8080 e faça login pelo painel do plugin — o token é salvo automaticamente no Secret Storage do VS Code.
Executando a Action localmente (Docker + act)
A aba Action do plugin roda o workflow de CI do usuário localmente, dentro de um container com o nektos/act (imagem construída a partir de resources/docker/Dockerfile). Isso permite testar a integração com o MeasureSoftGram sem depender de um push real para o GitHub.
Testes
npm run test:unit # testes do Extension Host (mocha)
npm run test:webview-run # testes da webview-ui (vitest)
npm run test:all # os dois conjuntos de teste
npm run test:coverage # cobertura do Extension Host
Histórico de Versão
| Versao | Data | Descricao | Autor | Revisor |
|---|---|---|---|---|
| 1.0 | 05/07/2026 | Criação do documento | Anacleto | João Antonio |