Skip to content

tools download: exact version, SHA-256 и offline verify #27

Description

@zeegin

Контекст

Обычный quality gate должен быть воспроизводимым и не иметь скрытого доступа к сети. В v8-runner 0.5.1 tools download описан как загрузка из latest GitHub release; для YaXUnit/Vanessa доступны только --force и частные options.

Из-за отсутствия pin/checksum/offline contract проекту приходится держать отдельный provisioner и manifest, хотя сам download уже является ответственностью runner.

Предложение

Расширить tools download единым supply-chain contract:

  • --version <exact>;
  • expected --sha256 <digest> или digest в config/lock file;
  • --offline / tools verify, не выполняющий network requests;
  • atomic publication после size/hash validation;
  • machine-readable manifest/lock с kind, version, source URL, length и SHA-256.

Критерии готовности

  • exact version никогда не разрешается в latest;
  • mismatch digest удаляет temporary file и возвращает typed error;
  • offline verify гарантированно не обращается к сети;
  • повторный verify идемпотентен;
  • одинаковый контракт работает для YaXUnit, Vanessa и client-mcp;
  • JSON result перечисляет verified/downloaded artifacts и их digests;
  • credentials/tokens не попадают в output/log.

После появления этого контракта project-specific provisioner можно удалить, оставив runner-first workflow.

Наблюдение сделано на v8-runner 0.5.1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions