Гибридный поиск по коду в GitLab: как я ускорил поиск по 100+ GitLab-проектам с часов до минут
Когда проектов в GitLab становится много, довольно быстро появляется одна и та же задача: найти, где используется конкретный API, URL, env-переменная или конфигурационный параметр.Пока репозиториев мало, всё просто: открыл поиск, ввел строку, получил результат. Но когда проектов уже больше сотни, а нужные вхождения ...
Когда проектов в GitLab становится много, довольно быстро появляется одна и та же задача: найти, где используется конкретный API, URL, env-переменная или конфигурационный параметр.Пока репозиториев мало, всё просто: открыл поиск, ввел строку, получил результат. Но когда проектов уже больше сотни, а нужные вхождения лежат не только в коде, но и в YAML-конфигах, Helm-чартах, .env и JSON-файлах, жизнь становится менее романтичной.Первый лобовой вариант — просто скачать все проекты локально и искать по ним через grep, ripgrep или IDE. Работает, но тащить 100+ репозиториев на локальную машину ради одной проверки — идея так себе. Ноутбук, скорее всего, энтузиазма не разделит.Мне хотелось искать прямо поверх GitLab, без локального зеркала всей группы репозиториев. Я начал с просмотра готовых вариантов, а в итоге пришёл к своему гибридному краулеру: код ищется через GitLab API, а конфиги добираются отдельным глубоким обходом файлов. В результате поиск по 100+ проектам сократился с часов до нескольких минут.
Краткая сводка
Автор разработал гибридный поисковый инструмент, использующий GitLab API для кода и отдельный обход файлов для конфигураций, что позволило сократить поиск по более чем ста проектам с часов до нескольких минут.
Связанные теги
Компании и люди
Линия сюжета
Продолжить следить за темой
Переходите к связанным материалам, страницам сущностей и активным линиям сюжета.
ИИ и конец эпохи интеллектуальной собственности: неожиданное освобождение от бремени авторства
Этот текст писался долго и стал частью более широкой работы о том, как генеративный ИИ меняет не только рынок контента, но и сами основания авторского права. Вобщем, попытка уви...
EXPLAIN Prettier или пост-процессинг планов запросов в Postgres
Эта история началась с подаренной коллегой своей новой книги: читая Jimmy Angelakos’ «PostgreSQL Mistakes and How to Avoid Them», я осознал один напрягающий меня факт — в Postgr...
EXPLAIN Prettier или пост-процессинг планов запросов в Postgres
Эта история началась с подаренной коллегой своей новой книги: читая Jimmy Angelakos’ «PostgreSQL Mistakes and How to Avoid Them», я осознал один напрягающий меня факт — в Postgr...
Chat Mountain | WebView, звук и статус проекта
За последний месяц основной фокус сместился на стабильность и удобство. Мобильная версия получила полный адаптив — своя навигация, отдельные экраны для серверов, чатов, профиля ...
Топ-3 главных ловушек ИИ в B2B: потратили миллионы, но сотрудники не пользуются. Отвечаю почему и как исправить
Антон Саркисян CCO GPTunneL ex-yandex/ex-vk Знакомый, который отвечает за IT-безопасность в крупной российской компании, рассказал мне историю.Они запретили ChatGPT. Корпоративн...
Бомж нода Meshtastic за 500 рублей
В самом базовом случае нода Meshtastic, как и Meshcore, состоит из двух обязательных половинок: LoRa модем и микроконтроллер с WiFi/Bluetooth/USB. А в дополнение к этому могут и...
Рекламный слот
Встроенный блок в статье
Зарезервированный партнерский слот для релевантных инструментов, сервисов и аккуратных редакционных интеграций.
Похожие статьи
Еще материалы, которые пересекаются по тегам, источнику или категории.
ИИ и конец эпохи интеллектуальной собственности: неожиданное освобождение от бремени авторства
Этот текст писался долго и стал частью более широкой работы о том, как генеративный ИИ меняет не только рынок контента, но и сами основания авторского права. Вобщем, попытка уви...
EXPLAIN Prettier или пост-процессинг планов запросов в Postgres
Эта история началась с подаренной коллегой своей новой книги: читая Jimmy Angelakos’ «PostgreSQL Mistakes and How to Avoid Them», я осознал один напрягающий меня факт — в Postgr...
EXPLAIN Prettier или пост-процессинг планов запросов в Postgres
Эта история началась с подаренной коллегой своей новой книги: читая Jimmy Angelakos’ «PostgreSQL Mistakes and How to Avoid Them», я осознал один напрягающий меня факт — в Postgr...
Chat Mountain | WebView, звук и статус проекта
За последний месяц основной фокус сместился на стабильность и удобство. Мобильная версия получила полный адаптив — своя навигация, отдельные экраны для серверов, чатов, профиля ...
Еще материалы от Habr
Свежие публикации и продолжение темы от той же редакции.
ИИ и конец эпохи интеллектуальной собственности: неожиданное освобождение от бремени авторства
Этот текст писался долго и стал частью более широкой работы о том, как генеративный ИИ меняет не только рынок контента, но и сами основания авторского права. Вобщем, попытка уви...
EXPLAIN Prettier или пост-процессинг планов запросов в Postgres
Эта история началась с подаренной коллегой своей новой книги: читая Jimmy Angelakos’ «PostgreSQL Mistakes and How to Avoid Them», я осознал один напрягающий меня факт — в Postgr...
EXPLAIN Prettier или пост-процессинг планов запросов в Postgres
Эта история началась с подаренной коллегой своей новой книги: читая Jimmy Angelakos’ «PostgreSQL Mistakes and How to Avoid Them», я осознал один напрягающий меня факт — в Postgr...
Chat Mountain | WebView, звук и статус проекта
За последний месяц основной фокус сместился на стабильность и удобство. Мобильная версия получила полный адаптив — своя навигация, отдельные экраны для серверов, чатов, профиля ...
Дополнительное покрытие этой темы
Похожие публикации и близкие по смыслу материалы по этой же теме.
GitLab CI кажется сложным, если не знать этих трюков: как убрать дублирование и ускорить пайплайны в 3 раза
У вас в GitLab несколько проектов с одинаковым CI? Или просто надоела копипаста в пайплайнах? Каждое изменение нужно отразить в 10 местах? Рассказываем, как сократить код на 56 ...
Как я перенес консольное приложение в Rust + WASM и выложил на GitLab Pages
Перенес консольного приложения в формат, удобный к показу по ссылке:переписал логику на Rust,собрал в WebAssembly и завернул в статичную страницу с терминальным интерфейсом на ч...