Плагины и точки встраивания в CI/CD#

ASOC Control Center поддерживает интеграцию с внешними системами через клиентские плагины и адаптеры, позволяя запускать сканирование на различных этапах разработки и доставки ПО. Ниже приведены инструкции по подключению плагинов для основных точек встраивания в CI/CD-конвейер.

Поддерживаемые точки встраивания#

Точка встраивания

Код точки встраивания

Инструменты сканирования

Описание

Сборка дистрибутива

build-point

SCA, SAST, OSS, SecretScan

Подключение плагина для сканирования при сборке дистрибутива - запуск сканирования при сборке релизного пакета

Pull-request/Merge-request

commit-point

SAST, SCA, SecretScan

Запуск сканирования при создании commit/pull-request - автоматическое сканирование кода при создании PR

Перевод релиза в статус «Тестирование»

release-test-point

SAST (Svace), DAST

Запуск сканирования при переводе релиза в статус «Тестирование» - комплексное сканирование перед тестированием

Мониторинг релиза

release-monitoring

SCA

Мониторинг релиза и фоновое сканирование - периодическое сканирование зависимостей

Подключение плагина для сканирования при сборке дистрибутива#

Для автоматизации запуска сканирования на этапе сборки дистрибутива необходимо интегрировать CI-систему с ASOC Control Center через Open API. Ниже описаны способы запуска сканирования при сборке артефактов с использованием кода точки build-point:

Передача через Project Store#

Этот метод используется, когда артефакты предварительно загружены в Project Store — единое хранилище артефактов платформы. Вместо прямых URL в API передаются идентификаторы объектов (projectStoreBlobObjId), что обеспечивает безопасность и контроль доступа к данным.

API для загрузки артефактов в Project Store, описано в разделе Программные интерфейсы.

Для запуска сканирования необходимо отправить POST-запрос на следующую точку подключения:

   POST /v1/scanning/tenant/{tenant}/project/{project}/byBinary

Для использования данного метода необходимо предварительно загрузить артефакты в Project Store, а затем передать их идентификаторы (projectStoreBlobObjId) в теле запроса API.

Пример тела запроса:

   {
     "version": "11.02.2026 15:33",
     "pointKey": "build-point",
     "objects": [
       {
         "projectStoreBlobObjId": "a6xx25xx-dxx7-40xx-xbcx-exx07xx70xx9",
         "scanTypeObject": "branch",
         "metaData": {
           "uri": "ssh://git@mycompany.ru:7998/ASOC/asoc-orchestrator",
           "branch": "task/IDMINT-0001",
           "hashCommit": "9xxcdxx7exx54xx1cxxe94xx53xxddxx0exx1axx"
         }
       },
       {
         "projectStoreBlobObjId": "4xx69xx1-exx7-4exx-xxb4-xxffxxe5xx4x",
         "scanTypeObject": "bomPath"
       }
     ]
    }

Доступ к Project Store должен быть обеспечен для сервисных аккаунтов ASOC.

Передача артефактов по URL#

Этот метод используется, когда артефакты (дистрибутив и BOM-файл) доступны по прямым URL-адресам в хранилище, например, в Nexus или Artifactory. При вызове API передаются ссылки на артефакты, которые оркестратор загружает для анализа.

Для запуска сканирования необходимо отправить POST-запрос на следующую точку подключения:

   POST /v1/scanning/tenant/{tenant}/project/{project}/byUrl

Для успешного запуска сканирования необходимо корректно сформировать тело запроса, указав:

  • URL до BOM-файла;

  • URL до репозитория с исходным кодом;

  • версию сборки;

  • версию сборки;

  • информацию о ветке и хеше коммита.

Все поля запроса должны соответствовать схеме ProcessTaskRequestDto. Доступ к хранилищу по URL должен быть обеспечен для сервисных аккаунтов ASOC.

Пример тела запроса:

   {
     "version": "02.02.2026 13 40",
     "pointKey": "build-point",
     "objects": [
       {
         "scanObjectUrl": "https://<BITBUCKET_HOST>/rest/api/1.0/projects/<PROJECT_KEY>/repos/<REPO_NAME>/archive?format=zip&at=refs/heads/<BRANCH_NAME>",
         "scanTypeObject": "branch",
         "metaData": {
           "uri": "ssh://git@mycompany.ru:7998/ASOC/asoc-orchestrator",
           "branch": "task/IDMINT-0001",
           "hashCommit": "9xxcdxx7exx54xx1cxxe94xx53xxddxx0exx1axx"
         }
       },
       {
         "scanObjectUrl": "https://<NEXUS_HOST>/repository/<REPO_NAME>/<GROUP_ID:директории>/<ARTIFACT_ID>/<VERSION>/<ARTIFACT_ID>-<VERSION>-cyclonedx-distrib.json",
         "scanTypeObject": "bomPath"
       }
     ]
   }

Необходимо указать URL для скачивания ZIP-архива исходников в поле scanObjectUrl.