Как сделать поиск по всем файлам репозитория в gitlab?
Есть репозиторий, в котором проект с множеством файлов. Как мне сделать поиск по всему репозиторию, чтобы поиск произошел в каждом файле? Видел, что так делают, но самому подобный интерфейс найти не удалось.
Отслеживать
Anonymous Wizard
задан 2 авг 2023 в 11:39
Anonymous Wizard Anonymous Wizard
115 8 8 бронзовых знаков
Прямо в репозитории есть кнопка «FInd file», ее недостаточно? Она игнорирует пути и показывает все файлы (но вместе с путями)
3 авг 2023 в 5:13
@AidarSaifutdinov это кнопка ищет файлы, а мне необходимо выполнить поиск по их содержимому
3 авг 2023 в 8:23
Попробуй в поиске просто ввести код, там откроется поиск по коду, у меня сработало!
3 авг 2023 в 9:16
@AidarSaifutdinov получилось, спасибо большое!
3 авг 2023 в 9:43
0
Сортировка: Сброс на вариант по умолчанию
Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
GitLab: склонировать список репозиториев
Решил слегка “причесать” и обобщить свой опыт по этому вопросу. Чтобы удобней было пользоваться, как этакой краткой инструкцией, а не искать разрозненные ответы на SO и т.п.
Задача проста – сделать удобно 🙂
- Взять GitLab (много где используется, как self-hosted) и выкачать с него все репозитории проекта. Чтобы можно было локально работать с ними, не загружая каждый отдельно.
- Обновлять эти репозитории одной командой
Загрузка списка репозиториев с GitLab
Тут всё несложно – надо получить сам список и по нему всё скачать. Удобнее это делать с использованием ssh ключа (добавляется в GitLab через веб-интерфейс). Но можно и git credentials включить. Сам список достаточно просто в браузере открыть и сохранить projects.json (название по умолчанию).
- Список репозиториев: https://your-gitlab-host/api/v4/projects?per_page=1000
- Или список для группы проектов: https://your-gitlab-host/api/v4/groups//projects?per_page=1000
group-id можно тоже через веб-интерфейс посмотреть, примерно так:
GitLab project group ID
- Выкачать (в текущий каталог) репозитории по списку из файла: jq -r ‘.[].ssh_url_to_repo’ < /path/to/projects.json | xargs -n1 git clone. Можно аналоги утилиты jq использовать, мне она привычней.
- Если авторизация по ssh-ключу не настроена – придется из json вместо поля ssh_url_to_repo извлекать поле http_url_to_repo. Можно хранить логин/пароль для GitLab в ~/.git-credentials (там они лежат в открытом виде!).
Первая часть на этом закончена. На очереди – обновление репозиториев.
Обновление списка репозиториев
Здесь всё ещё проще – достаточно одной команды. Перейти в каталог со склонированными репозиториями и выполнить:
find . -type d -name ‘.git’ \ | xargs -n1 — sh -c \ ‘cd «$<0>/..» && echo \ && basename -sa $(git rev-parse —show-toplevel) \ && git pull —all’0>
Найдёт все каталоги с директорией .git внутри (а это и есть репозитории) и обновит их через git pull —all. Соответственно, каталоги, не являющиеся репозиториями, будут проигнорированы. Готово!
Что такое GitLab и для чего он нужен

GitLab — это инструмент, который позволяет хранить и управлять репозиториями (место, где хранятся и поддерживаются данные) Git. С его помощью очень удобно заниматься совместной разработкой проектов. В статье расскажем, как работает инструмент и зачем его используют.
Git, GitHub и GitLab
Всем, кто занимается разработкой, знакомы слова Git, Github и GitLab. Несмотря на видимое сходство, это разные вещи и прежде, чем перейти конкретно к GitLab, разберём, в чём их отличие.
Git — это система контроля версий, которая применяется для отслеживания изменений в файлах компьютера. Его основная задача — управлять любыми изменениями, внесенными в один или несколько проектов за определенный период времени. Git помогает координировать работу участников проектной группы и отслеживать прогресс во времени и позволяет им работать совместно, не влияя друг на друга. Также система даёт возможность локально сохранить проект в файл небольшого размера.
GitHub и GitLab — это онлайн-сервисы, которые служат для размещения репозиториев, дистанционного управления и прочих задач, связанных с разработкой. В них есть функционал отслеживания ошибок, Wiki для всех проектов, история изменений и многое другое.
Сервисы имеют схожее назначение, поэтому и функции у них примерно одинаковы. Однако, есть и отличия.
-
.
- В GitLab предусмотрена бесплатная непрерывная интеграция. В GitHub вместо этого есть инструмент Actions, который позволяет запускать подобные интеграции в общедоступных репозиториях без оплаты, в частных – платно.
- GitLab, в отличие от GitHub имеет встроенную платформу развёртывания Kubernetes.
- В GitLab доступны бесплатные репозитории для проектов с общедоступным исходным кодом. В GitHub такого не предусмотрено.
Бесплатный тестовый доступ к облаку на 30 днейПолучить
Что такое GitLab
Как говорилось выше, GitLab является сервисом для совместной разработки. Он помогает командам разработчиков сократить жизненный цикл продукта и повысить производительность. Здесь не требуется авторизация для каждого отдельного инструмента. Разрешения устанавливаются один раз, и все в организации имеют доступ к каждому компоненту.
Изначально GitLab был полностью бесплатным программным обеспечением с открытым исходным кодом, который распространялся по лицензии MIT. В 2013 году его разбили на две отдельные версии — GitLab CE (Community Edition) и GitLab EE (Enterprise Edition). GitLab CE осталась прежней, а GitLab EE поучил ограниченную лицензию, хотя исходный код так и остался общедоступным.
GitLab даёт нижеописанные возможности:
- Создание. Написание кода, управление им и внесение правок, синхронизация файлов.
- Проверка. Включены инструменты CI/CD, доступна интеграция с Github, есть проверка качества написания кода, нагрузочные тесты.
- Управление. Для доступа к проекту нужно пройти двухфакторную аутентификацию. Также доступна поддержка токенов и SSO. Сервис осуществляет аналитику продуктивности участников, предоставляет трекинг задач.
- Мониторинг. Отслеживание производительности приложений, управление инцидентами, отправка логов.
- Планирование. Отслеживание проблем и контроль затраченного времени.
- Упаковка. Управление контейнерами и репозиториями. Работа Gitlab с Docker.
- Безопасность. Сканирование уязвимостей, поддержка SAST и DAST.
- Релизы. Есть возможность запускать CI/CD в разных окружениях, доступны канареечные релизы (безопасное тестирование кода или частичный выпуск), оркестровка релизов.
- Конфигурирование. Поддержка Kubernetes, бессерверные вычисления.
- Защита. Обеспечение сетевой безопасности проектов.
Зачем использовать GitLab
Основное преимущество использования GitLab в том, что он позволяет всем членам команды взаимодействовать на каждом этапе проекта. Отслеживание процесса от планирования до создания позволяет разработчикам автоматизировать весь жизненный цикл проекта и добиться наилучших результатов.
Где лучше всего хранить репозиторий Git?
Мы небольшой распределенной командой беремся за разработку крупного проекта Unity. До сих пор работал с BitBucket, но на последнем проекте сайт уже стал нас предупреждать, что у нас слишком большой репозиторий и он не должен превышать 2Gb. Поскольку проект у нас содержит много бинарных данных (модели, текстуры, видео и т.п.) размер его может расти существенно. Поделитесь опытом кто где хранит свои репозитории? Как решаете вопросы с безопасностью? Буду рад любой полезной информации.
Отслеживать
25.1k 4 4 золотых знака 46 46 серебряных знаков 81 81 бронзовый знак
задан 20 фев 2017 в 17:19
2,680 1 1 золотой знак 12 12 серебряных знаков 27 27 бронзовых знаков
GitHub за 7$ в месяц ничем вас не ограничивает 🙂
20 фев 2017 в 17:21
GitLab.com storage limit raised to 10GB per repo
20 фев 2017 в 17:25
Может не стоило нагружать репу бинарными артифактами?
20 фев 2017 в 17:30
Gitlab можно поднять на своём сервере…
20 фев 2017 в 18:30
Может быть выделить место в своем серваке, сделать там чистый репозиторий, дать доступ нужным людям и не париться
20 фев 2017 в 18:44
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Хм, не забрасывайте камнями но я храню их в cloud.mail.ru
как альтернатива яндекс.диск.
#Создаем локальный репозиторий mkdir /mnt/data/Project/test_repo cd /mnt/data/Project/test_repo git init #Создаем файл hello_world.txt c произвольным содержимым touch hello_world.txt nano hello_world.txt #Помещаем только что созданный файл под контроль Git git add . #Фиксируем изменения git commit -m "First commit" #Создаем удаленный репозиторий mkdir /mnt/data/Яндекс.Диск/git_repo/test_repo.git cd /mnt/data/Яндекс.Диск/git_repo/test_repo.git #Создаем репозиторий без рабочей копии git init --bare #Возвращаемся в локальный репозиторий cd /mnt/data/Project/test_repo #В локальном репозитории указываем где искать удаленный #yandex_disk - псевдоним для полного пути к удаленному репозиторию git remote add yandex_disk /mnt/data/Яндекс.Диск/git_repo/test_repo.git #Передаем изменения из локального репозитория в удаленный #master - текущая ветка разработки git push yandex_disk master