Skip to content

Repository files navigation

Follow the Code Lab

Laboratorio pratico que acompanha a palestra Pessoas mentem e o codigo nao. O objetivo e reconstruir, com dados do proprio participante, os sinais usados para investigar custo e risco de mudanca:

  • contribuicao real de times em repositorios;
  • hotspots e fragmentacao de ownership;
  • acoplamento de mudanca;
  • estrutura estatica de projetos .NET;
  • cruzamento entre o que o compilador declara e o que o Git registra.

O laboratorio nao depende do produto Follow the Code. A coleta usa a API do Azure DevOps, comandos Git, Roslyn e Neo4j Community.

Status

O bootcamp pode ser executado de ponta a ponta: descoberta no Azure DevOps, clone temporario, extracao Git e Roslyn na mesma revisao, importacao no Neo4j, metricas, cruzamento estatico-temporal e fitness functions executaveis sobre os relatorios.

Pre-requisitos

  • Docker com Docker Compose;
  • Git 2.40 ou superior;
  • .NET SDK 8 ou superior;
  • 4 GB de memoria disponivel para o laboratorio.

Inicio rapido

  1. Crie a configuracao local:

    cp .env.example .env
  2. Troque NEO4J_PASSWORD por uma senha usada somente neste laboratorio.

  3. Inicie o Neo4j:

    docker compose up -d
  4. Aguarde o servico ficar saudavel e crie o schema:

    ./scripts/bootstrap-schema.sh
  5. Abra http://localhost:7474 e conecte com:

    • usuario: neo4j
    • senha: a definida no arquivo .env

Trilha planejada

Modulo Resultado
00 Subir o Neo4j e conhecer o contrato do grafo
01 Descobrir repositorios no Azure DevOps ou numa pasta local
02 Extrair commits, autores e arquivos com Git
03 Importar o historico no Neo4j de forma idempotente
04 Encontrar hotspots, ownership e acoplamento de mudanca
05 Extrair e importar tipos e dependencias .NET com Roslyn
06 Cruzar estrutura estatica com o historico
07 Transformar achados em fitness functions

Comece por docs/bootcamp/00-neo4j.md. Para testar imediatamente a coleta, siga os modulos 01 e 02. O modulo 03 leva o historico ao Neo4j. O modulo 04 transforma esse historico nas tres lentes da palestra. O modulo 05 acrescenta a estrutura que o compilador enxerga. O modulo 06 cruza as duas coordenadas sem misturar revisoes diferentes. O modulo 07 transforma uma hipotese aprovada em um gate versionavel para CI.

Para coletar um repositorio privado sem preservá-lo na maquina, use scripts/collect-repository.sh. O fluxo normal e clone temporario, extracao e limpeza garantida.

Seguranca e privacidade

  • Nunca grave PATs, senhas ou tokens em argumentos, codigo ou arquivos versionados.
  • .env, clones locais, dados brutos e relatorios gerados estao no .gitignore.
  • Use uma conta de leitura e um PAT com o menor escopo possivel.
  • Revise os dados antes de publicar screenshots ou resultados.
  • Os exemplos publicados neste repositorio serao sinteticos.

Leia SECURITY.md antes de conectar uma organizacao real.

Licenca

Copyright © 2026 EximiaCo. Este repositorio e disponibilizado como source available sob a PolyForm Internal Use License 1.0.0.

A licenca permite usar e modificar o laboratorio para operacoes internas da sua empresa. Ela nao permite distribuir o software, sublicenciar ou transferir os direitos recebidos. Outros usos exigem uma licenca separada da EximiaCo. Consulte tambem o aviso de copyright. Em caso de divergencia, o texto do arquivo LICENSE prevalece.

About

No description, website, or topics provided.

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages