Safeguard Documentation Center

CI/CD Integration

Integrate Safeguard.sh into your CI/CD pipelines

CI/CD Integration

Integrate Safeguard.sh into your CI/CD pipelines for automated SBOM generation and security gates.

Overview

CI/CD integration enables:

  • Automatic SBOM generation on every build
  • Security gate enforcement before deployment
  • Vulnerability scanning in the pipeline
  • AI Remediate pull request generation

Supported Platforms

  • GitHub Actions
  • GitLab CI/CD
  • Jenkins
  • Azure DevOps
  • CircleCI
  • Bitbucket Pipelines

GitHub Actions

Basic SBOM Generation

name: Security Scan
on: [push, pull_request]

jobs:
  sbom:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Generate SBOM
        uses: safeguard-sh/sbom-action@v1
        with:
          api-key: ${{ secrets.SAFEGUARD_API_KEY }}

With Security Gate

name: Security Gate
on: [pull_request]

jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Security Check
        uses: safeguard-sh/gate-action@v1
        with:
          api-key: ${{ secrets.SAFEGUARD_API_KEY }}
          policy: production
          fail-on: critical

GitLab CI/CD

stages:
  - security

safeguard-scan:
  stage: security
  image: safeguard-sh/cli:latest
  script:
    - safeguard sbom generate --source .
    - safeguard gate check --policy production
  variables:
    SAFEGUARD_API_KEY: $SAFEGUARD_API_KEY

Jenkins

pipeline {
    agent any
    
    environment {
        SAFEGUARD_API_KEY = credentials('safeguard-api-key')
    }
    
    stages {
        stage('Security Scan') {
            steps {
                sh 'npm install -g @safeguard-sh/cli'
                sh 'safeguard sbom generate --source .'
                sh 'safeguard gate check --policy production'
            }
        }
    }
}

Azure DevOps

trigger:
  - main

pool:
  vmImage: 'ubuntu-latest'

steps:
  - script: |
      npm install -g @safeguard-sh/cli
      safeguard sbom generate --source .
      safeguard gate check --policy production
    env:
      SAFEGUARD_API_KEY: $(SafeguardApiKey)
    displayName: 'Security Scan'

Gate Configuration

Policy Options

OptionDescription
--fail-on criticalFail on critical vulnerabilities
--fail-on highFail on high or critical
--policy NAMEUse named policy
--allow-exceptionsHonor approved exceptions

Output Formats

# SARIF for GitHub Security tab
safeguard gate check --format sarif --output results.sarif

# JUnit for test reports
safeguard gate check --format junit --output results.xml

Best Practices

  1. Scan on every PR - Catch issues before merge
  2. Block on critical - Never deploy critical vulnerabilities
  3. Enable AI Remediate - Let Griffin AI generate fix PRs
  4. Cache results - Speed up repeated scans
  5. Store SBOMs - Archive for compliance

Exit Codes

CodeDescription
0Success, no violations
1Policy violations found
2Authentication error
3Configuration error

On this page