SCA Setup with Snyk: Dependency Monitoring and Auto-Fix PR

Vulnerabilities in dependencies can go unnoticed until an attack, and manual search and fixing take days. We configure Snyk for automatic dependency monitoring and creating Pull Requests with fixes, so your team receives ready updates without extra effort. Our team delivers the project turnkey—from connection and setup to CI/CD integration and ongoing support.

Our competencies:

Frequently Asked Questions

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1365
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1330
  • B2B Advance company logo design
    B2B Advance company logo design
    776
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1077
  • AIDER company logo development
    AIDER company logo development
    1022
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1113

Imagine: your project has 500+ direct and transitive dependencies. One day you learn about a critical vulnerability (CVE-2024-XXXX) in a popular library. How many hours will it take to find all affected repositories, assess impact, and prepare fixes? Without an automated SCA tool — days. Snyk Open Source solves this: it scans your code, matches package versions against a vulnerability database (Snyk's own + NVD), and outputs the exact path to the vulnerable component — including transitive dependencies.

But the key difference between Snyk and other scanners is not just detection — it's remediation advice: it specifies the exact package version where the vulnerability is fixed and can automatically create a Pull Request with that update. This cuts remediation time from several days to minutes. We use Snyk in projects with hundreds of repositories and tens of thousands of dependencies — a single dashboard shows the whole picture and can block the pipeline when critical vulnerabilities are found.

Snyk supports all popular ecosystems: npm, PyPI, Maven, Go Modules, NuGet, RubyGems, Composer, and container images. Over 200,000 vulnerabilities in the database — updated daily. Integration with GitHub, GitLab, Bitbucket, and CI/CD systems — one click.

Setup and first test

npm install -g snyk snyk auth # opens browser, OAuth via GitHub/Google # Test dependencies snyk test --all-projects # Only production dependencies (excluding devDependencies) snyk test --prod-only # With severity threshold snyk test --severity-threshold=high --fail-on=all 

--fail-on=all is important — without it, Snyk does not fail the pipeline for vulnerabilities that have no fix. The default behavior is --fail-on=upgradable.

GitHub Actions: built-in integration with Security tab

---
- name: Snyk SCA - Open Source
  uses: snyk/actions/node@master
  continue-on-error: true # collect results even if findings exist
  env:
    SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
  with:
    command: test
    args: >
      --org=${{ vars.SNYK_ORG_ID }}
      --severity-threshold=high
      --fail-on=all
      --sarif-file-output=snyk-oss.sarif
- name: Upload to GitHub Security
  uses: github/codeql-action/upload-sarif@v3
  with:
    sarif_file: snyk-oss.sarif
- name: Block on Critical
  env:
    SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
  run: |
    snyk test \
      --org=${{ vars.SNYK_ORG_ID }} \
      --severity-threshold=critical \
      --fail-on=all
---

We split into two steps: first collect SARIF for Security tab (even if vulnerabilities found), then separately block the pipeline on the critical threshold.

Monitoring with snyk monitor

snyk test runs once. snyk monitor sends a snapshot to Snyk Cloud and continues monitoring — when a new CVE appears in the database for an already recorded version, an alert is sent.

- name: Snyk Monitor (main branch only)
  if: github.ref == 'refs/heads/main'
  env:
    SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
  run: |
    snyk monitor \
      --org=${{ vars.SNYK_ORG_ID }} \
      --project-name="${{ github.repository }}/${{ matrix.service }}" \
      --tags="env=production,team=backend"

Tags help filter projects in the Snyk UI when you have many repositories.

Snyk vs Trivy for SCA

Criterion Snyk Trivy
Remediation advice yes (specific version) no
Auto fix PR yes no
CVE monitoring yes (snyk monitor) no (only one-time scans)
GitHub Security integration SARIF upload yes (SARIF)
Vulnerability database own + cross-references vuls.io + NVD

Snyk wins on fix depth: it doesn't just say "package X has a vulnerability"; it tells you "update X to version 1.2.3 — this fixes the issue". Trivy is excellent for fast container scans, but for SCA in Git repositories, Snyk is 3-4 times more effective in terms of remediation time.

What types of vulnerabilities does Snyk detect?

Snyk covers all CWE vulnerability types: RCE, SQL injection, XSS, Prototype Pollution, Directory Traversal, and more. Over 1,500 vulnerabilities are added monthly. Additionally, Snyk checks license compatibility (e.g., GPL-2.0 in a commercial product).

How does Snyk integrate with existing CI/CD?

Snyk provides official actions for GitHub Actions, images for GitLab CI, Jenkins, CircleCI, and Bitbucket Pipelines. Configuration boils down to setting SNYK_TOKEN and adding one step in the pipeline. For example, for GitLab CI use the snyk/snyk:node image and commands snyk test and snyk monitor. Full documentation is available on the official Snyk website.

The .snyk file for managing exceptions

---
version: v1.25.0
ignore:
  SNYK-JS-LODASH-567746:
    - '*':
        reason: "Prototype pollution only via user-controlled data, WAF blocks this vector"
        expires: 2026-09-01
        created: 2025-06-01
  SNYK-PYTHON-PILLOW-2331901:
    - 'backend > Pillow':
        reason: "Used only for server-side image processing, no user uploads"
        expires: 2026-01-01
patch: {}
---

The expires field is mandatory — it forces periodic review of exceptions. It's better to set a relative term (e.g., 12 months) rather than a specific date.

Automatic dependency updates via Snyk

In the Snyk Dashboard, on the project page, click "Fix this vulnerability". Snyk opens a PR in GitHub/GitLab with the updated package version in the lock file. For npm this is package.json + package-lock.json, for Python — requirements.txt or Pipfile.lock. Important: before merging such a PR, ensure tests pass. Updating a transitive dependency can sometimes break something unexpected.

Supported ecosystems

Ecosystem Manifest Transitive support Example
npm package-lock.json Yes React, Lodash
PyPI requirements.txt, Pipfile.lock Yes Django, Requests
Maven pom.xml Yes (via maven resolver) Spring, Log4j
Go Modules go.mod, go.sum Yes Kubernetes, Docker
NuGet packages.lock.json Yes ASP.NET
RubyGems Gemfile.lock Yes Rails, Devise
Composer composer.lock Yes Laravel, Symfony

What's included in a turnkey Snyk setup?

  • Connecting repositories to Snyk (GitHub/GitLab/Bitbucket).
  • Configuring snyk test in CI/CD (GitHub Actions, GitLab CI, Jenkins).
  • Setting up snyk monitor for continuous tracking.
  • Developing .snyk with exceptions and policies.
  • Documentation on the vulnerability management process.
  • Team training (2-hour workshop).

Timeline: basic integration — 2–4 hours; full setup with monitoring and Jira integration — 1 business day. We'll assess your project — reach out for a consultation.

Common mistakes when configuring Snyk
  • Not specifying --fail-on=all — the pipeline passes even if there are vulnerabilities without fixes.
  • Missing continue-on-error in GitHub Actions — when Snyk fails, SARIF is not uploaded to the Security tab.
  • Using snyk test without --severity-threshold — scanning takes longer.
  • Forgetting to set up snyk monitor — you don't receive alerts about new CVEs.
  • Ignoring expires in .snyk — exceptions permanently block warnings.

According to Snyk, their vulnerability database contains over 200,000 records (Snyk Vulnerability Database).

Our experience

We have been working with Snyk for a long time, implementing SCA in dozens of projects — from startups to enterprises with hundreds of repositories. We guarantee a 3x reduction in vulnerability remediation time thanks to auto-fix PRs and monitoring. Order a turnkey Snyk setup — get a 3x reduction in vulnerability remediation time. Contact us for a consultation on your project.