gitlify
v1.1.0
Published
A powerful CLI tool to analyze uncommitted git changes with detailed reports, function detection, and beautiful terminal output
Downloads
24
Maintainers
Readme
GitLify 📁
A powerful CLI tool to analyze uncommitted git changes with detailed reports, function detection, and beautiful terminal output.
✨ Features
- 🔍 Git Analysis: Detect uncommitted changes in your repository
- 📊 Detailed Reports: Show additions, deletions, and change statistics
- 🧬 Function Detection: Identify which functions contain changes
- 🎨 Beautiful Output: Colorful terminal output with emojis and formatting
- 📈 Summary Statistics: Total files, lines added/removed, and most changed files
- 🔧 Multiple Formats: JSON, files-only, summary-only, and verbose modes
🚀 Quick Start
Installation
npm install gitlifyBasic Usage
npx gitlifyExample Output
📁 src/utils/math.ts
➕ 12 additions
➖ 3 deletions
📌 Changed in: calculateSum()
📁 src/index.ts
➕ 5 additions
📌 Changed in: main()
🧾 Summary:
- Total files changed: 2
- Total lines added: 17
- Total lines removed: 3📋 CLI Options
| Option | Short | Description |
|--------|-------|-------------|
| --verbose | -v | Show detailed output with line numbers |
| --json | -j | Output in JSON format |
| --files | -f | Show only file list |
| --summary | -s | Show only summary |
| --help | -h | Show help message |
🎯 Usage Examples
Basic Analysis
npx gitlifyVerbose Mode (with line numbers)
npx gitlify --verboseJSON Output
npx gitlify --jsonFiles Only
npx gitlify --filesSummary Only
npx gitlify --summary🏗️ Architecture
GitLify is built with a modular architecture:
- GitAnalyzer: Handles git commands and repository analysis
- DiffParser: Parses git diff output and extracts file changes
- CodeAnalyzer: Detects functions and methods in changed code
- Formatter: Creates beautiful terminal output with colors and formatting
- InputValidator: Security validation for file paths and inputs
- ErrorHandler: Custom error handling with security considerations
- Cache: Performance optimization with TTL-based caching
- ProgressReporter: Real-time progress reporting with ETA
- Config: Centralized configuration management
📦 Package Structure
gitlify/
├── bin/
│ └── gitlify.js # CLI entry point
├── src/
│ ├── index.js # Main GitLify class
│ ├── git-analyzer.js # Git repository analysis
│ ├── diff-parser.js # Git diff parsing
│ ├── code-analyzer.js # Function detection
│ ├── formatter.js # Output formatting
│ ├── config.js # Configuration management
│ └── utils/
│ ├── validator.js # Input validation
│ ├── error-handler.js # Error handling
│ ├── cache.js # Caching system
│ └── progress.js # Progress reporting
└── package.json🔧 Supported File Types
GitDiffers can detect functions in:
- JavaScript (
.js) - TypeScript (
.ts) - React JSX (
.jsx) - React TSX (
.tsx)
🎨 Output Formats
Standard Output
- File paths with emoji icons
- Addition/deletion counts with colored indicators
- Function names where changes occurred
- Summary statistics
Verbose Output
- All standard output features
- Line number ranges for changes
- More detailed information
JSON Output
{
"files": [
{
"filePath": "src/utils/math.ts",
"totalAdditions": 12,
"totalDeletions": 3,
"changedFunctions": ["calculateSum"],
"changedLines": 15
}
],
"summary": {
"totalFiles": 1,
"totalAdditions": 12,
"totalDeletions": 3
}
}🚀 Development
Prerequisites
- Node.js 14.0.0 or higher
- Git repository
Setup
git clone <repository>
cd gitlify
npm installSecurity Features
- ✅ Path traversal protection
- ✅ Command injection prevention
- ✅ Input validation
- ✅ Secure error handling
- ✅ File size limits
- ✅ Concurrent processing limits
🤝 Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Built with termcolorized for beautiful terminal output
- Inspired by the need for better git change analysis tools
- Designed for developer productivity and code review workflows
Made with ❤️ for the developer community
