From deade3c5a09d93817850a60c133b1c41804aa153 Mon Sep 17 00:00:00 2001 From: Rodin Date: Sun, 10 May 2026 23:37:14 -0700 Subject: [PATCH] feat: log loaded pattern files for debugging When patterns-repo is configured, now logs at Info level: - File paths loaded from each repo - Count of files per repo At Debug level logs skipped files (non-markdown/txt/yaml). Warns if no pattern files were loaded from a repo (likely misconfigured patterns-files path). Closes #64 --- cmd/review-bot/main.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cmd/review-bot/main.go b/cmd/review-bot/main.go index bc0bea7..f8bf815 100644 --- a/cmd/review-bot/main.go +++ b/cmd/review-bot/main.go @@ -544,6 +544,9 @@ func fetchPatterns(ctx context.Context, client *gitea.Client, patternsRepo, patt } owner, repo := parts[0], parts[1] + var repoLoadedFiles []string + var repoSkippedFiles []string + for _, path := range paths { path = strings.TrimSpace(path) if path == "" { @@ -559,11 +562,22 @@ func fetchPatterns(ctx context.Context, client *gitea.Client, patternsRepo, patt for filePath, content := range files { // Only include markdown and text files as patterns if !isPatternFile(filePath) { + repoSkippedFiles = append(repoSkippedFiles, filePath) continue } + repoLoadedFiles = append(repoLoadedFiles, filePath) sb.WriteString(fmt.Sprintf("### %s/%s\n\n%s\n\n", repoRef, filePath, content)) } } + + if len(repoLoadedFiles) > 0 { + slog.Info("loaded pattern files", "repo", repoRef, "count", len(repoLoadedFiles), "files", repoLoadedFiles) + } else { + slog.Warn("no pattern files loaded", "repo", repoRef, "paths", paths) + } + if len(repoSkippedFiles) > 0 { + slog.Debug("skipped non-pattern files", "repo", repoRef, "count", len(repoSkippedFiles), "files", repoSkippedFiles) + } } return sb.String() } -- 2.47.3