Code Monkey home page Code Monkey logo

joe-stifler / git_genie Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 34 KB

GitGenie is a Python CLI tool that helps developers improve the quality of their Git commit histories and pull request descriptions. It automates the generation of meaningful commit messages and compiles detailed pull request summaries.

License: MIT License

Python 100.00%
best-practices code-review commit-messages git large-language-models llms pull-requests semantic-versioning software-development version-control

git_genie's Introduction

GitGenie: Enhancing Git Workflow Quality

GitGenie is a Python-based command-line interface (CLI) tool designed to enhance the quality of Git commit histories and pull request descriptions. It automates the generation of meaningful commit messages and compiles detailed pull request summaries, streamlining the review process and improving project collaboration.

Motivation

The creation of GitGenie stems from a desire to:

  1. Improve Collaboration: Facilitate clearer, more informative commit histories and pull request descriptions, enhancing team collaboration and code review efficiency.
  2. Automate Repetitive Tasks: Reduce the manual effort involved in crafting commit messages and summarizing pull requests, allowing developers to focus on coding.
  3. Enforce Best Practices: Encourage the use of semantic versioning and detailed documentation, leading to better version control and project management.
  4. Leverage AI: Utilize the capabilities of large language models (LLMs) to analyze code changes and generate descriptive, semantic commit messages that adhere to Semantic Versioning 2.0.0.

Features

  • Automated Commit Message Generation: Creates commit messages based on staged changes, using LLMs to ensure they adhere to Semantic Versioning 2.0.0.
  • Pull Request Inspection: Generates a comprehensive summary of commit history for branch reviews, formatted for immediate use in pull request descriptions.
  • Intuitive CLI: Offers a simple and user-friendly command-line interface to inspect repositories and generate commit messages efficiently.
  • Versatile Usage: Ideal for individual developers, teams, and projects of any size aiming to maintain high-quality Git practices.

Requirements

No additional requirements are needed to run GitGenie. However, to use the clipboard functionality for copying commit messages, you may need to install xclip on Linux systems. You can do this by running the following command:

sudo apt-get install xclip

Installation

bashCopy code
pip install gitgenie

Usage

GitGenie simplifies your Git workflow. Here’s how to use it:

# Generate a commit message:
gitgenie generate -r /path/to/repo

# Inspect a repository for a pull request:
gitgenie inspect -r /path/to/repo -b feature-branch -o PR_summary.md

Roadmap

  • Implement commit message generation based on staged changes.
  • Add support for custom commit message templates.
  • Integrate AI models for commit message generation.
  • Enhance pull request inspection with additional metrics and insights, such as code complexity and test coverage.

Contributing

We welcome contributions! Please see our CONTRIBUTING.md for guidelines on how to make contributions. This includes information on commit messages, branch naming conventions, pull requests, and more. Your input helps make GitGenie even better.

License

GitGenie is released under the MIT License. See the LICENSE file for more details.

AI Involvement in Content Generation

This project leverages AI to assist in generating content, specifically for commit message creation and pull request description generation.

Acknowledgements

This project was crafted with insights from various resources, including Software Engineering at Google, to ensure adherence to best practices in software development.

git_genie's People

Contributors

joe-stifler avatar

Watchers

 avatar Kostas Georgiou avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.