vestige/.github/workflows/guard-no-private-cloud.yml
Claude 02e0241aa2
ci: guard against private paths, usernames, and machine names
Adds scripts/check-no-private-paths.sh and wires it into the existing
guard workflow (runs on every push + PR). It fails if a real local
filesystem path, personal username, or host name lands in the public
repo — the class of leak just removed (e.g. /home/<user>/ worktree
paths and a dev machine name).

- Blocks exact private tokens and real-username home paths
  (/home/<x>/, /Users/<x>/, C:\Users\<x>\).
- Allowlists the placeholder paths the docs legitimately use
  (/Users/you/..., ~/, etc.), so no false positives on the tree.
- Verified: passes clean on the current tree; fails on a planted
  leak (token + real home path); placeholder paths pass.
- CLAUDE.md hygiene section now points to both guards.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B3RxH4JxAQYsuA9kFVnR5v
2026-07-01 15:14:07 +00:00

31 lines
959 B
YAML

name: Guard — No Private Cloud Code
# Fails if private content ever lands in this public repo:
# 1. Private Vestige Cloud *service* code (billing, sync-key/namespace
# mapping, Lemon Squeezy webhooks, transactional email). The public cloud
# *client* is allowed and does not trip this.
# 2. Private local paths, usernames, or machine names (e.g. a real
# /home/<user>/ worktree). Placeholder paths like /Users/you/ are allowed.
on:
push:
branches: [main, feat/cloud-sync-mvp]
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
guard:
name: No private cloud service code
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Scan for private cloud service markers
run: ./scripts/check-no-private-cloud.sh
- name: Scan for private paths, usernames, and machine names
run: ./scripts/check-no-private-paths.sh