Зеркала
Состояние зеркального репозитория и лента, за которой следует зеркало.
Операции этой группы с правилом доступа, правилом повтора, параметрами и ответами. Каждый запрос несёт ключ: Authorization: Bearer <ключ> (см. «Аутентификация»).
Операции
Перечислить зеркала и импорты этой установки
GET HEAD /api/v1/mirrors
Доступ: Репозитории, которые видит вызывающий (repository.read) · Повтор: Можно повторять (чтение)
Для каждого репозитория, который этот сервер зеркалирует или импортирует из другого Arkvory и который вызывающий может читать, возвращает то же состояние, что и статус зеркала одного репозитория: источник, mode, phase, cursor и head, caughtUp, последние проверку, синхронизацию и ошибку, число скопированных артефактов и байтов. Репозитории, которые вызывающий читать не может, пропускаются; установка без зеркал отвечает пустым списком.
Ответ 200
| Поле | Тип | Обязателен | Правила |
|---|---|---|---|
items | массив object | да | не больше 64 элементов |
items[].repository | string | да | — |
items[].upstream | string (uri) | да | — |
items[].sourceRepository | string | да | — |
items[].mode | string | да | одно из mirror, import |
items[].stages | массив string | да | не больше 16 элементов |
items[].phase | string | да | одно из pending, seeding, following |
items[].seedStep | string | да | одно из artifacts, packages, assets; может быть null |
items[].cursor | string | да | целое число десятичными цифрами, передаётся строкой |
items[].head | string | да | целое число десятичными цифрами, передаётся строкой; может быть null |
items[].caughtUp | boolean | да | может быть null |
items[].checkedAt | string (date-time) | да | может быть null |
items[].syncedAt | string (date-time) | да | может быть null |
items[].errorCode | string | да | может быть null |
items[].errorAt | string (date-time) | да | может быть null |
items[].copiedArtifacts | integer | да | не меньше 0 |
items[].copiedBytes | string | да | целое число десятичными цифрами, передаётся строкой |
items[].conflicts | object | да | — |
items[].conflicts.count | integer | да | не меньше 0 |
items[].conflicts.oldestAt | string (date-time) | да | может быть null |
items[].conflicts.sample | массив object | да | не больше 10 элементов |
Ответы: 200, 400, 401, 403, 404, 409, 422, 503, 507
Пример
curl -X GET "$ARKVORY_URL/api/v1/mirrors" \
-H "Authorization: Bearer $ARKVORY_TOKEN"Получить состояние синхронизации зеркала
GET HEAD /api/v1/repositories/{repository}/mirror
Доступ: Право в репозитории: repository.read; файловые ключи: read · Повтор: Можно повторять (чтение)
Для репозитория, который этот сервер зеркалирует из другого Arkvory (настроено в ARKVORY_MIRRORS_FILE), возвращает источник, режим mode (mirror — копия только для чтения или import — перенимает версии с перечисленными stages), фазу phase (pending, seeding, following), применённый cursor и head источника, caughtUp, последние проверку, синхронизацию и ошибку, а также число скопированных артефактов и байтов. Номера — это номера журнала источника, поэтому их разность не равна числу изменений. Обычный репозиторий отвечает 404.
Параметры
| Имя | Где | Тип | Обязателен | Правила |
|---|---|---|---|---|
repository | путь | string | да | по шаблону ^[a-z0-9][a-z0-9_-]{0,63}$ |
Ответ 200
| Поле | Тип | Обязателен | Правила |
|---|---|---|---|
repository | string | да | — |
upstream | string (uri) | да | — |
sourceRepository | string | да | — |
mode | string | да | одно из mirror, import |
stages | массив string | да | не больше 16 элементов |
phase | string | да | одно из pending, seeding, following |
seedStep | string | да | одно из artifacts, packages, assets; может быть null |
cursor | string | да | целое число десятичными цифрами, передаётся строкой |
head | string | да | целое число десятичными цифрами, передаётся строкой; может быть null |
caughtUp | boolean | да | может быть null |
checkedAt | string (date-time) | да | может быть null |
syncedAt | string (date-time) | да | может быть null |
errorCode | string | да | может быть null |
errorAt | string (date-time) | да | может быть null |
copiedArtifacts | integer | да | не меньше 0 |
copiedBytes | string | да | целое число десятичными цифрами, передаётся строкой |
conflicts | object | да | — |
conflicts.count | integer | да | не меньше 0 |
conflicts.oldestAt | string (date-time) | да | может быть null |
conflicts.sample | массив object | да | не больше 10 элементов |
conflicts.sample[].artifactId | string (uuid) | да | — |
conflicts.sample[].action | string | да | — |
conflicts.sample[].detail | string | да | может быть null |
conflicts.sample[].code | string | да | — |
conflicts.sample[].firstAt | string (date-time) | да | — |
conflicts.sample[].lastAt | string (date-time) | да | — |
conflicts.sample[].attempts | integer | да | не меньше 1 |
Ответы: 200, 400, 401, 403, 404, 409, 422, 503, 507
Пример
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/mirror" \
-H "Authorization: Bearer $ARKVORY_TOKEN"