Git-Sync Service обеспечивает синхронизацию удаленного репозитория с локальным.
Любые изменения в локальном репозитории вызывают синхронизацию с удаленным репозиторием.
Необходимость синхронизации проверяется путем сравнения хешей файлов (что позволяет определить, изменился ли файл) и путем сравнения деревьев файлов удаленного и локального репозиториев.
Сервис предоставляет доступ к своим метрикам с использованием Prometheus и поддерживает вебхуки для ручной синхронизации.
- Синхронизация удаленного репозитория с локальным.
- Проверка необходимости синхронизации на основе сравнения хешей файлов и деревьев файлов удаленного и локального репозиториев.
- Обработка вебхуков для ручной синхронизации.
- Доступ к метрикам через Prometheus.
Параметры запуска сервиса могут быть заданы в командной строке, переменных окружения и конфигурационном файле.
Каждая переменная окружения привязана к соответствующему параметру (флагу) командной строки.
Параметры командной строки / переменные окружения:
| Аргумент командной строки (флаг) | Переменная окружения | Описание |
|---|---|---|
--local-path |
GITSYNC_LOCAL_PATH |
Путь к локальному репозиторию. |
--repo-url |
GITSYNC_REPOSITORY_URL |
URL удаленного репозитория. |
--repo-branch |
GITSYNC_REPOSITORY_BRANCH |
Ветка удаленного репозитория. |
--repo-auth-user |
GITSYNC_REPOSITORY_USER |
Пользователь для аутентификации в репозитории. |
--repo-auth-token |
GITSYNC_REPOSITORY_TOKEN |
Токен для аутентификации в репозитории. |
--sync-interval |
GITSYNC_INTERVAL |
Интервал синхронизации репозитория. |
--http-server-addr |
GITSYNC_HTTP_SERVER_ADDR |
Адрес и порт HTTP сервера. |
--http-server-auth-username |
GITSYNC_HTTP_SERVER_AUTH_USERNAME |
Имя пользователя для аутентификации HTTP сервера. |
--http-server-auth-password |
GITSYNC_HTTP_SERVER_AUTH_PASSWORD |
Пароль для аутентификации HTTP сервера. |
--http-server-auth-token |
GITSYNC_HTTP_SERVER_AUTH_TOKEN |
Токен для аутентификации HTTP сервера. |
Сервис предоставляет следующие метрики:
| Наименование | Описание |
|---|---|
git_sync_sync_count |
Общее количество синхронизаций с изменениями. |
git_sync_sync_total_count |
Общее количество синхронизаций. |
git_sync_sync_total_error_count |
Общее количество ошибок синхронизации. |
git_sync_repo_info |
Информация о синхронизированном репозитории с метками имени репозитория и ветки. |
git_sync_commit_info |
Информация о последнем коммите с метками хеш коммита, имя автора, электронная почта автора, дата коммита, сообщение коммита |
Конфигурационные файлы приложений: Обеспечение единого источника правды для конфигурационных файлов приложений, которые часто меняются и нуждаются в синхронизации между различными инстансами.
Скрипты развертывания: Автоматическое обновление и синхронизация скриптов развертывания между различными серверами или средами, чтобы гарантировать, что все сервера используют одну и ту же версию скриптов.
Конфигурационные файлы серверов: Синхронизация конфигурационных файлов серверов, таких как конфигурационные файлы веб-серверов или баз данных, чтобы убедиться, что все сервера настроены одинаково и правильно.
Документация и инструкции: Синхронизация документации и инструкций для разработчиков, чтобы они всегда имели доступ к самой актуальной информации.