yusyus
ea289cebe1
feat: Make EXCLUDED_DIRS configurable for local repository analysis
Closes #203
Adds configuration options to customize directory exclusions during local
repository analysis, while maintaining backward compatibility with smart
defaults.
**New Config Options:**
1. `exclude_dirs_additional` - Extend defaults (most common)
- Adds custom directories to default exclusions
- Example: ["proprietary", "legacy", "third_party"]
- Total exclusions = defaults + additional
2. `exclude_dirs` - Replace defaults (advanced users)
- Completely overrides default exclusions
- Example: ["node_modules", ".git", "custom_vendor"]
- Gives full control over exclusions
**Implementation:**
- Modified GitHubScraper.__init__() to parse exclude_dirs config
- Changed should_exclude_dir() to use instance variable instead of global
- Added logging for custom exclusions (INFO for extend, WARNING for replace)
- Maintains backward compatibility (no config = use defaults)
**Testing:**
- Added 12 comprehensive tests in test_excluded_dirs_config.py
- 3 tests for defaults (backward compatibility)
- 3 tests for extend mode
- 3 tests for replace mode
- 1 test for precedence
- 2 tests for edge cases
- All 12 new tests passing ✅
- All 22 existing github_scraper tests passing ✅
**Documentation:**
- Updated CLAUDE.md config parameters section
- Added detailed "Configurable Directory Exclusions" feature section
- Included examples for both modes
- Listed common use cases (monorepos, enterprise, legacy codebases)
**Use Cases:**
- Monorepos with custom directory structures
- Enterprise projects with non-standard naming conventions
- Including unusual directories for analysis
- Minimal exclusions for small/simple projects
**Backward Compatibility:**
✅ Fully backward compatible - existing configs work unchanged
✅ Smart defaults maintained when no config provided
✅ All existing tests pass
Co-authored-by: jimmy058910 <jimmy058910@users.noreply.github.com>
2025-11-29 23:53:27 +03:00
..
2025-10-29 23:19:32 +03:00
2025-10-19 02:08:58 +03:00
2025-11-29 22:13:13 +03:00
2025-10-19 17:01:37 +03:00
2025-11-07 01:21:29 +03:00
2025-11-10 21:35:44 +03:00
2025-11-20 13:55:46 -08:00
2025-11-29 22:13:13 +03:00
2025-11-10 21:35:44 +03:00
2025-11-29 23:53:27 +03:00
2025-11-29 21:55:46 +03:00
2025-11-07 01:14:24 +03:00
2025-11-29 22:13:13 +03:00
2025-11-07 01:14:24 +03:00
2025-11-07 01:14:24 +03:00
2025-11-11 22:26:52 +03:00
2025-11-29 21:34:51 +03:00
2025-11-07 01:14:24 +03:00
2025-11-07 01:21:29 +03:00
2025-10-23 21:43:05 +03:00
2025-10-23 21:43:05 +03:00
2025-11-29 21:55:46 +03:00
2025-10-26 13:05:39 +03:00
2025-11-29 21:34:51 +03:00
2025-11-07 01:14:24 +03:00
2025-11-29 21:34:51 +03:00
2025-11-29 22:56:37 +03:00
2025-11-29 21:34:51 +03:00
2025-11-11 22:26:52 +03:00
2025-11-07 01:21:29 +03:00
2025-11-10 21:35:44 +03:00
2025-11-07 01:21:29 +03:00