Documentation & Support

How can we help you?

Find answers to common questions, explore our documentation, and learn how to use Dependo effectively.

Quick start
guide

Get up and running with Dependo in minutes.

01

Create Your Account

Sign up for Dependo and create your organization. Once registered, you'll have access to the dashboard where you can manage repositories, rule sets, and team members.

Early access users get priority onboarding support
02

Configure Rule Sets

Create rule sets that define your package governance policies. Configure vulnerability thresholds, license allowlists, and approval workflows.

Example Rule Set
// Block critical vulnerabilities
{
  "type": "vulnerability",
  "severity": "critical",
  "action": "block"
}
03

Generate API Key

Navigate to Integrations > API Keys to generate an API key for your CI/CD pipeline. API keys can be scoped to specific repositories for security.

Store API keys securely in your CI/CD secrets, never in code
04

Integrate with CI/CD

Add Dependo verification to your CI/CD pipeline. Submit your manifest files and Dependo will evaluate them against your rule sets.

View CI/CD integration guides

Core Concepts

Verification

A verification is a single evaluation of your project's dependencies against configured rule sets.

Rule Sets

Collections of rules that define your package governance policies. Assign different rule sets to different repositories.

Approvals

When packages violate rules, they can be routed through approval workflows for exception handling.

SBOM

Software Bill of Materials automatically generated in CycloneDX or SPDX format for compliance.

Pipeline
integration guides

Add dependency verification to your existing CI/CD workflows.

GitHub Actions Integration

Add Dependo verification to your GitHub Actions workflow with this example configuration.

.github/workflows/verify-dependencies.yml
name: Dependency Verification

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  verify-dependencies:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Read manifest files
        id: manifests
        run: |
          # Base64 encode manifest files
          PACKAGE_LOCK=$(base64 -w 0 package-lock.json)
          echo "package_lock=$PACKAGE_LOCK" >> $GITHUB_OUTPUT

      - name: Verify with Dependo
        run: |
          RESPONSE=$(curl -s -X POST \
            -H "X-API-Key: ${{ secrets.DEPENDO_API_KEY }}" \
            -H "Content-Type: application/json" \
            -d '{
              "repositoryName": "${{ github.repository }}",
              "branch": "${{ github.ref_name }}",
              "commitHash": "${{ github.sha }}",
              "projectFiles": [{
                "fileName": "package-lock.json",
                "filePath": "./package-lock.json",
                "content": "${{ steps.manifests.outputs.package_lock }}"
              }],
              "ruleSetIds": ["your-ruleset-id"]
            }' \
            https://api.dependo.io/v1/package-gate/verify)

          STATUS=$(echo $RESPONSE | jq -r '.status')
          echo "Verification status: $STATUS"

          if [[ "$STATUS" == "Rejected" ]]; then
            echo "::error::Dependency verification failed"
            echo $RESPONSE | jq '.violations'
            exit 1
          fi

Setup Steps

  1. Add your API key as a repository secret named DEPENDO_API_KEY
  2. Replace your-ruleset-id with your actual rule set UUID
  3. Adjust the manifest file path based on your project structure
  4. For monorepos, include multiple project files in the request

Azure DevOps Integration

Integrate Dependo verification into your Azure Pipelines.

azure-pipelines.yml
trigger:
  - main
  - develop

pool:
  vmImage: 'ubuntu-latest'

variables:
  - group: dependo-credentials

stages:
- stage: Verify
  displayName: 'Dependency Verification'
  jobs:
  - job: VerifyDependencies
    steps:
    - task: Bash@3
      displayName: 'Submit to Dependo'
      inputs:
        targetType: 'inline'
        script: |
          # Base64 encode manifest
          MANIFEST=$(base64 -w 0 package-lock.json)

          # Submit verification
          RESPONSE=$(curl -s -X POST \
            -H "X-API-Key: $(DEPENDO_API_KEY)" \
            -H "Content-Type: application/json" \
            -d "{
              \"repositoryName\": \"$(Build.Repository.Name)\",
              \"branch\": \"$(Build.SourceBranchName)\",
              \"commitHash\": \"$(Build.SourceVersion)\",
              \"buildNumber\": \"$(Build.BuildNumber)\",
              \"projectFiles\": [{
                \"fileName\": \"package-lock.json\",
                \"content\": \"$MANIFEST\"
              }]
            }" \
            https://api.dependo.io/v1/package-gate/verify)

          STATUS=$(echo $RESPONSE | jq -r '.status')

          if [[ "$STATUS" == "Rejected" || "$STATUS" == "Failed" ]]; then
            echo "##vso[task.logissue type=error]Verification failed"
            exit 1
          fi

