Добавление в Gitflic CI¶
С помощью консольного агента johnny можно настроить сканирование компонентов в GitFlic CI. Поддерживаются типы раннера GitFlic shell и GitFlic docker.
Использование агента c типом раннера GitFlic shell¶
Для использования консольного агента с типом раннера GitFlic Shell необходимо предварительно выполнить следующие действия:
-
Скачать файл командой
илиwget -O /usr/local/bin/johnny https://REGISTRY_USERNAME:REGISTRY_PASSWORD@registry-one.codescoring.ru/repository/files/codescoring/johnny-depp/JOHNNY_VERSION/johnny-linux-amd64-JOHNNY_VERSION
curl -o /usr/local/bin/johnny https://REGISTRY_USERNAME:REGISTRY_PASSWORD@registry-one.codescoring.ru/repository/files/codescoring/johnny-depp/JOHNNY_VERSION/johnny-linux-amd64-JOHNNY_VERSION
JOHNNY_VERSION
необходимо заменить на версию агента. Список актуальных версий с описанием доступен в разделе Changelog.REGISTRY_USERNAME
иREGISTRY_PASSWORD
необходимо заменить на логин и пароль, полученные от вендора. -
Разрешить исполнение файла
Пример вызова бинарного файла агента в gitflic-ci.yaml
:
stages:
- test
sca:
stage: test
script:
- >
johnny
scan dir
--api_token $JOHNNY_API_TOKEN
--api_url $JOHNNY_API_URL
--ignore .git
--ignore fixtures
--ignore parsers
.
artifacts:
reports:
paths:
dependency_scanning: "bom.json"
Результатами выполненного сканирования можно управлять на вкладке Безопасность в интерфейсе проекта.
Использование агента с типом раннера GitFlic docker¶
Для использования консольного агента с типом раннера GitFlic docker необходимо предварительно выполнить следующие действия на машине с агентом:
-
Скачать файл командой
илиwget -O /usr/local/bin/johnny https://REGISTRY_USERNAME:REGISTRY_PASSWORD@registry-one.codescoring.ru/repository/files/codescoring/johnny-depp/JOHNNY_VERSION/johnny-linux-amd64-JOHNNY_VERSION
curl -o /usr/local/bin/johnny https://REGISTRY_USERNAME:REGISTRY_PASSWORD@registry-one.codescoring.ru/repository/files/codescoring/johnny-depp/JOHNNY_VERSION/johnny-linux-amd64-JOHNNY_VERSION
JOHNNY_VERSION
необходимо заменить на версию агента. Список актуальных версий с описанием доступен в разделе Changelog.REGISTRY_USERNAME
иREGISTRY_PASSWORD
необходимо заменить на логин и пароль, полученные от вендора. -
Скопировать агента в контейнер, который планируется использовать в задаче
-
Разрешить исполнение файла
-
Сохранить изменения в контейнере
Важно: при необходимости сохраните контейнер в удаленном репозитории.
Пример вызова бинарного файла агента в gitflic-ci.yaml
:
stages:
- test
sca:
stage: test
image: <repository><tag>
script:
- >
johnny
scan dir
--api_token $JOHNNY_API_TOKEN
--api_url $JOHNNY_API_URL
--ignore .git
--ignore fixtures
--ignore parsers
.
artifacts:
reports:
paths:
dependency_scanning: "bom.json"
Результатами выполненного сканирования можно управлять на вкладке Безопасность в интерфейсе проекта.
Подключение к реестру и проверка образов¶
Пример выборочной проверки образа с помощью агента в gitflic-ci.yaml
:
image: angelikade/mvn-npm-jdk:codescoring
stage: test-codescoring-image
when: manual
scripts:
- ls -la
- |
/usr/bin/johnny scan image <registry>/<repository>/<imagename>:<tag> \
--api_token "${CS_TOKEN}" \
--api_url "${CS_URL}"
Важно: доступ к файлу /v2/\_catalog
в GitFlic выключен из соображений безопасности. На текущий момент, рекуррентный проход по всем образам в реестре невозможен.
Использование политик безопасности при сканировании¶
-
Настройте политики на инсталляции CodeScoring
-
Запустите конвейер, используя стандартные настройки сканирования
-
При срабатывании политик агент завершит работу с возвратом кода ошибки и раннер GitFlic автоматически остановит конвейер.
Важно: на текущий момент в GitFlic не реализован механизм получения артефактов при завершении задачи с ошибкой. Ввиду этого, просмотр отчета по артефакту, вызвавшему остановку конвейера, в веб-интерфейсе GitFlic невозможен.