Skip to content

Commit 3305d40

Browse files
committed
CASCADE merge: dev → main (v0.4.0 complete feature set)
Merged comprehensive v0.4.0 feature set including: MAJOR FEATURES: - Comprehensive sensitive file cleanup system with privacy-first selective branch creation - Enhanced logging with multi-level verbosity (-v, -vv, -vvv) for improved debugging - Consolidated configuration management in defaults.py for consistency - Centralized version management with __version__.py and automated update script DOCUMENTATION & UX: - Complete documentation suite: Why-RepoKit-Exists, Adoption-Guide, Branch-Strategies, Recipes - Enhanced CLI help with detailed real-world examples and adoption recipes - User-friendly launcher script (repokit-quick-adopt.py) for guided adoption - Comprehensive CHANGELOG.md documenting all changes from 0.3.0 to 0.4.0 SECURITY & PRIVACY: - Selective branch creation prevents sensitive files from ever entering public branch history - Enhanced private content protection with comprehensive pattern matching - Cross-platform vim backup file protection (*.*~ and *~) - History cleaning integration with git filter-repo for post-hoc repository cleaning INFRASTRUCTURE: - Cross-environment hook support for universal Python compatibility - Enhanced GitHub template generation and project detection - Improved adopt command with comprehensive workflow support - RepoKit project signature with .repokit.json configuration Ready for production deployment and CASCADE continuation to test branch.
2 parents 128ab25 + d60f9f0 commit 3305d40

44 files changed

Lines changed: 8074 additions & 285 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.repokit.json

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
{
2+
"name": "my-project",
3+
"description": "A new project repository",
4+
"language": "generic",
5+
"default_branch": "main",
6+
"branches": [
7+
"main",
8+
"dev",
9+
"staging",
10+
"test",
11+
"live"
12+
],
13+
"worktrees": [
14+
"main",
15+
"dev"
16+
],
17+
"directories": [
18+
"convos",
19+
"docs",
20+
"logs",
21+
"private",
22+
"revisions",
23+
"scripts",
24+
"tests"
25+
],
26+
"private_dirs": [
27+
"private",
28+
"convos",
29+
"logs"
30+
],
31+
"private_branch": "private",
32+
"github": true,
33+
"use_github_noreply": true,
34+
"user": {
35+
"name": "",
36+
"email": ""
37+
},
38+
"branch_config": {
39+
"branch_directories": {
40+
"main": "github",
41+
"dev": "dev"
42+
},
43+
"branch_roles": {
44+
"main": "production",
45+
"dev": "development",
46+
"staging": "pre-release",
47+
"test": "testing",
48+
"live": "live",
49+
"private": "personal"
50+
},
51+
"branch_flow": {
52+
"private": [
53+
"dev"
54+
],
55+
"dev": [
56+
"staging",
57+
"test"
58+
],
59+
"test": [
60+
"staging"
61+
],
62+
"staging": [
63+
"main"
64+
],
65+
"main": [
66+
"live"
67+
]
68+
}
69+
},
70+
"branch_strategy": "standard",
71+
"branch_strategies": {
72+
"standard": {
73+
"branches": [
74+
"main",
75+
"dev",
76+
"staging",
77+
"test",
78+
"live"
79+
],
80+
"worktrees": [
81+
"main",
82+
"dev"
83+
],
84+
"private_branch": "private"
85+
},
86+
"simple": {
87+
"branches": [
88+
"main",
89+
"dev"
90+
],
91+
"worktrees": [
92+
"main"
93+
],
94+
"private_branch": "private"
95+
},
96+
"gitflow": {
97+
"branches": [
98+
"main",
99+
"develop",
100+
"release",
101+
"hotfix"
102+
],
103+
"worktrees": [
104+
"main",
105+
"develop"
106+
],
107+
"private_branch": "private"
108+
},
109+
"github-flow": {
110+
"branches": [
111+
"main"
112+
],
113+
"worktrees": [
114+
"main"
115+
],
116+
"private_branch": "private"
117+
},
118+
"minimal": {
119+
"branches": [
120+
"main"
121+
],
122+
"worktrees": [],
123+
"private_branch": "main"
124+
}
125+
}
126+
}

