Конвертер репозитория GitLab в текст

Преобразуйте проект GitLab в один текстовый файл для ChatGPT, Claude или Gemini. Выберите файлы, которые имеют значение, пропустите шум. Бесплатно и ничего не нужно устанавливать.

GitLab Репо в текст: один файл, который ваш LLM действительно может прочитать

Вставка кода в окно чата по одному файлу за раз — плохой способ провести день. Модель отвечает на каждый вопрос, раскрывая суть вашего проекта, вам все время приходится говорить: «Подожди, вот другой файл, который он импортирует», и к тому времени, когда контекст завершен, разговор ушел в сторону. Исправление скучное и эффективное: заранее дайте ему весь соответствующий фрагмент репозитория за один раз. блок текста.

Вот что делает эта страница. Это кратчайший путь от репозитория GitLab до контекста LLM: вставьте https://gitlab.com/... URL-адрес проекта, инструмент считывает дерево репозитория через API GitLab, и вы получаете дерево флажков для каждого файла. Отметьте, что важно, снимите галочку с того, что не нужно, нажмите «Создать». Выходит карта каталогов, за которой следует полное содержимое файлов. вы выбрали, с указанием количества жетонов, чтобы вы знали, подходит ли он. Скопируйте его, загрузите в виде текста или возьмите выбранные файлы в формате ZIP.

Вставьте URL-адрес, который вы уже просматриваете

Нет идентификатора проекта для поиска и отдельного поля пространства имен. Скопируйте URL-адрес из браузера адресную строку и вставьте ее. Вложенные подгруппы работают — привычка GitLab хоронить проект три или четыре уровни глубоко под company/platform/services/billing обрабатывается, поскольку путь проекта получает URL-кодировку до того, как достигнет API.

Если скопированный вами URL-адрес включает ветку или тег, используется эта ссылка. Если это просто URL-адрес проекта, ветка проекта по умолчанию разрешается автоматически, поэтому вам не нужно запоминать, является ли эта конкретная расчет по репо main, master, или develop. Дерево выбрано рекурсивно и с разбивкой на страницы, что имеет большее значение, чем кажется — множество монорепозиториев GitLab запускаются в тысячи файлов, и один запрос без разбивки на страницы незаметно выдаст вам усеченный проект.

Частные проекты и куда именно пойдет ваш токен

Общественным проектам ничего не нужно. Для частного добавьте токен личного доступа GitLab, и он будет отправлен как PRIVATE-TOKEN заголовок запросов к API GitLab. Будьте осторожны при вставке токена в веб-инструмент — это правильный инстинкт, поэтому вот простая версия: токен хранится в вашем браузере localStorage и привык только звонить gitlab.com прямо из вашего браузера. Он не отправляется ни на один наш сервер, потому что запросы не проходят через него.

Область только для чтения — это все, что ему нужно. read_api или read_repository. Не отдавай это доступ для записи, который он никогда не будет использовать, и установите срок действия, пока вы находитесь на экране токена. Это также стоит добавление токена даже для общедоступных репозиториев: неаутентифицированные вызовы API GitLab ограничены по скорости, поэтому, если вы выполняете большой проект или повторно запускаете одно и то же преобразование несколько раз, аутентифицированный запрос в этом разница между плавной выборкой и стеной ошибок.

Самоуправляемый GitLab: Честный ответ

Этот инструмент общается с gitlab.com и только gitlab.com. Там нет поля для пользовательского URL-адрес экземпляра и вставка gitlab.yourcompany.internal не сработает. Если вы находитесь на самостоятельном хостинге или самоуправляемый экземпляр, это категорически нет.

Хорошей новостью является то, что лучшим ответом для самоуправляемого экземпляра в любом случае никогда не был вызов API. Клонировать репо — у вас уже есть учетные данные — и укажите конвертер локальных каталогов в папке. Он считывает файлы через файловые API браузера, поэтому ничего не загружается и ничего не покидает ваш компьютер. Для частного экземпляра, находящегося за корпоративным брандмауэром, это версия, которую подойдет вашей команде безопасности. попросил несмотря ни на что. То же дерево флажков, тот же вывод, то же количество токенов. Также требуется ZIP, если вы предпочитаете экспортировать архив, а не клонировать.

