The analyzer now shows file changes for each commit and provides intelligent suggestions for better commit messages based on the actual changes made.
- Each commit card now has a "📁 View Changes" button
- Click to expand and see all files modified in that commit
- Shows file status (added, removed, modified, renamed)
For each file, displays:
- Filename - Full path to the file
- Status - Color-coded badge (green=added, red=removed, blue=modified, orange=renamed)
- Statistics - Number of lines added (+) and deleted (-)
Shows overall commit impact:
- Files Changed - Total number of files modified
- Additions - Total lines added (green)
- Deletions - Total lines removed (red)
Based on the files changed, the tool suggests better commit messages:
Examples:
- Single file added:
feat: add filename.js - Single file removed:
refactor: remove filename.js - Multiple files with tests:
test: add comprehensive test coverage - Multiple files with docs:
docs: update documentation - Multiple files with config:
chore: update configuration files - Multiple additions:
feat: add new features (5 files) - Multiple modifications:
refactor: improve code structure (8 files)
User clicks "View Changes"
↓
Fetches commit details from GitHub API
↓
Extracts file changes and statistics
↓
Analyzes file types and patterns
↓
Generates intelligent suggestions
↓
Displays results with visual indicators
GET /repos/{owner}/{repo}/commits/{sha}
Returns:
- Commit message and metadata
- Array of files with:
- filename
- status (added/removed/modified/renamed)
- additions (lines added)
- deletions (lines removed)
- patch (diff content)
- Statistics (total additions/deletions)
The suggestion generator analyzes:
-
File Count
- Single file: Specific suggestion for that file
- Multiple files: General suggestion
-
File Types
- Test files (test, spec): Suggests test-related message
- Documentation (README, .md): Suggests docs message
- Config files (config, package.json, .env): Suggests chore message
-
Change Type
- Added files: Uses "feat" (feature)
- Removed files: Uses "refactor" (refactoring)
- Modified files: Uses "fix" or "refactor"
-
Conventional Commits Format
- Follows standard:
<type>(<scope>): <subject> - Types: feat, fix, refactor, test, docs, chore
- Scope: Optional, derived from filename
- Follows standard:
Files Changed:
- src/components/Button.tsx (ADDED, +45 lines)
Suggestion:
feat: add Button component
Files Changed:
- src/utils/api.ts (MODIFIED, +20 lines, -5 lines)
- src/utils/helpers.ts (MODIFIED, +15 lines, -10 lines)
- tests/api.test.ts (ADDED, +50 lines)
Suggestion:
test: add comprehensive test coverage
Files Changed:
- package.json (MODIFIED, +2 lines, -1 line)
- .env.example (MODIFIED, +3 lines)
- webpack.config.js (MODIFIED, +10 lines, -5 lines)
Suggestion:
chore: update configuration files
- Main component for displaying file changes
- Fetches commit details from GitHub API
- Generates suggestions
- Manages expand/collapse state
- Color-coded badges for file status
- Green for additions
- Red for deletions
- Blue for modifications
- Orange for renames
- Learn from Real Code - See what changes were actually made
- Better Commit Messages - Get suggestions based on actual changes
- Understand Patterns - Learn how experienced developers write commits
- Improve Quality - Use suggestions to write better messages
- GitHub API rate limit: 60 requests/hour (unauthenticated)
- Patch content not displayed (only file metadata)
- Works only with public repositories
- Show actual diff/patch content
- Filter commits by file type
- Compare commit message with suggested message
- Track improvement over time
- Export suggestions as guidelines
Try these repositories to see different commit patterns:
torvalds/linux- Large kernel commitsfacebook/react- Feature-rich commitsnodejs/node- Mixed commit typespython/cpython- Well-documented commits