Repository navigation
Conversation
Extend the commit hygiene scan with a private-name denylist read from the LEAK_DENYLIST repository secret (gitleaks TOML). It scans the added lines of every new commit plus commit messages, author and committer identities, changed paths and the PR head ref. A missing, empty or invalid secret fails closed, and only rule IDs and match locations are printed.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add secret scanning and commit email checks for PRs targeting
hd/nightlyand pushes tohd/nightly. The workflow uses read-only contents permission and anonymously fetches full history from the public fork. No checkout credentials are supplied or persisted. Direct Git checkout avoids recursive auth cleanup failing on vendored gitlinks without.gitmodulesentries. It downloads gitleaks directly, verifies the pinned SHA-256 before extraction, and runsgitleaks git --redact --log-opts="-m <base..head>"without diagnostics. Merge diffs include additions made during conflict resolution. The scanner still runs when the email check fails.PRs check both raw author and committer emails for every commit outside the base SHA. Pushes check first-parent commits; merge commits with non-allowlisted authors are exempt to allow upstream integration. This is an explicit metadata-policy exception, not verification of upstream provenance. Gitleaks scans the entire range, including side branches. Missing endpoints fail closed. The allowlist accepts GitHub noreply addresses and
dimitrikennedy@gmail.com, confirmed in existing maintainer history. Rejected email values are not logged.Pins and vet notes
83d9cd684c87d95d656c1458ef04895a7f1cbd8e(confirmed withgh api), MIT. Officialgitleaks_8.30.1_linux_x64.tar.gzSHA-256:551f6fc83ea457d62a0d98237cbad105af8d557003051f41f3e7ca7b3f2470eb. Downloaded archive matched. Supplied source-review vetting found no network calls during scans; diagnostics are never enabled. Nogitleaks/gitleaks-actionor organization license requirement.actions/checkout; token permissions remain limited tocontents: readand no token is passed to Git.2693315b9093aeacb4ebd91a993fea54fc215057bf0da2659056b4bc033873db, verified against the release checksum file. Downloaded only into the ignored worktree directory; no system installation.Validation
cda2c3203ad5b1a5c06ddd5dba707a9932fd1a66: anonymous checkout, email validation, verified Linux gitleaks download, both regression suites, and the actual range scan all succeeded.bash .github/scripts/check-commit-emails.test.sh: passed. Covers base exclusions, multiple commits, valid maintainer/noreply identities, invalid author and committer identities, domain suffix spoofing, upstream merge exceptions, PR versus push traversal, unavailable endpoints, and non-disclosure of rejected addresses.bash .github/scripts/commit-hygiene.test.sh <verified-gitleaks-path>: passed with gitleaks v8.30.1. An inert custom-rule marker introduced only in a merge is missed by the old invocation and detected by the actual scan script using-m. A malformed-gitlink fixture reproduces the old cleanup failure, verifies the anonymous full-history checkout, checks that no auth configuration is stored, and successfully runs both the email check and scanner. Both fixture suites run in CI.origin/hd/nightly..HEAD: passed, two commits scanned with no leaks.git diff --check: passed.vp run check:changed origin/hd/nightly: attempted but unavailable (vp: command not found; dependencies are absent). No repository-wide checks were run. Local gitleaks execution used the matching v8.30.1 release archive verified against the official checksums; Linux execution is covered by CI.No machine configuration was changed. This PR remains a draft and targets
hd/nightly.T3 threads: two review threads (links kept private).
Model: hd/gpt-6-astra. Harness: Codex in T3 Code.