Что выбрать, а что исключить

Все начинается с проверки, что является неправильным выбором почти для каждого реального проекта. Инстинкт, когда вы конвертируете репозиторий GitLab в текст, чтобы взять его все; сопротивляйся этому. Полезный дамп репозитория является курируемым: бюджет токенов, который вы тратите на генерируемый шум, — это бюджет, который модель не тратит на ваш фактический код. Сначала снимите галочки:

  • Поставщики и установленные зависимостиnode_modules, vendor, .venv, все, что было получено из реестра пакетов. Модель уже знает, что такое Экспресс похоже.
  • Файлы блокировки. package-lock.json, yarn.lock, poetry.lock, Gemfile.lock. Файл блокировки может содержать десятки тысяч токенов хэши и контакты версий, которые не отвечают ни на один вопрос, который кто-либо когда-либо задавал. Сохраните манифест, снимите блокировку.
  • Создавайте выходные данные и минимизируйте ресурсыdist, build, .next, скомпилированные пакеты, исходные карты. Это ваш собственный код, сформулированный в форме, которую ничто не может рассуждать о.
  • Снимки и приспособления. Большие тестовые приспособления и файлы снимков повторяются из-за дизайн. Пара представительных обыграла все четыре сотни.
  • Миграции, в основном. Каталог схемы с шестилетней инкрементной миграцией стоит включать только тогда, когда речь идет о самой истории миграции.

Сохраните все, что объясняет намерения: исходные файлы, README, манифест и .gitlab-ci.yml. Последний совет — настоящий GitLab — в конфигурации CI Шаги сборки, команды тестирования, цели развертывания и предположения о среде — все это находится в одном месте. Включите это и модель может ответить: «Почему это не удается в CI, но проходит локально» вместо того, чтобы гадать.

Переключение просмотра каталогов — это вторая половина этого. Перешел на Полный, вывод включает в себя полную структуру репозитория с отмеченными выбранными вами файлами, чтобы модель могла видеть, что payments модуль существует, даже если вы его не включили — полезный контекст, дешевый в токенах. Перешел на Отфильтровано, отображается только то, что вы выбрали. Полный обычно является лучшим значением по умолчанию. когда вы выбрали один сервис из монорепозитория; отфильтрованный более аккуратен, когда вы отправляете целенаправленное несколько файлов.

Вакансии, которые действительно хороши

  • Попадание на незнакомый проект. Выберите исходный каталог, README и CI. config, затем запросите описание точек входа и направления запроса после его поступления. Двадцать минут ориентации, сжатые в одну подсказку.
  • Проверка мерж-реквеста с его окружением. Разница говорит вам, что изменилось; это не сообщает вам, что еще вызывает измененную функцию. Экспортируйте затронутый каталог и его соседи, вставьте рядом с ним разницу, и вы получите комментарии о последствиях, а не стиль.
  • Написание документации никто не писал. Загрузите модуль и запросите README, файл примечания по архитектуре или строки документации, которые соответствуют существующим соглашениям кода, а не изобретают новые.
  • Генерация тестов. Включите модуль плюс два или три существующих тестовых файла. вторая часть — это то, что делает вывод пригодным для использования — модель копирует ваши фикстуры, имена и утверждения. стиль вместо того, чтобы создавать что-то, что не вписывается в комплект.
  • Работа по миграции и обновлению. Изменения в версии Framework, переписывание языка, замена ОРМ. Им нужна видимость всей кодовой базы, чтобы уловить каждый сайт вызова, а это именно то, что экспорт текста дает вам.
  • Аудиты. Спросите, где считываются секреты, какие конечные точки пропускают аутентификацию или что все еще попадает в устаревший внутренний API. Подобные широкие вопросы, на которые нет ответов, файл за файлом.

В большинстве из них интересной частью является один каталог службы, а не вся группа. Выберите это поддерево, оставьте остальное и проверьте количество токенов перед вставкой — оно генерируется с помощью gpt-tokenizer библиотека, так что это реальный показатель, который вы можете сравнить с контекстом вашей модели. окно вместо догадки. Вывод один и тот же независимо от того, экспортируете ли вы код GitLab для прохода проверки ИИ или превратить проект GitLab в текстовый файл для ChatGPT, Claude или Gemini — один файл, и вы сможете его прочитать прежде чем отправить его.

