Transforme qualquer repositório Git em um texto otimizado para prompts de LLMs.
Você também pode substituir hub
por ingest
em qualquer URL do GitHub para acessar o resumo correspondente.
gitingest.com · Extensão para Chrome · Complemento para Firefox
Deutsch | Español | Français | 日本語 | 한국어 | Português | Русский | 中文
Gitingest está disponível no PyPI.
Você pode instalá-lo usando pip
:
pip install gitingest
No entanto, pode ser uma boa ideia usar pipx
para instalá-lo.
Você pode instalar pipx
usando seu gerenciador de pacotes preferido.
brew install pipx
apt install pipx
scoop install pipx
...
Se estiver usando pipx pela primeira vez, execute:
pipx ensurepath
# install gitingest
pipx install gitingest
A extensão é de código aberto em lcandy2/gitingest-extension.
Problemas e solicitações de recursos são bem-vindos no repositório.
A ferramenta de linha de comando gitingest
permite analisar bases de código e criar um dump de texto de seus conteúdos.
# 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
Para repositórios privados, use a opção --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
Por padrão, arquivos listados no .gitignore
são ignorados. Use --include-gitignored
se precisar desses arquivos no resumo.
Por padrão, o resumo é gravado em um arquivo de texto (digest.txt
) no seu diretório de trabalho atual. Você pode personalizar a saída de duas maneiras:
--output/-o <nome_do_arquivo>
para gravar em um arquivo específico.--output/-o -
para enviar diretamente para STDOUT
(útil para redirecionar para outras ferramentas).Veja mais opções e detalhes de uso com:
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")
Para repositórios privados, você pode passar um token:
# 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")
Por padrão, isso não gravará um arquivo, mas pode ser habilitado com o argumento 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")
Isso ocorre porque notebooks Jupyter são assíncronos por padrão.
Construa a imagem:
docker build -t gitingest .
Execute o container:
docker run -d --name gitingest -p 8000:8000 gitingest
O aplicativo estará disponível em http://localhost:8000
.
Se estiver hospedando em um domínio, você pode especificar os nomes de host permitidos via variável de ambiente ALLOWED_HOSTS
.
# Default: "gitingest.com, *.gitingest.com, localhost, 127.0.0.1".
ALLOWED_HOSTS="example.com, localhost, 127.0.0.1"
O Gitingest visa ser amigável para contribuidores iniciantes, com um código simples em Python e HTML. Se precisar de ajuda enquanto trabalha com o código, entre em contato conosco no Discord. Para instruções detalhadas sobre como fazer um pull request, consulte CONTRIBUTING.md.
Confira a alternativa NPM 📦 Repomix: https://github.com/yamadashy/repomix