File tree Expand file tree Collapse file tree
spamfilter.Infrastructure Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ version : 2
2+ updates :
3+ - package-ecosystem : " nuget"
4+ directory : " /Source/spamfilter"
5+ schedule :
6+ interval : " weekly"
7+
8+ - package-ecosystem : " github-actions"
9+ directory : " /"
10+ schedule :
11+ interval : " weekly"
Original file line number Diff line number Diff line change 1+ name : " CodeQL"
2+
3+ on :
4+ push :
5+ branches : [ main ]
6+ pull_request :
7+ branches : [ main ]
8+ schedule :
9+ - cron : ' 0 6 * * 1'
10+
11+ jobs :
12+ analyze :
13+ name : Analyze
14+ runs-on : ubuntu-latest
15+ permissions :
16+ actions : read
17+ contents : read
18+ security-events : write
19+
20+ strategy :
21+ fail-fast : false
22+ matrix :
23+ language : [ 'csharp' ]
24+
25+ steps :
26+ - name : Checkout repository
27+ uses : actions/checkout@v4
28+
29+ - name : Setup .NET
30+ uses : actions/setup-dotnet@v4
31+ with :
32+ dotnet-version : ' 10.0.x'
33+
34+ - name : Initialize CodeQL
35+ uses : github/codeql-action/init@v3
36+ with :
37+ languages : ${{ matrix.language }}
38+ queries : security-extended
39+
40+ - name : Build
41+ run : dotnet build Source/spamfilter/spamfilter.sln --configuration Release
42+
43+ - name : Perform CodeQL Analysis
44+ uses : github/codeql-action/analyze@v3
45+ with :
46+ category : " /language:${{ matrix.language }}"
Original file line number Diff line number Diff line change 1+ # CLAUDE.md
2+
3+ ## Projektbeschreibung
4+
5+ Externer IMAP-basierter Spam-Filter mit konfigurierbarer Rule-Engine.
6+ Verbindet sich per IMAP mit einem Mailserver und wendet benutzerdefinierte Regeln an,
7+ um E-Mails automatisch in Ordner zu verschieben oder zu loeschen.
8+
9+ ## TechStack
10+
11+ - .NET 10.0 (C#)
12+ - Architektur-Vorlage: dotnet-cli-tool
13+ - MailKit fuer IMAP-Zugriff
14+ - xUnit + AltCover fuer Tests und Coverage
15+
16+ ## Projektstruktur
17+
18+ ```
19+ Source/spamfilter/
20+ spamfilter.console/ # CLI-Einstiegspunkt
21+ spamfilter.BL/ # Business Logic (Rules, Actions)
22+ spamfilter.Infrastructure/ # IMAP-Anbindung, Konfiguration
23+ spamfilter.Interfaces/ # Interfaces und Entities
24+ spamfilter.BL.Tests/ # Unit-Tests
25+ ```
26+
27+ ## Build und Test
28+
29+ ``` bash
30+ # Build
31+ cd Source/spamfilter
32+ dotnet build
33+
34+ # Tests ausfuehren
35+ cd Source/spamfilter
36+ dotnet test
37+
38+ # Tests mit Coverage
39+ ./update-coverage.sh
40+ ```
41+
42+ ## Konventionen
43+
44+ - TreatWarningsAsErrors ist in allen Projekten aktiviert
45+ - Nullable Reference Types sind aktiviert
46+ - NuGet-Warnungen NU1902/NU1903 sind per NoWarn unterdrueckt (vorbestehende Abhaengigkeiten)
47+ - Code folgt C#-Standardkonventionen (PascalCase fuer Typen/Methoden, _ camelCase fuer private Felder)
Original file line number Diff line number Diff line change 44 <TargetFramework >net10.0</TargetFramework >
55 <ImplicitUsings >enable</ImplicitUsings >
66 <Nullable >enable</Nullable >
7+ <TreatWarningsAsErrors >true</TreatWarningsAsErrors >
8+ <NoWarn >NU1902;NU1903</NoWarn >
79 </PropertyGroup >
810
911 <ItemGroup >
Original file line number Diff line number Diff line change 1- using spamfilter . Interfaces ;
21using spamfilter . Interfaces . Actions ;
32using spamfilter . Interfaces . Entities ;
4- using spamfilter . Interfaces . Repositories ;
53
64namespace spamfilter . BL . Actions ;
75
86public class MoveEmailToFolderActionFactory : IActionFactory
97{
10- private readonly IEmailRepository _emailRepository ;
118 private readonly string _targetFolder ;
129
1310 public MoveEmailToFolderActionFactory ( string targetFolder )
Original file line number Diff line number Diff line change 44 <TargetFramework >net10.0</TargetFramework >
55 <ImplicitUsings >enable</ImplicitUsings >
66 <Nullable >enable</Nullable >
7+ <TreatWarningsAsErrors >true</TreatWarningsAsErrors >
8+ <NoWarn >NU1902;NU1903</NoWarn >
79 </PropertyGroup >
810
911 <ItemGroup >
Original file line number Diff line number Diff line change 44 <TargetFramework >net10.0</TargetFramework >
55 <ImplicitUsings >enable</ImplicitUsings >
66 <Nullable >enable</Nullable >
7+ <TreatWarningsAsErrors >true</TreatWarningsAsErrors >
8+ <NoWarn >NU1902;NU1903</NoWarn >
79 </PropertyGroup >
810
911 <ItemGroup >
Original file line number Diff line number Diff line change 44 <TargetFramework >net10.0</TargetFramework >
55 <ImplicitUsings >enable</ImplicitUsings >
66 <Nullable >enable</Nullable >
7+ <TreatWarningsAsErrors >true</TreatWarningsAsErrors >
8+ <NoWarn >NU1902;NU1903</NoWarn >
79 </PropertyGroup >
810
911 <ItemGroup >
Original file line number Diff line number Diff line change 55 <TargetFramework >net10.0</TargetFramework >
66 <ImplicitUsings >enable</ImplicitUsings >
77 <Nullable >enable</Nullable >
8+ <TreatWarningsAsErrors >true</TreatWarningsAsErrors >
9+ <NoWarn >NU1902;NU1903</NoWarn >
810 </PropertyGroup >
911
1012 <ItemGroup >
You can’t perform that action at this time.
0 commit comments