Setup Steps

  1. Create a variable group named dependo-credentials
  2. Add a secret variable DEPENDO_API_KEY with your API key
  3. Link the variable group to your pipeline
  4. Adjust manifest paths for your project structure

REST API Reference

Use the REST API directly for custom integrations or unsupported CI/CD platforms.

POST /api/v1/package-gate/verify

Submit a package verification request.

Request Body
{
  "repositoryName": "myorg/myrepo",
  "branch": "main",
  "commitHash": "abc123def456...",
  "buildNumber": "build-123",
  "projectFiles": [
    {
      "fileName": "package-lock.json",
      "filePath": "./package-lock.json",
      "content": "<base64-encoded-content>"
    }
  ],
  "ruleSetIds": [
    "550e8400-e29b-41d4-a716-446655440000"
  ]
}
Response
{
  "id": "verification-uuid",
  "status": "Passed",
  "totalPackages": 247,
  "violatingPackages": 0,
  "processingTimeMs": 3420,
  "violations": []
}

Status Codes

200 Verification completed successfully
400 Invalid request body or missing required fields
401 Invalid or missing API key
403 API key doesn't have access to specified resources

Configuring
governance rules

Define policies that match your organization's security and compliance requirements.

Vulnerability

Block packages with known CVEs based on severity thresholds.

Severity Critical, High, Medium, Low
Action Block, Warn, RequireApproval
Sources NVD, GitHub Advisories

License

Enforce license compliance with allowlists and blocklists.

Mode Allowlist, Blocklist
Detection GPL, Copyleft, Unknown
Popular MIT, Apache-2.0, BSD

Deprecation

Detect and block deprecated packages before they cause issues.

Detect Registry metadata
Action Block, Warn
Grace Period Configurable

Maintainer

Verify package maintainers meet trust criteria.

Min Count Minimum maintainers
Blocklist Block specific accounts
Reputation Score threshold

Signature

Require cryptographic signatures for package verification.

Types Sigstore, PGP, X.509
Level Basic, Standard, Strict
Trusted Key/Certificate list

Integrity

Verify package integrity against registry checksums.

Algorithms SHA512, SHA256, SHA1
Source Lockfile vs Registry
On Mismatch Block, Warn, Ignore

Rule Set Options

Each rule set provides advanced configuration options:

EvaluateTransitiveDependencies default: true

When false, only direct dependencies are evaluated. Useful for faster CI/CD feedback.

StopOnFirstBlockingRule default: false

Short-circuit evaluation for fast-fail pipelines. Get quick feedback vs. comprehensive reports.

MaxPackageDependencyDepth default: -1 (unlimited)

Limit dependency tree scanning depth. Set to 3 to focus on critical first levels.

RegistryFailurePolicy default: Warn

Behavior when registry queries fail: Warn, Block, UseCacheOnly, or SkipPackage.

Frequently asked
questions

Navigate to Rules in the sidebar, click Create Rule Set, and follow the wizard. Start with a template (e.g., "Security Focused" or "Compliance") and customize the rules to match your requirements. Each rule set can contain multiple rules of different types.

Dependo supports 8 ecosystems: NPM and NuGet have full production support including private registries. Maven, PyPI, Go, Cargo, RubyGems, and Composer are supported for vulnerability scanning, license detection, and SBOM generation.

Generate an API key from Integrations > API Keys, then use our REST API to submit package verifications from your pipeline. We provide examples for GitHub Actions and Azure DevOps. Integration typically takes under 10 minutes.

Dependo queries the National Vulnerability Database (NVD) and GitHub Security Advisories (GHSA) in real-time. Results are cached for 24 hours. We use intelligent rate limiting to maximize throughput while staying within API limits.

Yes! Include your NuGet.config file as a project file in the verification request. Dependo parses the config, extracts credentials, and encrypts them with AES-256-GCM. Credentials are isolated per account and never exposed in API responses.

Dependo generates SBOMs in CycloneDX 1.5 and SPDX 2.3 JSON formats. Both per-repository and organization-wide SBOMs are available. Each SBOM includes a SHA256 hash for integrity verification. Enable automatic generation in Settings.

Most verifications complete in under 5 seconds thanks to parallel processing and aggressive caching. Cache hits return in under 100ms. Fingerprint-based caching provides 60-80% hit rates for identical manifests across repositories.

Blocked packages can trigger an automatic approval workflow. Security teams receive notifications and can approve, reject, or request changes. Approved packages are whitelisted for future verifications. Configure "StopOnFirstBlockingRule" for fast-fail pipelines.

Get
help

Can't find what you're looking for? Reach out to the Dependo team.

Still have questions?

Our team is here to help you get started with Dependo and secure your software supply chain.