Commit 50ad4a59 authored by Bart Kamphorst's avatar Bart Kamphorst
Browse files

feat: introduce python:cyclonedx

parent 22f624a0
Loading
Loading
Loading
Loading

python/cyclonedx.yml

0 → 100644
+36 −0
Original line number Diff line number Diff line
---
include:
  - local: security/trivy.yml
  - local: python/generic.yml

.freeze-dependencies: &freeze-dependencies
  - python3 -m venv .venv
  - source .venv/bin/activate
  - !reference [".python:pre-install", script]
  - python3 -m pip freeze > ${CI_PROJECT_DIR}/requirements-cyclonedx.txt
  - deactivate

python:cyclonedx:
  extends: .python:pre
  variables:
    JOB_PACKAGE: cyclonedx-bom
  script:
    - !reference [".python:pre", script]
    - *freeze-dependencies
    - cyclonedx-py requirements ${CI_PROJECT_DIR}/requirements-cyclonedx.txt
      --outfile ${CI_PROJECT_DIR}/cyclonedx.json
  artifacts:
    paths:
      - pip-log.txt
      - requirements-cyclonedx.txt
      - cyclonedx.json
    reports:
      cyclonedx:
        - cyclonedx.json
    when: always

trivy:python:
  extends: .trivy:sbom
  variables:
    TRIVY_TARGET: cyclonedx.json
  needs: ["python:cyclonedx"]

security/trivy.yml

0 → 100644
+21 −0
Original line number Diff line number Diff line
---
variables:
  TRIVY_SEVERITIES: HIGH,CRITICAL # comma-separated list of severities to fail on (LOW,MEDIUM,HIGH,CRITICAL)

.trivy:
  image:
    name: aquasec/trivy
    entrypoint: [""]

.trivy:sbom:
  extends: .trivy
  script:
    - trivy sbom $TRIVY_SBOM_ARGS $TRIVY_TARGET
    - |
      if ! trivy sbom $TRIVY_SBOM_ARGS $TRIVY_TARGET --exit-code 1 --severity $TRIVY_SEVERITIES &>/dev/null; then
        echo "[!] Detected vulnerabilities with severity $TRIVY_SEVERITIES."
        exit 1
      else
        echo "[+] Found no vulnerabilities with severity $TRIVY_SEVERITIES."
        exit 0
      fi