UNPKG

@jitesoft/audit-for-gitlab

Version:

Minimal application to convert npm audit report into gitlab-ci vulnerability report format.

60 lines (41 loc) 2.4 kB
# Audit for GitLab This is a small script to add a `npm audit` GitLab dependency scanner. It generates a JSON audit via npm and converts it to the format that gitlab expects as dep scan report. In case a vulnerability equal or higher to `moderate` is found, it will exit with exit code 1, i.e., fail. While generating the report, it will also output number of vulnerabilities found (and types) in stdout. **Observe:** The scanner will _currently_ only work with npmjs versions which makes use of audit report v2. GitLab report specification supported is [15.0.2](https://gitlab.com/gitlab-org/security-products/security-report-schemas/-/blob/5778ed0c8f9996f3a809439fc61a0b5272b26a0a/dist/dependency-scanning-report-format.json) ## Usage Easiest way to use the scanner is to add it as a include in your .gitlab-ci.yml file, such as: ```yaml include: - https://gitlab.com/jitesoft/open-source/javascript/audit-for-gitlab/raw/master/scan.yml ``` This will run the scanning on your project on all events as long as it is disabled via env variables. If you wish to customize it a bit more, you can extend or write your own: ```yaml npm-audit_dependency_scanning: image: registry.gitlab.com/jitesoft/open-source/javascript/audit-for-gitlab:1 script: - audit-for-gitlab artifacts: reports: dependency_scanning: gl-dependency-scanning-report.json ``` If you wish to just use the scanner in one of your current scripts, the easiest way to do this, is to just install it via NPM: ```sh npm i --global @jitesoft/audit-for-gitlab cd /my/project/dir audit-for-gitlab cat gl-dependency-scanning-report.json ``` ## Dockerfile The dockerfile is rebuilt on each new version of the scanner released, each build is released for ARM64 and AMD64. ## Env variables The following env variables can be used to configure the behaviour of the application slightly: `SECURE_LOG_LEVEL` - Will change the log level to report more or less output. Available levels are: `fatal`, `error`, `warn`, `info`, `debug`though only debug, info and fatal are used in the application. The debug level is basically only used for debugging purposes and development. `info` is default. `SCAN_EXIT_CODE` - Will force a specific exit code in case of a moderate, high or critical vulnerability is found. In case this is not set, exit code `1` will be used in the cases above, else `0`.