gitingest/README.md
Filip Christiansen 4e5c9521e8
Refactor, Documentation, and Code Cleanup (#70)
Code Quality:
- Add markdownlint to pre-commit hooks for consistent markdown formatting
- Add missing type hints to constants and variables
- Prefix helper functions with underscore for better encapsulation

Documentation:
- Update README.md to follow markdown best practices
- Add docstrings to functions in process_query.py, server_utils.py and main.py

Refactoring:
- Remove redundant normalize_pattern function from client.py
- Simplify logic in should_exclude function in ingest_from_query.py
- Improve code organization in clone.py
- Move async_timeout comment into function body for better context
2024-12-30 02:53:17 +01:00

3.7 KiB

GitIngest

License PyPI version Downloads GitHub issues Code style: black Discord

Image

Turn any Git repository into a prompt-friendly text ingest for LLMs.

You can also replace hub with ingest in any github url to access the coresponding digest

gitingest.com

🚀 Features

  • Easy code context: Get a text digest from a git repository URL or a directory
  • Smart Formatting: Optimized output format for LLM prompts
  • Statistics about:
    • File and directory structure
    • Size of the extract
    • Token count
  • CLI tool: Run it as a command (Currently on Linux only)
  • Python package: Import it in your code

📦 Installation

pip install gitingest

💡 Command Line usage

The gitingest command line tool allows you to analyze codebases and create a text dump of their contents.

# Basic usage
gitingest /path/to/directory

# From url
gitingest https://github.com/cyclotruc/gitingest

# See more options
gitingest --help

This will write the digest in a text file (default digest.txt) in your current working directory.

🐛 Python package usage

from gitingest import ingest

summary, tree, content = ingest("path/to/directory")

# or from URL
summary, tree, content = ingest("https://github.com/cyclotruc/gitingest")

By default, this won't write a file but can be enabled with the output argument

🛠️ Using

🌐 Self-host

  1. Build the image:

    docker build -t gitingest .
    
  2. Run the container:

    docker run -d --name gitingest -p 8000:8000 gitingest
    

The application will be available at http://localhost:8000 Ensure environment variables are set before running the application or deploying it via Docker.

✔️ Contributing

Contributions are welcome!

Gitingest aims to be friendly for first time contributors, with a simple python and html codebase. If you need any help while working with the code, reach out to us on discord

Ways to contribute

  1. Provide your feedback and ideas on discord
  2. Open an Issue on github to report a bug
  3. Create a Pull request
    • Fork the repository
    • Make your changes and test them locally
    • Open a pull request for review and feedback

🔧 Local dev

Environment Configuration

  • ALLOWED_HOSTS: Specify allowed hostnames for the application. Default: "gitingest.com,*.gitingest.com,gitdigest.dev,localhost". You can configure the application using the following environment variables:
ALLOWED_HOSTS="gitingest.local,localhost"

Run locally

  1. Clone the repository

    git clone https://github.com/cyclotruc/gitingest.git
    cd gitingest
    
  2. Install dependencies

    pip install -r requirements.txt
    
  3. Run the application:

    cd src
    uvicorn main:app --reload