Kreeck - Git Contribution Analyser
Kreeck is a powerful tool designed to help developers and project managers track Git contributions, generate detailed reports, and motivate contributors through gamification. Whether you are managing a large open-source project or a small team, Kreeck provides insightful analytics to enhance collaboration and productivity.
Features
1. Commit Frequency Analysis
- Visualize Commit Activity: Generate charts that display commit frequency over time, helping you identify peak activity periods.
- Highlight Active Contributors: See which contributors are most active and during what times.
2. File Type Contributions
- Analyze Contributions by File Type: Break down contributions by file types such as Python, JavaScript, HTML, etc.
- Identify Specialized Contributions: Understand which contributors are working on specific parts of the project.
3. Commit Messages Analysis
- Pattern and Keyword Analysis: Analyze commit messages for common patterns and keywords.
- Sentiment Analysis: Gauge the sentiment of commit messages to understand the team’s mood and focus.
4. Top Commits
- Identify Significant Commits: Highlight the most significant commits based on the number of lines changed or important keywords.
- Detailed Commit Breakdown: Provide a detailed view of the top commits and their impact on the project.
5. Gamification
- Motivate Contributors: Introduce gamification elements like badges and leaderboards to motivate contributors.
- Recognize Achievements: Award badges (e.g., Gold, Silver, Bronze) based on the number of lines contributed.
6. Integration with CI/CD
- Automate Report Generation: Integrate with CI/CD pipelines to run analysis automatically after each build.
- Real-time Insights: Provide real-time insights into contributions and code quality.
7. Historical Comparison
- Track Progress Over Time: Compare current contribution data with historical data to show trends and progress.
- Identify Long-term Contributors: Highlight long-term contributors and changes in contribution patterns.
Installation
To install Kreeck, use pip:
pip install kreeck
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## Version 0.1.0.6
### Enhancements:
1. **Contribution Analysis Functionality:**
- Improved `analyse_file_type_contributions` function to include known file types and handle unknown file types better.
- Added processing logic for file types without extensions.
- Improved error handling and consistency in file type detection.
2. **Historical Comparison:**
- Enhanced the `create_historical_comparison` function to generate historical data from commits for GitHub repositories.
- Removed dependency on local storage for historical data in GitHub repositories.
- Added in-memory visualization for current contributions in GitHub repositories.
### CI/CD Improvements:
1. **PyPI Deployment Workflow:**
- Created a new GitHub Actions workflow specifically for deployment to PyPI.
- Workflow triggers on push to the `deployment` branch.
- Added automatic version incrementing in `setup.py`.
- Included steps to build the package and upload to PyPI using `twine`.
### Dependencies:
1. **Package Installations:**
- Added installation steps for necessary dependencies such as `GitPython`, `matplotlib`, `python-dotenv`, `tqdm`, `requests`, `pandas`, `setuptools`, `wheel`, and `twine` in the workflow file.
### Bug Fixes:
1. **Module Not Found:**
- Fixed the `ModuleNotFoundError: No module named 'pandas'` by adding `pandas` to the list of dependencies in the workflow.
2. **OSError: Invalid Argument:**
- Resolved the error by ensuring that file paths are handled correctly, particularly for GitHub URLs.
## [0.1.0.5] - 2024-06-12
### Added
- GitHub repository visibility check to handle private and public repositories.
- Instructions for users to run analysis locally for private repositories.
- Progress bar for Git operations using `tqdm`.
- Commit frequency chart with date format `YY-MM-DD`.
### Changed
- Improved handling of GitHub API requests with authentication using personal access token.
- Updated email report functionality to handle both local and remote repositories.
### Fixed
- Fixed issue with GitHub API returning 404 for non-existent or inaccessible repositories.
## [0.1.0.4] - 2024-06-12
### Added
- New `info` command to display information about available commands and usage.
- Enhanced CLI with user-friendly command descriptions and examples.
### Changed
- Improved error handling for unsupported commands.
- Updated CLI help messages for better navigation.
### Fixed
- Correctly handle `Commit` objects and dictionary structures for local and remote repositories.
- Bug fix for handling empty repositories.
## [0.1.0.3] - 2024-06-12
### Added
- Support for analyzing GitHub URLs.
- Progress bars for all operations using `tqdm`.
- Enhanced email reporting with environment variable configuration.
- Function to handle both local repositories and GitHub URLs.
### Changed
- Improved date formatting for commit frequency charts to `YY-MM-DD`.
- Output contributions directly to the terminal for remote repositories.
### Fixed
- Bug fix for handling empty repositories.
- Correctly handle `Commit` objects and dictionary structures for local and remote repositories.
## [0.1.0.2] - 2024-06-11
### Added
- Initial implementation of Git contribution analysis.
- Markdown report generation for contributions.
- Commit frequency chart creation.
- Analysis of contributions by file type.
- Commit message analysis.
- Identification of top commits.
- Gamification elements such as badges.
- Historical comparison placeholder.
## [0.1.0.1] - 2024-06-11
### Added
- Initial setup and project scaffolding.
- Basic CLI structure and command handling.
- Environment variable support with `.env` configuration.
- Basic email sending functionality for reports.
Release files for kreeck 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| kreeck-0.1.2.tar.gz | 12.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kreeck-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.3 kB
Release files / kreeck-0.1.2.tar.gz
| Download URL | kreeck-0.1.2.tar.gz |
|---|---|
| Size | 12.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e6a228eb7b711ec0933b0ca5555875155d35624933009053d8e1ea557d5fb618
|
|
BLAKE2b-256 checksum How to use checksums |
27ed6e594df50264de5056d864df251ff0f4fad5fefa5f533534565042415122
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.4
|
Release files / kreeck-0.1.2-py3-none-any.whl
| Download URL | kreeck-0.1.2-py3-none-any.whl |
|---|---|
| Size | 11.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
247685e3655877253ce9ecd36bf4c52a49b6ee00be17f548f866336be6cadf1c
|
|
BLAKE2b-256 checksum How to use checksums |
fe06432357c78304987e98c368c4ca1f2282003953561a8b3b4a790989eae003
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.4
|