Преобразуйте любой Git-репозиторий в текстовый дайджест, удобный для LLM-промптов.
Также вы можете заменить hub
на ingest
в любом URL GitHub для доступа к соответствующему дайджесту.
gitingest.com · Расширение для Chrome · Дополнение для Firefox
Deutsch | Español | Français | 日本語 | 한국어 | Português | Русский | 中文
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
Исходный код расширения доступен в репозитории 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
# 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"))
from gitingest import ingest_async
# Use await directly in Jupyter
summary, tree, content = await ingest_async("path/to/directory")
Это связано с тем, что Jupyter notebook по умолчанию работает асинхронно.
Соберите образ:
docker build -t gitingest .
Запустите контейнер:
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"
Gitingest стремится быть дружелюбным для новых участников с простой кодовой базой на Python и HTML. Если вам нужна помощь, обращайтесь в Discord. Подробные инструкции по созданию pull request см. в CONTRIBUTING.md.
Ознакомьтесь с альтернативой на NPM 📦 Repomix: https://github.com/yamadashy/repomix