Skip to content

feat: production GCP Cloud Run foundation + hardened, optimized front end (keyless IaC, WCAG 2.2 AA, GEO/structured-data, CWV-budgeted CI) #8

feat: production GCP Cloud Run foundation + hardened, optimized front end (keyless IaC, WCAG 2.2 AA, GEO/structured-data, CWV-budgeted CI)

feat: production GCP Cloud Run foundation + hardened, optimized front end (keyless IaC, WCAG 2.2 AA, GEO/structured-data, CWV-budgeted CI) #8

Workflow file for this run

name: Secret Scan
# Layered secret scanning (CI tier):
# - Gitleaks: fast, broad pattern coverage; uploads SARIF to the Security tab.
# - TruffleHog: credential VERIFICATION — fails the build on a LIVE secret.
# Pre-commit (Gitleaks) and GitHub push protection are the other two layers.
on:
pull_request:
push:
branches: [main]
schedule:
- cron: '0 6 * * 1' # weekly full-history sweep (incremental scans miss old commits)
workflow_dispatch:
permissions:
contents: read
security-events: write # allow Gitleaks to upload SARIF results
jobs:
gitleaks:
name: Gitleaks (fast + SARIF)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0 # full history so the scan sees all commits
- name: Gitleaks
uses: gitleaks/gitleaks-action@v3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# GITLEAKS_LICENSE is only required for GitHub *Organizations*.
# Public/personal repos (this one) need no license.
trufflehog-pr:
name: TruffleHog (verified, PR diff)
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: TruffleHog — scan PR diff, fail on verified
uses: trufflesecurity/trufflehog@main
with:
base: ${{ github.event.pull_request.base.sha }}
head: ${{ github.event.pull_request.head.sha }}
# Fail-closed on LIVE credentials. To also gate unverified findings,
# change to: --results=verified,unknown
extra_args: --only-verified
trufflehog-full:
name: TruffleHog (verified, full history)
if: github.event_name != 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install TruffleHog
run: curl -sSfL https://raw.githubusercontent.com/trufflesecurity/trufflehog/main/scripts/install.sh | sh -s -- -b /usr/local/bin
- name: TruffleHog — scan ALL history, fail on verified
run: trufflehog git file://. --only-verified --fail