Перейти к содержимому

Пакеты ​

Пакеты UPack: регистрация, список, версии и скачивание по имени, версии или диапазону.

Операции этой группы с правилом доступа, правилом повтора, параметрами и ответами. Каждый запрос несёт ключ: Authorization: Bearer <ключ> (см. «Аутентификация»).

Операции ​

Перечислить версии пакетов ​

GET HEAD /api/v1/repositories/{repository}/packages

Доступ: Право в репозитории: package.read; файловые ключи: read · Повтор: Можно повторять (чтение)

Перечисляет зарегистрированные версии UPack с их манифестами, отфильтрованные по group и name (точное совпадение без учёта регистра; group= с пустым значением выбирает корневую группу, без параметра выбираются все группы). Результат задают sort (group, name, version), direction (asc, desc) и groupBy (none, group, package; при группировке добавляется groups со списком artifactIds страницы). Страницы содержат limit элементов (1–100, по умолчанию 50); продолжайте с after, равным next, и теми же фильтрами. Страницы не образуют снимок: версии, зарегистрированные в промежутке, могут быть пропущены до следующего прохода.

Параметры

ИмяГдеТипОбязателенПравила
repositoryпутьstringдапо шаблону ^[a-z0-9][a-z0-9_-]{0,63}$
groupзапросstringнет—
nameзапросstringнет—
sortзапросstringнетодно из group, name, version
directionзапросstringнетодно из asc, desc
groupByзапросstringнетодно из none, group, package
afterзапросstringнет—
limitзапросintegerнет1–100

Ответ 200

ПолеТипОбязателенПравила
itemsмассив objectда—
items[].groupstringнет—
items[].namestringнет—
items[].versionstringнет—
items[].artifactIdstring (uuid)нет—
items[].manifestobjectнет—
nextstringдаможет быть null
groupsмассив objectда—
groups[].groupstringда—
groups[].namestringдаможет быть null
groups[].artifactIdsмассив string (uuid)да—

Ответы: 200, 400, 401, 403, 404, 409, 422, 503, 507

Пример

bash
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/packages" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Скачать пакет по имени и версии ​

GET HEAD /api/v1/repositories/{repository}/packages/content

Доступ: Право в репозитории: content.read; файловые ключи: read · Повтор: Можно повторять (чтение)

Сопоставляет name (в группе group, по умолчанию корневой) с одной зарегистрированной версией и передаёт её потоком, как downloadArtifact; выбор называют заголовки X-Arkvory-Artifact-Id и X-Arkvory-Package-Version. Версию можно выбрать по точной version или диапазону SemVer range (например, ^1.4 или >=1.0.0 <2.0.0), при необходимости только среди версий со стадией stage; без них берётся наибольшая стабильная версия, prerelease=true допускает предварительные версии, а order=promoted берёт версию, которой стадия stage была присвоена последней. Имя сопоставляется с версией при каждом запросе, поэтому для возобновления используйте If-Range с возвращённым ETag или скачивайте по ID артефакта; resolvePackage даёт тот же выбор без байтов.

Параметры

ИмяГдеТипОбязателенПравила
repositoryпутьstringдапо шаблону ^[a-z0-9][a-z0-9_-]{0,63}$
RangeзаголовокstringнетSingle bytes range; multi-range is unsupported. HEAD ignores Range.
If-RangeзаголовокstringнетExact strong ETag; a mismatch causes a full response.
If-None-MatchзаголовокstringнетMatching ETag returns 304, including HEAD.
Arkvory-Download-Idзаголовокstringнетпо шаблону ^[A-Za-z0-9_-]{16,64}$; The client own id of one download, the same on every range of it: the queue keys the session by it instead of the client address, answers a waiting request at once with 503 download_queued, and may ask it to yield its place at a range boundary. Without it, a waiting request is held until its turn for a bounded time.
Arkvory-Queue-Ticketзаголовокstringнетне длиннее 80 символов; The last Arkvory-Queue-Ticket the server sent for this download: after a server restart the download takes its old turn. A ticket that is wrong, expired or of another download is ignored.
Arkvory-Download-Classзаголовокstringнетодно из interactive, release, bulk, background; Queue class of the download. Only a class lower than the caller own one applies (people: interactive, services and links: release); an unknown value is 400. The response names the class applied.
groupзапросstringнетне длиннее 128 символов
nameзапросstringда1–128 символов
versionзапросstringнетне длиннее 128 символов; Exact version; excludes range.
rangeзапросstringнетне длиннее 256 символов; SemVer range: 1.2.3, ^1.2, ~1.2.3, 1.x, >=1.0.0 <2.0.0, a || b.
stageзапросstringнетпо шаблону ^[a-z0-9][a-z0-9_.-]{0,31}$; Only versions promoted to this stage.
prereleaseзапросstringнетодно из true, false; Include prereleases.
orderзапросstringнетодно из version, promoted; promoted picks the most recently staged version and requires stage.

Ответы: 200, 206, 304, 400, 401, 403, 404, 409, 416, 422, 503, 507

Пример

bash
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/packages/content?name=$NAME" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -o file

Arkvory · ProAnimaStudio