npm audit CI/CD integration with Snapsec VM
This guide shows you, step by step, how to:- Run
npm auditin your GitHub Actions or GitLab CI pipeline. - Generate a JSON report.
- Send that JSON report directly to Snapsec VM using a webhook.
1. Prerequisites
- A Node.js project with a
package.jsonandpackage-lock.json. - Snapsec:
- An Assessment in Snapsec VM where npm audit vulnerabilities will be stored.
- Assessment ID (
<assessment-id>) - API key (
<your-api-key>)
- CI environment with
curlavailable.
2. Create an assessment in Snapsec VM
Before you send any results, create a dedicated assessment in Snapsec VM that will hold thenpm audit findings:
- Log in to the Snapsec UI.
- Go to the VM / Assessments section.
- Click New Assessment (or the equivalent button) and give it a clear name, for example:
npm audit - MyService
- Save the assessment and copy its Assessment ID value.
3. Generate npm audit JSON report (locally or in CI)
First, make sure your Node.js dependencies are installed and then runnpm audit with JSON output.
npm-audit.json.
You can try this locally first to confirm it works before adding it to your CI.
4. Push npm audit JSON directly to Snapsec VM via webhook
Snapsec already knows how to parse thenpm audit JSON format, so you can send the file directly to a dedicated npm-audit import endpoint.
Important: ReplaceBelow are ready-to-use examples for GitHub Actions and GitLab CI.<assessment-id>with your actual Assessment ID and<your-api-key>with your API key. Note on the-kflag: This flag tellscurlto perform an “insecure” SSL transfer, which bypasses certificate validation. You may need this for local or development environments. Remove it if your endpoint has a valid SSL certificate.
5. GitHub Actions example
- Create
.github/workflows/npm-audit-to-snapsec.ymlin your repository. - Copy the YAML above into that file.
- In your GitHub repository settings, create secrets:
SNAPSEC_ASSESSMENT_IDSNAPSEC_API_KEY
- Push your changes. GitHub Actions will run the workflow on each push or pull request.
6. GitLab CI example
If you use GitLab, add a job like this to your.gitlab-ci.yml:
- Create or edit
.gitlab-ci.ymlin the root of your repository. - Add the
npm_audit_to_snapsecjob shown above. - In your GitLab project, go to Settings → CI/CD → Variables and add:
SNAPSEC_ASSESSMENT_IDSNAPSEC_API_KEY
- Commit and push your changes. GitLab will run the job on merge requests and on the
mainbranch.
- Run
npm auditautomatically in your pipeline. - Upload the
npm-audit.jsonreport directly to Snapsec VM using the provided webhook.