Last translated: 25 Jun 2025

Translation Not Available Yet

This repository's README hasn't been translated yet. Once translated, it will be easier to read and understand in your native language (中文).

After translating, add the links to README so others can view it directly.

Gitingest

Image

Лицензия Версия PyPI Звёзды GitHub Загрузки

Discord

Преобразуйте любой Git-репозиторий в текстовый дайджест, удобный для LLM-промптов.

Также вы можете заменить hub на ingest в любом URL GitHub для доступа к соответствующему дайджесту.

gitingest.com · Расширение для Chrome · Дополнение для Firefox

Deutsch | Español | Français | 日本語 | 한국어 | Português | Русский | 中文

🚀 Возможности

  • Простой контекст кода: Получите текстовый дайджест из URL Git-репозитория или директории
  • Умное форматирование: Оптимизированный вывод для LLM-промптов
  • Статистика:
    • Структура файлов и директорий
    • Размер извлечённых данных
    • Количество токенов
  • CLI-инструмент: Запускайте как команду в терминале
  • Python-пакет: Импортируйте в свой код

📚 Требования

  • Python 3.8+
  • Для приватных репозиториев: Персональный токен доступа GitHub (PAT). Можно создать на https://github.com/settings/personal-access-tokens (Профиль → Настройки → Настройки разработчика → Персональные токены доступа → Точные токены)

📦 Установка

Gitingest доступен на PyPI. Установите с помощью pip:

pip install gitingest

Однако рекомендуется использовать pipx для установки. pipx можно установить через ваш менеджер пакетов.

brew install pipx
apt install pipx
scoop install pipx
...

Если вы используете pipx впервые, выполните:

pipx ensurepath
# install gitingest
pipx install gitingest

🧩 Использование расширения для браузера

Available in the Chrome Web Store Get The Add-on for Firefox Get from the Edge Add-ons

Исходный код расширения доступен в репозитории lcandy2/gitingest-extension.

Запросы на исправление ошибок и новые функции приветствуются в репозитории.

💡 Использование в командной строке

Инструмент gitingest позволяет анализировать кодовые базы и создавать текстовый дамп их содержимого.

# Basic usage (writes to digest.txt by default)
gitingest /path/to/directory

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

# or from specific subdirectory
gitingest https://github.com/cyclotruc/gitingest/tree/main/src/gitingest/utils

Для приватных репозиториев используйте опцию --token/-t.

# Get your token from https://github.com/settings/personal-access-tokens
gitingest https://github.com/username/private-repo --token github_pat_...

# Or set it as an environment variable
export GITHUB_TOKEN=github_pat_...
gitingest https://github.com/username/private-repo

По умолчанию файлы, перечисленные в .gitignore, пропускаются. Используйте --include-gitignored, если вам нужно включить эти файлы в дайджест.

По умолчанию дайджест записывается в текстовый файл (digest.txt) в текущей рабочей директории. Вы можете настроить вывод двумя способами:

  • Используйте --output/-o <имя_файла> для записи в конкретный файл.
  • Используйте --output/-o - для вывода напрямую в STDOUT (удобно для передачи другим инструментам).

Подробнее о параметрах и использовании:

gitingest --help

🐍 Использование Python-пакета

# Synchronous usage
from gitingest import ingest

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

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

# or from a specific subdirectory
summary, tree, content = ingest("https://github.com/cyclotruc/gitingest/tree/main/src/gitingest/utils")

Для приватных репозиториев можно передать токен:

# Using token parameter
summary, tree, content = ingest("https://github.com/username/private-repo", token="github_pat_...")

# Or set it as an environment variable
import os
os.environ["GITHUB_TOKEN"] = "github_pat_..."
summary, tree, content = ingest("https://github.com/username/private-repo")

По умолчанию файл не создаётся, но можно включить с помощью аргумента output.

# Asynchronous usage
from gitingest import ingest_async
import asyncio

result = asyncio.run(ingest_async("path/to/directory"))

Использование в Jupyter notebook

from gitingest import ingest_async

# Use await directly in Jupyter
summary, tree, content = await ingest_async("path/to/directory")

Это связано с тем, что Jupyter notebook по умолчанию работает асинхронно.

🐳 Самостоятельный хостинг

  1. Соберите образ:

    docker build -t gitingest .
    
  2. Запустите контейнер:

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

Приложение будет доступно по адресу http://localhost:8000.

При размещении на домене можно указать разрешённые хосты через переменную окружения ALLOWED_HOSTS.

   # Default: "gitingest.com, *.gitingest.com, localhost, 127.0.0.1".
   ALLOWED_HOSTS="example.com, localhost, 127.0.0.1"

🤝 Участие в разработке

Нетехнические способы внести вклад

  • Создать Issue: Если вы нашли ошибку или у вас есть идея для новой функции, создайте issue на GitHub. Это поможет нам отслеживать и расставлять приоритеты.
  • Расскажите о проекте: Если вам нравится Gitingest, поделитесь им с друзьями, коллегами и в соцсетях. Это поможет развить сообщество.
  • Используйте Gitingest: Лучшая обратная связь — это реальное использование! Если у вас возникли проблемы или есть идеи по улучшению, сообщите нам через issue или Discord.

Технические способы внести вклад

Gitingest стремится быть дружелюбным для новых участников с простой кодовой базой на Python и HTML. Если вам нужна помощь, обращайтесь в Discord. Подробные инструкции по созданию pull request см. в CONTRIBUTING.md.

🛠️ Стек технологий

Ищете JavaScript/FileSystemNode пакет?

Ознакомьтесь с альтернативой на NPM 📦 Repomix: https://github.com/yamadashy/repomix

🚀 Рост проекта

Star History Chart