CHANGELOG.md

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,121 @@ All notable changes to RepoKit will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.4.0] - 2025-06-06
9+
10+
### Added
11+
- **Comprehensive Sensitive File Cleanup System** - Complete protection against private content leaks
12+
- Branch-aware sensitive file detection and removal
13+
- Cross-platform vim backup file protection (*.*~ and *~)
14+
- Comprehensive pattern matching for private content (logs/, revisions/, private/, etc.)
15+
- Selective branch creation to prevent sensitive files from ever entering public branch history
16+
- Privacy-first approach - elimination of deletion commits that reveal private file paths
17+
18+
- **Enhanced Logging System** - Multi-level verbosity for improved debugging
19+
- Three verbosity levels: -v (INFO), -vv (DEBUG), -vvv (TRACE)
20+
- Component-specific loggers for detailed debugging
21+
- Improved error reporting and diagnostic information
22+
- Better troubleshooting support for adoption issues
23+
24+
- **Consolidated Configuration Management** - Centralized hardcoded configurations
25+
- All default configurations moved to defaults.py
26+
- Consistent pattern management across all components
27+
- Easier maintenance and configuration updates
28+
- Unified sensitive file pattern definitions
29+
30+
- **Cross-Environment Hook Support** - Universal compatibility improvements
31+
- Python executable detection across Windows/Unix environments
32+
- Proper shebang handling for different Python installations
33+
- Enhanced PATH-based Python discovery
34+
- Improved hook execution reliability
35+
36+
- **Comprehensive Documentation Suite** - User-friendly guides and tutorials
37+
- ELI5 documentation explaining why RepoKit exists (docs/Why-RepoKit-Exists.md)
38+
- Detailed adoption tutorial with step-by-step examples (docs/Adoption-Guide.md)
39+
- Branch strategy documentation and use case guides (docs/Branch-Strategies.md)
40+
- Comprehensive recipes for common scenarios (docs/Recipes-And-Howtos.md)
41+
- Enhanced CLI help with real-world examples and detailed usage instructions
42+
43+
- **User-Friendly Launcher Script** - Quick adoption workflow
44+
- Interactive script for guided repository adoption (scripts/repokit-quick-adopt.py)
45+
- Question-based configuration for non-technical users
46+
- Simplified deployment process with automatic GitHub integration
47+
48+
- **History Cleaning Integration** - Post-hoc repository cleaning capabilities
49+
- Integration of git filter-repo based history cleaning into adopt workflow
50+
- Recipe-based cleaning for common sensitive content patterns
51+
- Safe repository adoption with automatic history protection
52+
53+
- **Centralized Version Management** - Consistent version handling
54+
- Single source of truth for version information (__version__.py)
55+
- Automated version update script (scripts/update_version.py)
56+
- Dynamic version reading in setup.py and other files
57+
- Consolidated version management across all components
58+
59+
### Enhanced
60+
- **GitHub Template Generation** - Fixed missing templates in adopt workflow
61+
- Proper template detection and generation for existing RepoKit projects
62+
- Comprehensive GitHub workflow, issue template, and CODEOWNERS generation
63+
- Improved project type detection and template selection
64+
65+
- **RepoKit Project Detection** - Better existing project identification
66+
- Enhanced detection of existing RepoKit installations
67+
- Improved handling of partial RepoKit configurations
68+
- Better decision making for template generation
69+
70+
- **Adopt Command Functionality** - Comprehensive workflow improvements
71+
- Enhanced sensitive file cleanup during adoption
72+
- Improved branch creation and isolation strategies
73+
- Better conflict resolution and error handling
74+
- Comprehensive testing and validation
75+
76+
### Fixed
77+
- **Vim Backup File Protection** - Complete pattern coverage
78+
- Fixed vim backup patterns to properly handle *.*~ files
79+
- Cross-platform compatibility for vim backup detection
80+
- Comprehensive protection against all vim temporary file types
81+
82+
- **Working Directory Preservation** - Safe adoption process
83+
- Prevention of file deletion from working directory during adoption
84+
- Proper git index management during branch creation
85+
- Safe handling of existing files during repository conversion
86+
87+
- **Method Name Consistency** - Code reliability improvements
88+
- Fixed incorrect method calls in history cleaning integration
89+
- Consistent API usage across all components
90+
- Improved error handling and validation
91+
92+
- **Import Path Resolution** - Test reliability improvements
93+
- Fixed relative import issues in test framework
94+
- Consistent module loading across environments
95+
- Better package structure management
96+
97+
### Security
98+
- **Enhanced Private Content Protection** - Multiple layers of security
99+
- Guardrails implementation with override mechanisms
100+
- Pre-commit hook validation for sensitive content
101+
- Branch-specific file exclusion and protection
102+
- Comprehensive private directory pattern matching
103+
- Prevention of sensitive file history in public branches
104+
105+
- **Git History Privacy** - Elimination of privacy violations
106+
- Selective branch creation to prevent sensitive files from entering git history
107+
- No deletion commits that reveal private file paths
108+
- Privacy-first approach to repository adoption and management
109+
110+
### Documentation
111+
- **Complete User Guide Suite** - Comprehensive learning resources
112+
- Step-by-step adoption tutorials with real examples
113+
- Branch strategy explanations and recommendations
114+
- Common scenario recipes and troubleshooting guides
115+
- Enhanced CLI documentation with practical examples
116+
117+
### Testing
118+
- **UNCtools Integration Testing** - Real-world validation
119+
- Comprehensive testing with actual project adoption scenarios
120+
- Validation of sensitive file protection in practice
121+
- End-to-end workflow testing with GitHub deployment
122+
8123
## [0.3.0] - 2025-05-31
9124

