Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions content/documentation/admin/datasources/types.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <base64>`.


Опционально доступен флаг **пропуск проверки 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.
Expand Down