Skip to content

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

Merged
jothimani-rajendran merged 1 commit into
mainfrom
ci/no-private-data
Sep 9, 2026
Merged

ci: add no-private-data check to scan PR commit messages#58
jothimani-rajendran merged 1 commit into
mainfrom
ci/no-private-data

Conversation

@jothimani-rajendran

@jothimani-rajendran jothimani-rajendran 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>
@jothimani-rajendran
jothimani-rajendran marked this pull request as ready for review September 9, 2026 10:41
@jothimani-rajendran
jothimani-rajendran merged commit 0109175 into main Sep 9, 2026
14 of 15 checks passed
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