Файлы, находящиеся рядом с вашим кодом

Репозитории — это не только исходные файлы. Конфигурация, схемы, исходные данные и спецификации фиксируются одновременно, и некоторые из них плохо читаются в сыром виде. Структурированные форматы лучше подходят как Markdown: JSON в Markdown для конфигурации и полезные нагрузки API, XML в Markdown для файлы Maven, Android и устаревшие файлы SOAP, которые никогда не исчезали, CSV в Markdown для исходных данных и экспорт и HTML для Markdown для шаблоны и созданные документы. Характеристики, пришедшие в качестве PDF конвертировать тоже, и ZIP-архив можно распрямить прямо в текст. File2Txt справляется со всем если вы предпочитаете не выбирать страницу.

Часто задаваемые вопросы

Как преобразовать репозиторий GitLab в текстовый файл?

Вставьте URL-адрес проекта выше, и дерево файлов загрузится в виде списка флажков. Выберите нужные файлы и экспортируйте один текстовый файл со структурой каталогов вверху и каждым файлом внизу, начиная с его пути. Бесплатно, без установки и регистрации.

Работает ли это с самостоятельным размещением GitLab?

Самоуправляемые экземпляры предоставляют тот же REST API, что и gitlab.com, поэтому доступный экземпляр ведет себя таким же образом. Загвоздка заключается в доступе к сети: экземпляр, находящийся за корпоративной VPN или частной сетью, недоступен с вкладки вашего браузера, и никакое количество токенов этого не изменит. Для этого клонируйте проект и используйте конвертер локальных папок.

Как мне преобразовать частный проект GitLab?

Предоставьте токен личного доступа с read_repository сфера применения. Создайте его в разделе «Настройки» → «Токены доступа», дайте ему самый короткий срок действия, охватывающий ваш сеанс, а затем удалите его. Все, что для этого нужно, — это доступ только для чтения. Токен с возможностью записи или областью действия всего API обеспечивает большую доступность, чем требуется для задачи.

Зачем использовать это вместо клонирования репо?

Клонирование дает вам рабочее дерево, форма которого не подходит для этой работы. Модель хочет, чтобы один документ содержал структуру и содержимое вместе, с удаленным шумом. Клонирование также извлекает всю историю и все зависимости — обычно гораздо больше байтов, чем источник, о котором вы действительно хотите рассуждать.

Обрабатывает ли он подгруппы и вложенные пути проектов?

Да. Структура вложенных групп GitLab означает, что пути проекта состоят из нескольких сегментов, а полный путь идентифицирует проект — вставьте полный URL-адрес из адресной строки браузера, а не собирайте его вручную, и поиск будет выполнен правильно.

Могу ли я преобразовать разницу в мерж-реквесте вместо всего проекта?

Не с этой страницы — он работает с деревом репозитория по заданной ссылке. Для работы по проверке обычно конвертируется файл, которого касается мерж-реквест, вставляется в качестве контекста, а затем вставляется сам дифф. Модель нуждается в окружающем коде, чтобы оценить изменение, а разница сама по себе редко обеспечивает это.

Все остальное в наборе инструментов

Вместо этого кодируйте GitHub? GitHub репозиторий в текст преобразователь работает так же. Только на вашем компьютере или на самоуправляемом экземпляре, который вы клонировали? Использование тот конвертер локальных каталогов. Нужен сайт документации, а не источник, который ее генерирует? Web2Txt копирует URL-адрес в Markdown.

Для более длинных аргументов, стоящих за всем этим, есть руководство по подача репозитория в модель ИИ, один на превращение базы кода в файл, готовый к LLM, а Полное руководство по конвертации репозиториев для LLM, и более обширная статья о подготовка файлов для инструментов ИИ.

Repo2Txt создан и поддерживается v12hero, независимый разработчик, создающий собственные и веб-приложения, ориентированные на конфиденциальность.