Repository navigation
chore(secrets): ignore three gitleaks test-fixture false positives - #231
Merged
Merged
Conversation
The gating scan flags placeholder Stripe-prefixed strings in SafeAPIKey/Proofs.idr (lines 41, 46) and the public jwt.io example token in tests/unit/SafeJWTUnit.idr (line 37). None is a credential. Pin each by file:rule:line fingerprint so any new finding, or a moved fixture, still fails the scan. Refs #230 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HZc76cZKg5tUgduxXGLQkD
Contributor
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
📒 Files selected for processing (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Contributor
|
Add Carrot credits or activate Agent usage billing to use Autopilot |
6 of 13 tasks
hyperpolymath
added a commit
that referenced
this pull request
Oct 7, 2026
## Summary Adds `AFFIRMATION.adoc`, the third file of the README / EXPLAINME / AFFIRMATION trio. It is a dated snapshot, open to refutation, of what proven can honestly claim at `main` **53600326**. It also lists what proven does **not** claim. - **Affirmed:** - `proven.ipkg` builds 305/305 modules in CI; - `proof-check (0.8.0)` passes; - there is no `believe_me` or `idris_crash` in code; - the false postulates are gone (#228, #229); - gitleaks is clean (#231). - **Not claimed:** - the README's "Mathematically proven" (PROOF-NEEDS samples about 3%); - the bodyless declarations that act as postulates; - 22 escape hatches; - the stubbed hash FFI; - `tests.ipkg` (it does not build); - about 79 unbuilt modules; - the weak or empty theorems; - the red checks on #230; - a pinned CI image. Where the README says more than this file, this file wins. Refs #230 ## Type of change - [ ] 🐛 Bug fix: no - [ ] ✨ New feature: no - [ ] 💥 Breaking change: no - [ ] 🕳️ Soundness fix: no - [x] 📖 Documentation - [ ] 🧹 Refactor / tech debt: no - [ ] ⚡ Performance: no - [ ] 🔧 Build / CI / tooling: no ## 📌 New pins Head SHA: **c25c3b5e302b9d66e1ae945ad47c72053c7d7234** None. This PR changes no action `uses:`, `actions.lock`, lockfile or container digest. ## How has this been verified? Every claim cites its evidence in the file: - **The build:** CI job `verify-idris-build` (id 112464109461) at 5360032 ends with `305/305: Building Proven`. - **The test build:** `idris2-ci.yml` at a32c3b6 gave proof-check success and build failure. The failure comes from the `tests.ipkg` renames in bdb1863. - **The escape-hatch counts:** `grep -rnw --include=*.idr <word> src`, with comment and doc-comment lines removed: - `believe_me` 0 (the 48 raw matches are all comments); - `idris_crash` 0; - `assert_total` 20; - `assert_smaller` 2. - **The hash stubs:** `Hash.idr` has 9 `%foreign` lines, all commented out. - **The recon figures** (383 bodyless, 79 unbuilt, 52 warnings, 71 `()` theorems) are labelled as measured at 8542e84 and not re-counted here. - **The 3%** is quoted from `PROOF-NEEDS.adoc` (1 of 32 sampled modules). - **Placeholder check:** the file contains no `{{`, `TODO: update`, `<PROJECT` or `example.com`. It has 103 substantive lines. ## Checklist - [x] My commits are **signed** (`git log --format=%G?` → `G`). - [x] I ran the project's own checks: no Idris source changed, so there was nothing to rebuild. The evidence is CI's at the anchor. - [x] New files carry the correct `SPDX-License-Identifier`: `CC-BY-SA-4.0`, as for the repo's other `.adoc` docs, with the attribution line from `.claude/CLAUDE.md`. - [x] Docs: this *is* the docs change. Correcting the README overclaim is item C4 of the follow-up and is not done here. - [x] No soundness hole: no `.idr` file is touched. ## Notes for reviewers - The anchor is the **parent** of this commit. A squash merge changes the commit SHA but keeps 5360032 as the parent, so the anchor stays valid only if nothing else lands on `main` first. If something does, rebase this branch and re-check the anchor row. **Pre-existing red checks** (red on `main` too; this PR does not touch them): - `governance / Workflow security linter`: deferred to #230 (dead OCaml pin) - `governance / Trusted-base reduction policy`: deferred to #230 (undocumented escape hatches) - `governance / Validate Hypatia Baseline`: deferred to #230 (`--argjson` crash in standards) - `Enforce Trustfile Policies`: deferred to #230 (Palimpsest licence headers) - `Aspect — Safety Invariants`: deferred to #230 - **Emerged, not yet on #230:** `GitHub Pages / build` is blocked by the action allowlist on `actions/upload-artifact@v4`. The `mirror-*` ×3 jobs have an empty host variable. Both are recorded in `dev-notes/inbox/findings.md`. - There are no required checks on `main`, so automerge is deliberately **not** armed. This waits for a human squash merge. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01HZc76cZKg5tUgduxXGLQkD Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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
Adds a
.gitleaksignorefor the three test fixtures that turnscan / gitleaksred. None of them is a credential:src/Proven/SafeAPIKey/Proofs.idr:41and:46are placeholder Stripe-prefixed strings with the bodyabc123def456. They exist only to prove thatdetectFormatreturnsStripeKey.tests/unit/SafeJWTUnit.idr:37is the public jwt.io example token (sub1234567890,"John Doe"). It has been onmainsince 0863498 (2026-01-12).Each entry is pinned by its exact
file:rule:linefingerprint, so any new finding still fails, and so does a fixture that moves to another line. This is item 1 of the triage on #230.Refs #230
Type of change
📌 New pins
Head SHA: 60ff489
None. This PR changes no action
uses:,actions.lock, lockfile or container digest.How has this been verified?
I ran gitleaks 8.18.4, the version the reusable pins, exactly as
secret-scanner-reusable.yml@571cc734runs it:detect --source . --no-git --redact --config <estate-baseline.toml at 571cc734> --exit-code 1.main(a32c3b6), no ignore filesk_live_key in a new filezz-planted.idr:stripe-access-token:1Proofs.idrshifted down one lineThe first draft of the file quoted the placeholder strings in a comment, and gitleaks flagged the ignore file itself (
.gitleaksignore:stripe-access-token:8). The comment now describes the strings without quoting them.Checklist
git log --format=%G?→G).SPDX-License-Identifier:.gitleaksignoreis config, soMPL-2.0. No existing file was relicensed..idrfile is touched.Notes for reviewers
Pre-existing red checks, deferred to #230 (they are red on
mainand this PR does not touch them):Enforce Trustfile Policies: deferred to CI: seven checks red on main independent of PR content (tests.ipkg, assert_total, SPDX, 4 governance/scan) #230 (licence headers, item 5)governance / Trusted-base reduction policy: deferred to CI: seven checks red on main independent of PR content (tests.ipkg, assert_total, SPDX, 4 governance/scan) #230 (escape hatches, item 4)governance / Workflow security linter: deferred to CI: seven checks red on main independent of PR content (tests.ipkg, assert_total, SPDX, 4 governance/scan) #230 (dead OCaml pin, item 2)Aspect — Safety Invariants,build (0.8.0),governance / Validate Hypatia Baseline: deferred to CI: seven checks red on main independent of PR content (tests.ipkg, assert_total, SPDX, 4 governance/scan) #230 (items 3, 6, 7), if they finish redGitGuardian also flagged the jwt.io token, at commit 4f8d7fa. That commit was pushed by
coderabbitai[bot]to the leftover branchfix/remove-false-runtime-assumptions. Nothing needs rotating. The GitGuardian incident has to be dismissed as a test credential in the GitGuardian dashboard, because this file does not configure GitGuardian.That leftover branch should be deleted; its PR, fix(soundness): remove false postulates in SafeFiniteField, SafePipe, SafeTerminal #228, already merged.
There are no required checks on
main, so automerge is deliberately not armed, because it would merge instantly. This waits for a human merge.🤖 Generated with Claude Code
https://claude.ai/code/session_01HZc76cZKg5tUgduxXGLQkD