CI/CD Automation & Developer API

Integrate AuditBloc into your deployment pipelines. Prevent WCAG violations, unconsented cookies, and AI transparency gaps from ever reaching production.

GitHub Actions Compliance Gate

Automatically audits staging URLs on pull requests and blocks merging if score drops below 85.

name: AuditBloc Compliance Gate

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

jobs:
  compliance-audit:
    name: Audit Website Compliance (WCAG + GDPR + AI)
    runs-on: ubuntu-latest
    steps:
      - name: Trigger AuditBloc Scan
        id: scan
        run: |
          RESPONSE=$(curl -s -X POST https://auditbloc.taylancetech.com/api/scan \
            -H "Content-Type: application/json" \
            -d '{"url":"https://staging.yourwebsite.com","checks":{"accessibility":true,"cookie":true,"aiDisclosure":true}}')
          
          SCAN_ID=$(echo $RESPONSE | jq -r .scanId)
          REPORT_ID=$(echo $RESPONSE | jq -r .reportId)
          echo "scan_id=$SCAN_ID" >> $GITHUB_OUTPUT
          echo "report_id=$REPORT_ID" >> $GITHUB_OUTPUT

      - name: Wait for Scan Completion
        run: |
          SCAN_ID="${{ steps.scan.outputs.scan_id }}"
          for i in {1..30}; do
            STATUS=$(curl -s "https://auditbloc.taylancetech.com/api/scan/$SCAN_ID/status" | jq -r .status)
            echo "Current status: $STATUS"
            if [ "$STATUS" = "complete" ]; then
              break
            fi
            sleep 2
          done

      - name: Fetch Final Report & Evaluate Gate
        run: |
          REPORT_ID="${{ steps.scan.outputs.report_id }}"
          DATA=$(curl -s "https://auditbloc.taylancetech.com/api/report/$REPORT_ID")
          SCORE=$(echo $DATA | jq -r .scanResult.overallScore)
          
          echo "Overall Compliance Score: $SCORE/100"
          if [ "$SCORE" -lt 85 ]; then
            echo "::error::Compliance gate failed: Score $SCORE is below threshold 85"
            exit 1
          fi

cURL Terminal Trigger

curl -X POST https://auditbloc.taylancetech.com/api/scan \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://yourwebsite.com",
    "checks": {
      "accessibility": true,
      "cookie": true,
      "aiDisclosure": true
    }
  }'

Node.js SDK / Script

// Trigger an automated scan via Node.js
async function runComplianceScan(targetUrl) {
  const initRes = await fetch("https://auditbloc.taylancetech.com/api/scan", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      url: targetUrl,
      checks: { accessibility: true, cookie: true, aiDisclosure: true }
    })
  });
  
  const { scanId, reportId } = await initRes.json();
  console.log(`Scan initiated: ${scanId}. Monitoring...`);
  
  // Poll status until complete
  while (true) {
    await new Promise(r => setTimeout(r, 1500));
    const statusRes = await fetch(`https://auditbloc.taylancetech.com/api/scan/${scanId}/status`);
    const statusData = await statusRes.json();
    if (statusData.status === "complete") {
      console.log(`Report ready: https://auditbloc.taylancetech.com/audit/${reportId}`);
      return statusData;
    }
  }
}