Skip to content

Our Multi-Modal RAG for Git Commit History project is an intelligent search tool designed to boost developer productivity for debugging and onboarding. Its core requirement is a multi-modal RAG pipeline that uniquely indexes both text commit messages and the actual code diffs, allowing it to understand the "what" and "why" of any change.

Notifications You must be signed in to change notification settings

mahendrasaikumargandham/GitHub-commit-history-optimization-using-RAG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

The goal of this project is to build an intelligent search and analysis tool for Git repositories. Instead of relying on git log, grep, and git blame, this system allows developers to ask complex, natural-language questions about their codebase's history.

It uses a Multi-Modal Retrieval-Augmented Generation (RAG) approach. This is the key "requirement": it doesn't just index the text of commit messages. It also indexes the code diffs (the actual code that was added or removed). This allows the system to understand what changed, why it changed, and provide context-aware answers.

For example, a developer could ask:

"Why was the User schema modified last month?"

"When was the authentication logic in auth.py first introduced?"

"Show me the commit that fixed the-X-bug."

Core Requirements & Features These are the functional requirements the system must meet:

Data Ingestion: The system must be able to "ingest" a Git repository (either by cloning a remote URL or accessing a local path).

Multi-Modal Parsing: It needs to parse the repository and extract two distinct types of data for each commit:

Text Data: The commit message, author, and date.

Code Data: The actual code diffs (lines added/removed).

Vectorization: It must use embedding models to convert both the text messages and the code diffs into vector representations and store them in a vector database.

Intelligent Retrieval: When a user asks a question, the RAG pipeline must be smart enough to retrieve the most relevant commit messages and code chunks.

Generative Answers: The system must use a Large Language Model (LLM) to synthesize the retrieved context (messages + code) into a single, accurate, and human-readable answer.

Productivity Goals This project is designed to dramatically improve developer productivity in several key ways:

Faster Onboarding: New developers can quickly get up to speed by asking the repo why certain design decisions were made, rather than interrupting senior developers.

Efficient Debugging: Instead of spending hours using git blame to trace a bug, a developer can simply ask, "When did this line of code change, and what was the reason?"

Enhanced Code Archeology: Makes it trivial to find the origin of specific features, understand the evolution of a file, or locate security patches.

Knowledge Preservation: It turns the "lost knowledge" in commit histories into an active, searchable database.

Proposed Tech Stack This is the tech stack we've discussed for building this as a high-impact portfolio project:

Primary Language: Python (the standard for AI/ML and data pipelines).

RAG Framework: LlamaIndex or LangChain. These frameworks are essential for managing the RAG pipeline (data loading, indexing, retrieving, and generation).

Vector Database: ChromaDB. A great, open-source vector store that is easy to run locally, making it perfect for a portfolio project.

LLM (Large Language Model): An OpenAI model (e.g., GPT-4o) for the highest quality answers, or a local model like Llama 3 (using Ollama) for a free, private alternative.

Git Interaction: The GitPython library to programmatically read and parse the Git repository data.

About

Our Multi-Modal RAG for Git Commit History project is an intelligent search tool designed to boost developer productivity for debugging and onboarding. Its core requirement is a multi-modal RAG pipeline that uniquely indexes both text commit messages and the actual code diffs, allowing it to understand the "what" and "why" of any change.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published