10125
### Added

README.md

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# RepoKit
22

33
[![GitHub Workflow Status](https://github.com/djdarcy/git-repokit/actions/workflows/main.yml/badge.svg)](https://github.com/djdarcy/git-repokit/actions)
4-
[![Version](https://img.shields.io/badge/version-0.2.0-blue)](https://github.com/djdarcy/git-repokit/releases)
4+
[![Version](https://img.shields.io/badge/version-0.4.0-blue)](https://github.com/djdarcy/git-repokit/releases)
55
[![Python](https://img.shields.io/badge/python-%3E%3D3.7-darkgreen)](https://python.org/downloads)
66
[![License](https://img.shields.io/badge/license-MIT-orange)](https://github.com/djdarcy/git-repokit/blob/main/LICENSE)
77
[![GitHub Discussions](https://img.shields.io/badge/discussions-Welcome-lightgrey)](https://github.com/djdarcy/git-repokit/discussions)
@@ -294,10 +294,4 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
294294
- https://www.atlassian.com/continuous-delivery
295295
- https://www.perforce.com/manuals/p4sag/Content/P4SAG/branches-best-practices.html
296296
- Built for developers who value consistency and automation
297-
- Special thanks to the open-source community
298-
299-
---
300-
301-
**Current Version**: 0.2.0
302-
**Requirements**: Python 3.7+
303-
**No Runtime Dependencies**: Pure Python implementation
297+
- Special thanks to the open-source community

configs/history-protection.json

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
{
2+
"name": "example-project",
3+
"description": "Example configuration for history protection",
4+
"history_protection": {
5+
"branch_rules": {
6+
"prototype/*": {
7+
"action": "squash",
8+
"auto": true,
9+
"message_template": "feat: prototype implementation"
10+
},
11+
"experiment/*": {
12+
"action": "squash",
13+
"auto": true
14+
},
15+
"spike/*": {
16+
"action": "squash",
17+
"auto": true
18+
},
19+
"feature/*": {
20+
"action": "interactive",
21+
"auto": false,
22+
"preserve_last": 3
23+
},
24+
"bugfix/*": {
25+
"action": "preserve",
26+
"auto": true
27+
},
28+
"hotfix/*": {
29+
"action": "preserve",
30+
"auto": true
31+
},
32+
"wip/*": {
33+
"action": "squash",
34+
"auto": true,
35+
"message_template": "wip: development changes"
36+
}
37+
},
38+
"sensitive_patterns": [
39+
"private/",
40+
"secret",
41+
"password",
42+
"token",
43+
"api[_-]key",
44+
"TODO:\\s*hack",
45+
"FIXME:\\s*security",
46+
"DO NOT COMMIT",
47+
"@nocommit",
48+
"TEMP:",
49+
"DEBUG:",
50+
"XXX:",
51+
"\\bkey\\s*=\\s*[\"'].*[\"']"
52+
]
53+
}
54+
}

0 commit comments

Comments
 (0)