Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

175 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Buggernaut

.NET 10 C%23 CLI Contributions Welcome NuGet License: WTFPL v2

Link to the English README file: README-en.md

Buggernaut är ett CLI-verktyg som genererar C#-övningar med inbyggda buggar via en LLM-provider du själv väljer. Tanken är enkel: öppna en fil, hitta buggen, kör testerna, bli bättre på programmering.

Programmet är designat att ge juniora utvecklare chansen att träna på att hitta och fixa buggar i kod, samt förbättra sin förståelse för programmeringskoncept utan att behöva lämna sin egen utvecklingsmiljö.

Inspirerat av ThePrimeagens Kata-Machine. Tack till Marcus Löf för idéer och bollplank.


Vad är det här?

Du kör ett kommando. Buggernaut frågar en AI om en C#-övning, skriver ut en .cs-fil med en medveten bugg och en tillhörande testfil. Din uppgift är att hitta och fixa buggen tills testerna blir gröna.

Inga webbläsarflikar. Ingen registrering. Allt händer i din editor!

Snabb demo

Snabb demo av Buggernaut


Innehåll


Förutsättningar

  • .NET 10 SDK
  • En API-nyckel till valfri provider (t.ex. Gemini, OpenAI, Anthropic, Mistral)

Ollama fungerar utan API-nyckel, men kräver en lokal server.

Vill du testa utan API-nyckel först? Kör med --dry-run, det funkar direkt.

Dry run utan API-nyckel


Snabbstart

Alla kommandon körs från Buggernaut/ om inget annat står.

1) Installera verktyget

cd Buggernaut
dotnet tool restore

2) Spara API-nyckel (engångsinställning)

Kör i tools/Buggernaut.Generator/:

cd tools/Buggernaut.Generator
dotnet user-secrets set "LLM:Gemini:ApiKey" "din-nyckel"

Nyckeln lagras lokalt på din dator och committas aldrig till Git.

Har du en nyckel till en annan leverantör? Byt bara ut Gemini:

dotnet user-secrets set "LLM:OpenAI:ApiKey"    "din-nyckel"
dotnet user-secrets set "LLM:Anthropic:ApiKey" "din-nyckel"
dotnet user-secrets set "LLM:Mistral:ApiKey"   "din-nyckel"
dotnet user-secrets set "LLM:OpenRouter:ApiKey" "din-nyckel"

Problem att hitta API-nyckeln till din leverantör? Kolla här:

3) Generera din första övning

cd Buggernaut
dotnet buggernaut generate

En ny .cs-fil dyker upp i src/Buggernaut.Exercises/.
Öppna den, hitta buggen, fixa den.

Snabbstart med genererad övning


Daglig användning

dotnet buggernaut generate                         # generera ny övning
dotnet buggernaut generate -c LINQ -d Hard         # välj kategori och svårighetsgrad
dotnet buggernaut generate --dry-run               # testa utan API-nyckel

dotnet test exercises.slnf                         # kör dina övningstester

dotnet buggernaut hint    <ClassName>              # ledtråd när du kört fast
dotnet buggernaut explain <ClassName>              # förklaring när testerna är gröna

Tips: Se alla flaggor och kategorier med:

dotnet buggernaut --help

CLI-hjälp för generate-kommandot


Konfiguration

Byta LLM-leverantör

Öppna tools/Buggernaut.Generator/appsettings.json och ändra "Provider":

{
  "LLM": {
    "Provider": "Gemini"
  }
}

Tillgängliga providers: Gemini, OpenAI, Anthropic, Mistral, Ollama, OpenRouter.

Saknar du en leverantör? Skicka in förslag till mig så löser vi det! :)

Vill du köra lokalt utan internet? Sätt upp Ollama och byt till:

{
  "LLM": {
    "Provider": "Ollama",
    "Ollama": {
      "BaseUrl": "http://localhost:11434/v1",
      "Model": "llama3"
    }
  }
}

Valfritt: sätt modell per leverantör:

{
  "LLM": {
    "Provider": "Gemini",
    "Gemini": {
      "Model": "gemini-2.5-flash"
    },
    "OpenAI": {
      "Model": "gpt-4o-mini"
    },
    "Anthropic": {
      "Model": "claude-3-5-haiku-latest"
    },
    "Mistral": {
      "Model": "mistral-small"
    },
    "Ollama": {
      "BaseUrl": "http://localhost:11434/v1",
      "Model": "llama3"
    }
  }
}

Köra tester

Kommando Vad som körs
dotnet test exercises.slnf Dina övningstester (Buggernaut.Tests)
dotnet test generator.slnf Generatorns egna enhetstester
dotnet test Alla tester

Vanliga problem

dotnet buggernaut hittas inte

  • Kör dotnet tool restore i Buggernaut/.

API-nyckel hittas inte

  • Kontrollera att user-secrets sattes i tools/Buggernaut.Generator/.

Fel provider eller modell används

  • Kontrollera tools/Buggernaut.Generator/appsettings.json.

Vill du bidra?

Kul! Läs CONTRIBUTING.md för riktlinjer kring brancher, commits och pull requests. Ingen press eller stress, vi lär oss tillsammans.

Kontakt

Vill du nå mig så finns mina kontaktuppgifter på GitHub, eller så slänger du iväg ett mail!

About

CLI-verktyg som genererar C#-övningar med buggar via valfri LLM.

Topics

Resources

Contributing

Security policy

Stars

3 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages