Настольное Windows-приложение для read-only зеркалирования доступных вам репозиториев корпоративного GitLab в локальную директорию. План и архитектура — в PLAN.md.
- Получает список ваших проектов через GitLab REST API (personal access token с правом
read_api). - Клонирует отсутствующие репозитории по SSH и полностью синхронизирует существующие: все локальные ветки принудительно приводятся к состоянию сервера, удалённые на сервере ветки удаляются локально.
- Показывает по каждому репозиторию наличие локальной копии и дату последнего обновления;
внизу окна — лог операций (дублируется в
%APPDATA%\GetGit\logs\app.log). - Репозитории, код которых недоступен вашей роли (Guest в приватном проекте — скачивание требует роли Reporter), помечаются в списке «нет доступа к коду» и пропускаются при обновлении.
- Необработанные ошибки записываются в
%APPDATA%\GetGit\logs\app.log, аварийные падения — вcrash.logрядом; приложение при ошибке показывает окно, а не закрывается.
Важно: локальные копии считаются read-only. Синхронизация выполняет
git reset --hardиgit clean -fd— любые локальные правки и посторонние файлы в папках репозиториев будут удалены. Не работайте в этих папках.
- Windows 10/11, установленный Git for Windows (git в PATH).
- SSH-ключ, добавленный в ваш профиль GitLab. Ключ с passphrase поддерживается только
через запущенный
ssh-agent. - Personal access token с правом
read_api(GitLab → Settings → Access Tokens). Токен хранится в Диспетчере учётных данных Windows, не в файлах.
py -3.12 -m venv .venv
.venv\Scripts\pip install -r requirements.txt
.venv\Scripts\python -m app.main
При первом запуске откройте Настройки…, укажите адрес GitLab, токен и SSH-ключ, затем выберите директорию и нажмите Обновить.
.venv\Scripts\pip install -r requirements-dev.txt
.venv\Scripts\pyinstaller get-git.spec
Результат — dist\get-git.exe (Python у пользователей не требуется, Git — требуется).
.venv\Scripts\python -m pytest tests -v
Тесты git-операций используют локальные репозитории и не требуют сети/GitLab.