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.1.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.1-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for kreeck-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e155cf6297c6affd5c4ea800078a0c027e41bc724c032894b4ab9ea13bcea466
MD5 079f48abebe43880c8e2b7994989a700
BLAKE2b-256 09c8cca24c05b3ace72dee07014a9f99269cbaf086d58c394d4392941de161f3

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for kreeck-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4deed57ab0fa693a8584d041635f0dace9bcd944b2c010dc8f6a2d84d2624fb8
MD5 56ea3fcadad0e5c49eb936355645c4fa
BLAKE2b-256 7104822a3c621fae62713f0927d60915cd2a3b8f8f1e3294b2ebaa1584aafa7a

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