Skip to content

ci: add no-private-data check to scan PR commit messages - #58

Draft
open-coder-ai-org wants to merge 1 commit into
mainfrom
ci/no-private-data
Draft

ci: add no-private-data check to scan PR commit messages#58
open-coder-ai-org wants to merge 1 commit into
mainfrom
ci/no-private-data

Conversation

@open-coder-ai-org

@open-coder-ai-org open-coder-ai-org commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

Adds the no-private-data job from open-coder-ai/agentseam's .github/workflows/ci.yml to this repo's CI.

What it does: on every pull request, it scans the commit messages of the commits the PR introduces for patterns that indicate local or personal data leaked into a message: absolute home-directory paths (/home/..., /Users/...), session identifiers, claude.ai/code/session links, /tmp/claude-* paths, and personal email domains (gmail/yahoo/hotmail/outlook/protonmail). If a match is found it fails the build and names the offending commit SHA — it never echoes the matched text itself, since a log line is a publication too.

Scope: it only scans BASE_SHA..HEAD (excluding merge commits) — the commits a specific pull request adds — never the repository's full history. This repository has 83 pre-existing violations already on main; a full-history scan would fail every build starting today. This job stops new leaks from landing; it does not attempt to clean up history that has already leaked.

The actions/checkout step is pinned to 3d3c42e5aac5ba805825da76410c181273ba90b1 (tag v7), the same pin this workflow already uses for every other job in the file.

This repo's top-level permissions: is {} and every job declares its own — unlike agentseam, chock and chock-catalog, which set permissions: contents: read once at the workflow level. To fit that convention the job here carries an explicit permissions: contents: read and a name: (matching the sibling dco job's style); the if:, runs-on:, steps and the scanning logic itself are unchanged from agentseam's job.

Verified locally: the job's run: block was run against a throwaway commit containing a synthetic match, correctly failing and naming the commit, and against the real change alone, passing cleanly. python -c "import yaml; yaml.safe_load(...)" confirms the workflow still parses.

🤖 Generated with Claude Code

Copies the no-private-data job from open-coder-ai/agentseam's ci.yml.
It scans only the commits a pull request introduces (BASE_SHA..HEAD),
never full history, so it does not fail on this repo's 83 pre-existing
violations already on main.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants