Найти в Дзене

Тулза для скачивания всех репозиториев в gitlab

Тулза для скачивания всех репозиториев в gitlab Небольшая CLI утилита, которая позволяет скачать все доступные репозитории в gitlab. Если репозиторий уже скачан, то он будет просто обновлен. Бывает полезно, когда на работе у вас на поддержке целая куча реп. Использование с ssh: gitlab_grabber -t <token> -u <domain> -k -d /<dir> -i <path_to_ssh_private_key> Использование с http. Тут предполагается, что у вас oauth, то есть включена двухфакторка. gitlab_grabber -t <token> -u <domain> -k -d /<dir> --auth http Поставить можно через pip pip install gitlab-grabber Для работы нужен python3.11 или выше. Работает асинхронно, но с ограничением в 20 одновременных (ну почти, это же python) скачиваний, это сделано намеренно, так как GitPython либа - синхронная, поэтому пришлось использовать в asyncio to_thread метод, чтобы не блокировать основной поток. Если репозиториев 100+, то 100+ тредов не самое лучшее решение. Поэтому ограничился 20-ю. Ссылка на мой github с кодом.

Тулза для скачивания всех репозиториев в gitlab

Небольшая CLI утилита, которая позволяет скачать все доступные репозитории в gitlab. Если репозиторий уже скачан, то он будет просто обновлен.

Бывает полезно, когда на работе у вас на поддержке целая куча реп.

Использование с ssh:

gitlab_grabber -t <token> -u <domain> -k -d /<dir> -i <path_to_ssh_private_key>

Использование с http. Тут предполагается, что у вас oauth, то есть включена двухфакторка.

gitlab_grabber -t <token> -u <domain> -k -d /<dir> --auth http

Поставить можно через pip

pip install gitlab-grabber

Для работы нужен python3.11 или выше.

Работает асинхронно, но с ограничением в 20 одновременных (ну почти, это же python) скачиваний, это сделано намеренно, так как GitPython либа - синхронная, поэтому пришлось использовать в asyncio to_thread метод, чтобы не блокировать основной поток. Если репозиториев 100+, то 100+ тредов не самое лучшее решение. Поэтому ограничился 20-ю.

Ссылка на мой github с кодом.