Skip to main content

A tool to track Git contributions, generate detailed reports, and motivate contributors.

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kreeck-0.1.2.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kreeck-0.1.2-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file kreeck-0.1.2.tar.gz.

File metadata

  • Download URL: kreeck-0.1.2.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for kreeck-0.1.2.tar.gz
Algorithm Hash digest
SHA256 e6a228eb7b711ec0933b0ca5555875155d35624933009053d8e1ea557d5fb618
MD5 0fd6824390f076afba167781a8a2fdf3
BLAKE2b-256 27ed6e594df50264de5056d864df251ff0f4fad5fefa5f533534565042415122

See more details on using hashes here.

File details

Details for the file kreeck-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: kreeck-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for kreeck-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 247685e3655877253ce9ecd36bf4c52a49b6ee00be17f548f866336be6cadf1c
MD5 c06f09c8168a9c1b227f03808f2f6670
BLAKE2b-256 fe06432357c78304987e98c368c4ca1f2282003953561a8b3b4a790989eae003

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page