diff --git a/content/documentation/admin/datasources/types.ru.md b/content/documentation/admin/datasources/types.ru.md index 84ad1582..6a4c0141 100644 --- a/content/documentation/admin/datasources/types.ru.md +++ b/content/documentation/admin/datasources/types.ru.md @@ -78,6 +78,55 @@ title: Типы источников данных |tags_sort |опционально |Соответствует спецификации [GitLab Tags API sort](https://docs.gitlab.com/api/tags/#list-project-repository-tags) |[документация](https://docs.gitlab.com/api/tags/#list-project-repository-tags)|[документация](https://docs.gitlab.com/api/tags/#list-project-repository-tags)| |tags_search |опционально |Соответствует спецификации [GitLab Tags API search](https://docs.gitlab.com/api/tags/#list-project-repository-tags) |[документация](https://docs.gitlab.com/api/tags/#list-project-repository-tags)|[документация](https://docs.gitlab.com/api/tags/#list-project-repository-tags)| +## GitRepository + +Источник данных типа **GitRepository** клонирует удалённый Git-репозиторий по HTTPS, обходит выбранный каталог в рабочей копии и возвращает **массив записей**: один **обычный файл** — один элемент массива. Дальнейшая обработка (фильтры, правила сопоставления, создание и обновление сущностей) выполняется так же, как для остальных источников данных. + +Каталог **`.git`** и его содержимое в выборку **не попадают**. Символические ссылки не обрабатываются как файлы. Рабочая копия создаётся во **временном каталоге** на диске инстанса и **удаляется** после обхода (успех или ошибка после создания каталога). + +### Авторизация + +Для приватных репозиториев по HTTPS используйте **заголовки HTTP** в конфигурации источника данных, аналогично типу **GenericAPI**: + +1. **Bearer** — `Authorization: Bearer <токен>` (для многих хостингов в качестве пароля к Git передаётся токен, пользователь — `git`). +1. **Basic** — `Authorization: Basic `. + + +Опционально доступен флаг **пропуск проверки TLS** в конфигурации бэкенда (`insecureSkipVerify`), если это допустимо политикой инстанса. + +### Спецификация ответа + +Платформа выполняет **один** цикл получения данных с удалённого Git-сервера за запуск синхронизации: клон (с учётом shallow clone и параметра `ref`) и обход файлов. Результат — массив объектов JSON со следующими полями у каждой записи. + +| Поле | Описание. | +|------------|---------------------------------------------------------------------------| +| `path` | Относительный путь к файлу от базового пути в репозитории (разделитель `/`). | +| `name` | Название файла без каталога. | +| `content` | Содержимое файла в виде строки; для не-UTF-8 — содержимое в Base64. | +| `encoding` | Значение `utf-8` или `base64`. | + +### Конфигурация + +1. **URL** — HTTPS-адрес репозитория для клонирования (схемы `http` и `https`). Суффикс `.git` в конце URL **не обязателен**, если так принято у выбранного Git-хоста. +1. **Method**, **Query type** — как у других HTTP-ориентированных источников; для GitRepository фактический запрос выполняет адаптер клонирования, поля запроса к произвольному REST не используются для выборки файлов. +1. **Заголовки** — при необходимости для доступа к приватному репозиторию (см. раздел «Авторизация»). + + +### Параметры + +Параметры задаются в **дополнительных свойствах** бэкенда источника данных (строковые ключи и значения). + +| Название | Обязательность | Описание. | Возможные значения | По умолчанию | +|-------------------|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------|--------------| +| `repositoryPath` | нет | Каталог внутри клона, с которого начинается обход (относительный путь от корня репозитория). Пустое значение — корень. Запрещены сегменты `..` и выход за пределы клона. | Строка пути | пусто | +| `recursive` | нет | Обход вложенных каталогов относительно базового пути. | `true`, `false` | `true` | +| `ref` | нет | Ветка, тег или полный 40-символьный SHA коммита после клонирования. Если не задано — ветка по умолчанию на удалённом репозитории. | Строка | пусто | +| `cloneDepth` | нет | Глубина shallow clone (число коммитов). Значение `0` — полный клон (удобно при `ref` в виде SHA). | Неотрицательное целое | `1` | +| `maxFileBytes` | нет | Максимум байт, читаемых из одного файла; при превышении синхронизация завершается ошибкой. | Неотрицательное целое | `2097152` | +| `maxFiles` | нет | Максимум элементов массива за один запуск. | Неотрицательное целое | `100000` | + +URL репозитория должен указывать на **разрешённый** хост по политике инстанса (например, запрещены `localhost` и частные IP в валидации). + ## HarborArtifacts Источник данных типа **HarborArtifacts** собирает информацию о всех артефактах в Harbor.