Skip to main content

CLI Wrapper for DefectDojo using APIv2

Project description

DefectDojo CLI

License

A CLI wrapper for DefectDojo

Installation

Simply run:

python3 -m pip install defectdojo-cli2

This will install it as defectdojo.

Usage

defectdojo --help

Upload scans

Example:

defectdojo reimport_scan upload --product_name="test dd" --engagement_name="DefectDojoImporter" --scan_type="GitLab Container Scan" --active --verified --test_title="GitLab Container Scan" --file=gl-container-scanning.json

This wil upload a Gitlab Container Scan report to DefectDojo to the product named test dd and engagement called DefectDojoImporter and name the test GitLab Container Scan, if it exists it do a reimport on that test, if it doesn't exists, it will create a new test with that name. If you name the engagement to something that doesn't already exists, it will create a name engagement with the provided name.

Upload languages

Example:

defectdojo import_languages upload --product=21 --file=cloc.json

This will upload a language file for a project (normally generated with cloc) to the product with the id provided.

Development

poetry env use /usr/local/bin/python3 # = your full path to the Python executable.
poetry install
poetry run python3 defectdojo_cli2

Update dependencies https://github.com/MousaZeidBaker/poetry-plugin-up

poetry self add poetry-plugin-up
poetry up

Using environment variables

The goal of this cli is not only to be used as a cli tool for accessing DefectDojo API, but also to be able to run automated jobs in a CI environment, like importing scans to DefectDojo.

To use Defectdojo CLI in a CI context, there is DEFECTDOJO_ prefixed environment variables you could set. This, so you don't need to provide the arguments.

DEFECTDOJO_API_KEY
DEFECTDOJO_BRANCH_TAG
DEFECTDOJO_COMMIT_HASH
DEFECTDOJO_ENGAGEMENT_END_DATE
DEFECTDOJO_ENGAGEMENT_ID
DEFECTDOJO_ENGAGEMENT_NAME
DEFECTDOJO_LANGUAGES_FILE
DEFECTDOJO_PASSWORD
DEFECTDOJO_PRODUCT_DESCRIPTION
DEFECTDOJO_PRODUCT_ID
DEFECTDOJO_PRODUCT_NAME
DEFECTDOJO_PRODUCT_TAGS
DEFECTDOJO_PRODUCT_TYPE
DEFECTDOJO_PUSH_TO_JIRA
DEFECTDOJO_SCAN_TYPE
DEFECTDOJO_TEST_NAME
DEFECTDOJO_TEST_TITLE
DEFECTDOJO_TEST_TYPE
DEFECTDOJO_URL
DEFECTDOJO_USER_NAME

Docker images

Docker images containing defectdojo cli is published on docker hub.

Example of running defectdojo cli in GitLab Runner

To upload results of GitLab Container Scan:

defectdojo:upload:container:scanning:
  image: digitalist/defectdojo-cli2:latest
  needs:
    - job: container_scanning
      artifacts: true
  stage: .post
  variables:
    GIT_STRATEGY: none
    DEFECTDOJO_API_KEY: c1ca1f4193f2460f9f6a3dab22b723ab
    DEFECTDOJO_URL: https://defectdojo.url
    DEFECTDOJO_ENGAGEMENT_NAME: "Gitlab Runner"
    DEFECTDOJO_PRODUCT_NAME: ${CI_PROJECT_TITLE}
    DEFECTDOJO_BRANCH_TAG: ${CI_COMMIT_REF_NAME}
    DEFECTDOJO_COMMIT_HASH: ${CI_COMMIT_SHA}
    DEFECTDOJO_SCAN_TYPE: "GitLab Container Scan"
    DEFECTDOJO_TEST_TITLE: "GitLab Container Scan"
  script:
    - defectdojo reimport_scan upload --file=gl-container-scanning-report.json

To upload results of cloc (languages) to project number 42 in DefectDojo:

defectdojo:upload:cloc:
  image: digitalist/defectdojo-cli2:latest
  needs:
    - job: cloc
      artifacts: true
  variables:
    DEFECTDOJO_API_KEY: c1ca1f4193f2460f9f6a3dab22b723ab
    DEFECTDOJO_URL: https://defectdojo.url
    DEFECTDOJO_PRODUCT_ID: 42
  script:
    - defectdojo import_languages upload --file=cloc.json

Fork

This started as a fork of https://github.com/adiffpirate/defectdojo-cli.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

defectdojo_cli2-0.1.19.tar.gz (23.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

defectdojo_cli2-0.1.19-py3-none-any.whl (33.1 kB view details)

Uploaded Python 3

File details

Details for the file defectdojo_cli2-0.1.19.tar.gz.

File metadata

  • Download URL: defectdojo_cli2-0.1.19.tar.gz
  • Upload date:
  • Size: 23.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.13.4 Darwin/23.6.0

File hashes

Hashes for defectdojo_cli2-0.1.19.tar.gz
Algorithm Hash digest
SHA256 6d1a14ff3cf0392064147703d22eec69bb241a18087e69146e90e9e3f4587120
MD5 dc8d920a59a1f1ae962ebe51b3fc0b2f
BLAKE2b-256 f2c225a8b804a70ca58ca6e742d394ba70f5b2ae09608df49c982c3f732a5bdf

See more details on using hashes here.

File details

Details for the file defectdojo_cli2-0.1.19-py3-none-any.whl.

File metadata

  • Download URL: defectdojo_cli2-0.1.19-py3-none-any.whl
  • Upload date:
  • Size: 33.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.13.4 Darwin/23.6.0

File hashes

Hashes for defectdojo_cli2-0.1.19-py3-none-any.whl
Algorithm Hash digest
SHA256 23aa9e17e4185878eb98d8ba2d66557fb842c103946227a2e1b993c23fe8ae15
MD5 9c2fe7597996f012fd37ff03c5f6adcb
BLAKE2b-256 c7b7c3ea20e2c2d80637758fad4435c18252023e254dc03185d1873e59ad1c5f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page