Skip to content

install --all-pools: версию выбирает хаб по всем доступным пулам - #287

Open
Segate-ekb wants to merge 17 commits into
oscript-library:masterfrom
Segate-ekb:стек/09-все-пулы

Hidden character warning

The head ref may contain hidden characters: "\u0441\u0442\u0435\u043a/09-\u0432\u0441\u0435-\u043f\u0443\u043b\u044b"
Open

Segate-ekb wants to merge 17 commits into
oscript-library:masterfrom
Segate-ekb:стек/09-все-пулы

Conversation

@Segate-ekb

@Segate-ekb Segate-ekb commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Зависимости. Зависит от #286 (доверенная публикация). Последний в цепочке. Все PR цепочки идут на master: пока #286 не влит, в диффе видны и его изменения; сливать по порядку.

Для пользователя. opm install --hub <хаб> --all-pools пакет[@спецификация] просит хаб выбрать версию по всем пулам, открытым токену (без токена — по публичным). Параметры spec и engine работают так же, как у пулового адреса. С --pool не сочетается — отказ.

Код. СерверыПакетов.ИзАдреса(Адрес, ПоВсемПулам) строит сервер с выдачей /api/v1/download/<пакет>/<файл>, имя сервера в журнале — хост/*. Хаб OpenHub отдаёт этому серверу список пакетов на GET /api/v1/download/list.txt.

Тесты. tests/hub-address-test.os: адрес ресурса и установка через сервер всех пулов на заглушке. features/install-hub.feature: --all-pools с --pool — отказ. Без сети. Полный прогон и фичи зелёные.

Модуль ОшибкиСети переводит исключение HTTP-соединения в причину (имя не
разрешается, соединение отклонено, таймаут, TLS) и снимает служебную обёртку
платформы. СерверПакетов запоминает ПоследнююОшибкуСети; установка различает
404, 401/403 и прочие коды ответа, а для единственного сервера (-m) называет
адрес и причину. opm.os показывает суть исключения, подробности — в отладке.
…в доступе, иначе код и файл; без ответа — «Не удалось подключиться к <адрес>», исходная ошибка в отладочный журнал; модуль ОшибкиСети и разбор текста исключений сняты
…хабу параметром spec

Имя файла пакета в адресе прежнее (<пакет>-<спецификация>.ospx), сегменты пути и значение spec кодируются
одной функцией СерверПакетов. На 404 по тегу или выражению версии opm говорит, что их разрешает только хаб,
принимающий spec. Файловый сервер при названной спецификации не подбирает старшую версию.
Справка PACKAGE команд install, download и update — одной копией в ПараметрыПриложенияOpm.
…ного OneScript, причина отказа из ответа хаба показывается пользователю
…овка X-Checksum-Sha256 ответа хаба, при расхождении установка отказывает и файл не записывается, ответ без заголовка не сверяется
…ия] ставит пакет и его зависимости с сервера из адреса без записи в opm.cfg, opm push --hub хост[:порт][/пул] публикует в пул; разбор адреса — модуль АдресаХаба, сервер пула — СерверыПакетов.ИзАдреса с авторизацией сервера из настроек того же адреса; запрос публикации собирает СерверПакетов, отказ хаба показывается его сообщением; опция push -m устарела
… в нём — отказ с подсказкой про --pool; новая опция --pool (OPM_POOL) у push и install, --pool без --hub — отказ; install --hub [--pool] ставит пакеты из аргументов и их зависимости с пула хаба тем же путём, что и адрес в имени пакета (РаботаСПакетами.ПодключитьСерверХаба), адрес пакета вместе с --hub и --hub с -a, -f, -u, -m — отказ; АдресаХаба.АдресПула заменён на Адрес(Хаб, Пул); тесты адреса, публикации и установки с хаба из опций; README
…лчанию (http://hub.oscript.io), отказа нет; канал при --pool необязателен, как при --hub
…кации, отказ хаба и его сообщение — внутри СерверПакетов.ОтправитьПакет, ПодключитьХаб команды install без экспорта; конфликт адреса пакета с --hub — фичей install-hub; тесты публикации — только адрес и ресурс сервера, без заглушки хаба на python
…етов.ДляПубликации с признаком Форсировать), перезаписать ли занятый номер версии, решает хаб; тесты — по ресурсу сервера публикации
…ctions он запрашивается у сервиса токенов с аудиторией из --oidc-audience (по умолчанию адрес хаба), в GitLab CI читается из переменной блока id_tokens, названной --oidc-token-var; без переменных конвейера — отказ, называющий, чего не хватает; получение — модуль ТокенКонвейераCI
…читается из переменной OPENHUB_TOKEN, под этим именем её объявляют в блоке id_tokens; отказ без переменных конвейера называет это имя
…рвер хаба с выдачей /api/v1/download/<пакет>/<файл> теми же spec и engine (СерверыПакетов.ИзАдреса и РаботаСПакетами.ПодключитьСерверХаба с признаком ПоВсемПулам, имя сервера хост/*); с --pool не сочетается; тесты hub-address, фича install-hub, README
@coderabbitai

coderabbitai Bot commented Oct 16, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 58 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 3cf5c71d-b9fe-47d8-8a1c-f23c79492f25
📥 Commits

Reviewing files that changed from the base of the PR and between 56defbe and 56442a4.

📒 Files selected for processing: 26
  • README.md
  • features/install-hub.feature
  • packagedef
  • src/cmd/Классы/КомандаOpm_Download.os
  • src/cmd/Классы/КомандаOpm_Install.os
  • src/cmd/Классы/КомандаOpm_Push.os
  • src/cmd/Классы/КомандаOpm_Update.os
  • src/cmd/Модули/ПараметрыПриложенияOpm.os
  • src/core/Классы/МенеджерПолученияПакетов.os
  • src/core/Классы/СерверПакетов.os
  • src/core/Классы/ФайловыйСерверОтвет.os
  • src/core/Классы/ФайловыйСерверПакетов.os
  • src/core/Модули/АдресаХаба.os
  • src/core/Модули/РаботаСОписаниемПакета.os
  • src/core/Модули/РаботаСПакетами.os
  • src/core/Модули/СерверыПакетов.os
  • src/core/Модули/ТокенКонвейераCI.os
  • tests/checksum-test.os
  • tests/fixtures/ЗаглушкаКонвейера.os
  • tests/fixtures/ЗаглушкаОтветаХаба.os
  • tests/fixtures/ЗаглушкаСервераПакетов.os
  • tests/hub-address-test.os
  • tests/network-errors-test.os
  • tests/package-spec-test.os
  • tests/push-target-test.os
  • tests/trusted-publish-test.os
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant