LasecGitSession e uma extensao para Visual Studio Code pensada para laboratorios de informatica e ambientes compartilhados. Ela prepara e encerra a sessao do aluno no Git e no GitHub sem exigir projeto aberto, usando configuracao global do Git.
O que a extensao faz
- Adiciona um botao
LasecGitSessionna barra de status do VS Code. - Funciona mesmo sem projeto ou pasta aberta.
- Verifica se o Git esta instalado e acessivel no PATH.
- Inicia a autenticacao usando a API oficial do VS Code com o provider
github. - Solicita nome e e-mail do aluno para autoria de commits.
- Configura
git config --global user.nameegit config --global user.email. - Permite ver o status atual, trocar de aluno e encerrar a aula.
- Remove a identidade global do Git ao encerrar a aula.
- Tenta remover do VS Code a conta GitHub autenticada pela propria extensao.
- Limpa a preferencia de sessao usada pela propria extensao, sem armazenar tokens manualmente.
Estrutura do projeto
.
|-- .vscode/
| |-- launch.json
| `-- tasks.json
|-- src/
| |-- controllers/
| | `-- sessionController.ts
| |-- services/
| | |-- authService.ts
| | |-- credentialCleanupService.ts
| | |-- gitService.ts
| | |-- loggerService.ts
| | |-- sessionService.ts
| | `-- statusBarService.ts
| |-- types/
| | `-- index.ts
| |-- utils/
| | |-- errors.ts
| | |-- validation.ts
| | `-- workspace.ts
| |-- constants.ts
| `-- extension.ts
|-- .gitignore
|-- .vscodeignore
|-- LICENSE
|-- package.json
|-- README.md
`-- tsconfig.json
Como instalar para desenvolvimento
-
Abra a pasta do projeto no VS Code.
-
Execute:
npm install npm run compile
Como rodar em modo de desenvolvimento com F5
- Abra este projeto no VS Code.
- Execute
npm install. - Pressione
F5. - Uma nova janela de Extension Development Host sera aberta.
- Nessa janela, clique no botao
LasecGitSessionna barra de status.
Nao e necessario abrir repositorio Git para iniciar a sessao.
Como usar
Inicio da aula
-
O aluno abre o VS Code.
-
Clica no botao
LasecGitSession. -
A extensao valida se o Git esta instalado.
-
Se necessario, o VS Code abre o fluxo oficial de login GitHub no navegador.
-
A extensao pede:
- nome do aluno
- e-mail do aluno
-
A maquina recebe:
git config --global user.name "Nome do Aluno" git config --global user.email "[email protected]" -
O botao passa para o estado ativo.
Fim da aula
-
O aluno clica novamente em
LasecGitSession. -
Escolhe
Encerrar aula. -
A extensao remove da configuracao global:
git config --global --unset-all user.name git config --global --unset-all user.email -
A extensao tenta remover a conta GitHub usada por ela no menu de contas do VS Code.
-
Se o VS Code pedir confirmacao de logout, confirme para concluir a remocao da conta.
-
Se existirem algumas chaves globais extras ligadas a identidade, a extensao pode oferecer remocao com confirmacao explicita.
-
O botao volta ao estado desconectado.
Comandos disponiveis
LasecGitSession: Iniciar SessaoLasecGitSession: Encerrar AulaLasecGitSession: Trocar AlunoLasecGitSession: Ver Status Atual
Observacoes importantes de seguranca
- Esta versao usa
git config --globalpor solicitacao de uso sem projeto aberto. - A autoria do commit (
user.nameeuser.email) continua separada do login GitHub. - A extensao nao armazena senha.
- A extensao nao armazena token manualmente.
- O estado persistido em
globalStateguarda apenas dados operacionais minimos, como nome, e-mail e referencia a conta usada pela extensao.
Limitacoes conhecidas
- A API publica de autenticacao do VS Code permite obter e usar a sessao GitHub, mas nao expoe um metodo oficial para remover sessoes de contas.
- Para o uso em laboratorio, a extensao tenta acionar o mesmo comando interno de logout usado pelo menu de contas do VS Code, sempre mirando a conta salva pela propria extensao.
- Se esse comando interno nao estiver disponivel ou se o aluno cancelar a confirmacao do VS Code, a extensao informa o professor/aluno e oferece abrir o menu de contas para remocao manual.
- A extensao nao tenta remover contas que nao foram autenticadas por ela.
Uso em laboratorios compartilhados
- Oriente os alunos a sempre encerrar a aula pelo botao
LasecGitSession. - Como a configuracao e global, ela afeta novos commits em qualquer repositorio aberto nesta maquina ate o encerramento da sessao.
- Se o laboratorio reutiliza a mesma maquina por muitas turmas, considere tambem politicas institucionais de limpeza de perfil do sistema operacional.
Empacotando a extensao
Depois de instalar as dependencias:
npm run package
Isso gera um arquivo .vsix pronto para instalacao manual no VS Code.
Sugestoes de melhorias futuras
- Adicionar testes automatizados para os fluxos de servico e validacao.
- Adicionar configuracoes institucionais para politicas de laboratorio.
- Exibir um painel detalhado com historico de acoes da sessao.
- Implementar opcao para escolher entre escopo global e local por configuracao.