Настройка Cargo (Rust)

OSA Proxy поддерживает sparse registry Cargo: проверяет версии в индексе и скачиваемые архивы .crate. Поддерживаются crates.io и совместимые приватные sparse registry, включая Cargo endpoints Artifactory и Nexus. Git index, Git/path-зависимости, публикация и yank API не поддерживаются.

Настройка OSA Proxy

cargo:
  enabled: true
  repository:
    - name: crates
      registry: https://index.crates.io
      scan-manifest: true
      scan-package: true
      remove-blocked-versions: true
      work-mode: strict_wait
      additional-packages-registries:
        static.crates.io: https://static.crates.io

В registry указывается HTTP(S) URL корня sparse index без префикса sparse+. Хосты загрузки архивов, отличные от index registry, должны быть разрешены через additional-packages-registries.

scan-manifest включает проверку версий в sparse index. По умолчанию заблокированные версии удаляются; при remove-blocked-versions: false они остаются с yanked: true. scan-package проверяет архив перед скачиванием, в том числе при установке уже зафиксированной в Cargo.lock версии.

Подключение Cargo

Для замены crates.io добавьте в .cargo/config.toml:

[source.crates-io]
replace-with = "osa-proxy"

[source.osa-proxy]
registry = "sparse+https://osa-proxy.example.com/crates/"

В клиентском URL префикс sparse+ и завершающий / обязательны. Для проверки в чистом окружении используйте новый CARGO_HOME: ранее скачанный архив Cargo может взять из локального кэша без обращения к прокси.

Загрузка архивов

Если Nexus стоит перед OSA Proxy (его Cargo proxy указывает на OSA Proxy), адрес codescoring.osa-proxy-url должен быть доступен Nexus: хост загрузки Nexus берёт из dl.

Страница была полезна?