fix: add org baseline secret patterns to .gitignore - #88
Conversation
There was a problem hiding this comment.
Copilot wasn't able to review any files in this pull request.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (9)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
|
Self-review: the change is a verbatim copy of the org baseline |
Pull request was closed
donpetry-bot
left a comment
There was a problem hiding this comment.
Automated review — APPROVED ✓
Risk: LOW
Reviewed commit: 3176f6df2dbb3085f8cf87b79d132755ed266905
Review mode: triage-approved (single reviewer)
Summary
Confirmation review of a triage-cleared, low-risk change. The PR replaces the minimal 6-line .gitignore with the petry-projects org baseline (~390 lines of secret-only glob patterns), preserving the existing .claude/scheduled_tasks.lock entry inside section 13. No code, no logic, no workflows — only ignore patterns. This is a defensive change: it strengthens the first layer of push-protection by blocking commits of .env, *.pem, *.key, cloud-credential dotfiles, kubeconfigs, Terraform state, SOPS/age keys, DB dumps, package-registry credential dotfiles, IDE credential caches, and modern LLM/AI tooling auth files.
Linked issue analysis
Closes #71 — Compliance: gitignore_secrets_block (severity warning). The audit specifically called out missing .env, *.pem, *.key patterns and pointed at the org baseline at petry-projects/.github:/.gitignore. The diff matches that baseline and includes all three required patterns (sections 1 and 4). Issue is substantively addressed.
Findings
- No blockers. The change is a verbatim copy of the documented org baseline (per
standards/push-protection.md#required-gitignore-entries) with the repo-specific.claude/scheduled_tasks.lockline retained. - Negation ordering looks correct.
!-rules immediately follow the broad pattern they carve out of (e.g.!.env.exampleafter.env.*,!*.pub/!*.crtafter the key-material block,!*.tfvars.exampleafter*.tfvars). This matches the header comment's stated convention. - False-positive surface is acknowledged. Sections 4 and 8 explicitly call out high-FP patterns (
*.pem,*.key,.npmrc,gradle.properties) and document the per-repo!-by-file override pattern. Reasonable guidance for downstream repos. - No code/secret-handling logic introduced. A
.gitignorecannot run; risk is bounded to which files git tracks. Nothing in the diff stops git from tracking files that are already tracked, so the change has no effect on existing committed files (only on futuregit adds).
CI status
All required checks are green on 3176f6df:
- CodeQL —
Analyze (actions): SUCCESS - CodeQL: SUCCESS
- CodeRabbit: SUCCESS
- SonarQube Cloud: Quality Gate passed (0 new issues, 0 security hotspots)
Merge state is BLOCKED only because REVIEW_REQUIRED — this approval should unblock it.
Reviewed automatically by the PR-review agent (single-reviewer mode: opus 4.7). Reply if you need a human review.
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
Superseded by automated re-review at
|
Superseded by automated re-review at 6fbcbb4.
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
be57f67 to
aadbe40
Compare
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
@dev-lead - please fix this PR |
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
Auto-rebase failed — merge conflict — this branch has conflicts with Claude will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
|
Closing in favour of PR #304, which cherry-picks only the |
Pull request was closed
Replaces the 11-line stub with a 392-line org-wide secrets-only .gitignore baseline (first layer of defence per push-protection.md). Covers: dotenv family, AWS/GCP/Azure/cloud credentials, Kubernetes kubeconfigs, Docker auth, Helm secrets, SSH/TLS keys, API key files, database connection strings, OAuth tokens, package-registry auth, Terraform/Vault state, IaC credentials, browser profiles, IDE config with embedded tokens, AI tooling keys, and Claude Code worktrees. Intentionally scoped to secrets only — build artefacts and OS cruft stay in per-repo .gitignores. Negations (`!*.example`, `!*.template`) preserve committed placeholder files. Salvaged from PR #88 (cherry-pick of .gitignore only; workflow/script changes in that PR were superseded by dev-lead refactors on main). Co-authored-by: Gemini CLI <gemini-cli@example.com> Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Replaces the 11-line stub with a 392-line org-wide secrets-only .gitignore baseline (first layer of defence per push-protection.md). Covers: dotenv family, AWS/GCP/Azure/cloud credentials, Kubernetes kubeconfigs, Docker auth, Helm secrets, SSH/TLS keys, API key files, database connection strings, OAuth tokens, package-registry auth, Terraform/Vault state, IaC credentials, browser profiles, IDE config with embedded tokens, AI tooling keys, and Claude Code worktrees. Intentionally scoped to secrets only — build artefacts and OS cruft stay in per-repo .gitignores. Negations (`!*.example`, `!*.template`) preserve committed placeholder files. Salvaged from PR #88 (cherry-pick of .gitignore only; workflow/script changes in that PR were superseded by dev-lead refactors on main). Co-authored-by: Gemini CLI <gemini-cli@example.com> Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Replaces the 11-line stub with a 392-line org-wide secrets-only .gitignore baseline (first layer of defence per push-protection.md). Covers: dotenv family, AWS/GCP/Azure/cloud credentials, Kubernetes kubeconfigs, Docker auth, Helm secrets, SSH/TLS keys, API key files, database connection strings, OAuth tokens, package-registry auth, Terraform/Vault state, IaC credentials, browser profiles, IDE config with embedded tokens, AI tooling keys, and Claude Code worktrees. Intentionally scoped to secrets only — build artefacts and OS cruft stay in per-repo .gitignores. Negations (`!*.example`, `!*.template`) preserve committed placeholder files. Salvaged from PR #88 (cherry-pick of .gitignore only; workflow/script changes in that PR were superseded by dev-lead refactors on main). Co-authored-by: Gemini CLI <gemini-cli@example.com> Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Replaces the 11-line stub with a 392-line org-wide secrets-only .gitignore baseline (first layer of defence per push-protection.md). Covers: dotenv family, AWS/GCP/Azure/cloud credentials, Kubernetes kubeconfigs, Docker auth, Helm secrets, SSH/TLS keys, API key files, database connection strings, OAuth tokens, package-registry auth, Terraform/Vault state, IaC credentials, browser profiles, IDE config with embedded tokens, AI tooling keys, and Claude Code worktrees. Intentionally scoped to secrets only — build artefacts and OS cruft stay in per-repo .gitignores. Negations (`!*.example`, `!*.template`) preserve committed placeholder files. Salvaged from PR #88 (cherry-pick of .gitignore only; workflow/script changes in that PR were superseded by dev-lead refactors on main). Co-authored-by: Gemini CLI <gemini-cli@example.com> Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Replaces the 11-line stub with a 392-line org-wide secrets-only .gitignore baseline (first layer of defence per push-protection.md). Covers: dotenv family, AWS/GCP/Azure/cloud credentials, Kubernetes kubeconfigs, Docker auth, Helm secrets, SSH/TLS keys, API key files, database connection strings, OAuth tokens, package-registry auth, Terraform/Vault state, IaC credentials, browser profiles, IDE config with embedded tokens, AI tooling keys, and Claude Code worktrees. Intentionally scoped to secrets only — build artefacts and OS cruft stay in per-repo .gitignores. Negations (`!*.example`, `!*.template`) preserve committed placeholder files. Salvaged from PR #88 (cherry-pick of .gitignore only; workflow/script changes in that PR were superseded by dev-lead refactors on main). Co-authored-by: Gemini CLI <gemini-cli@example.com> Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Replaces the 11-line stub with a 392-line org-wide secrets-only .gitignore baseline (first layer of defence per push-protection.md). Covers: dotenv family, AWS/GCP/Azure/cloud credentials, Kubernetes kubeconfigs, Docker auth, Helm secrets, SSH/TLS keys, API key files, database connection strings, OAuth tokens, package-registry auth, Terraform/Vault state, IaC credentials, browser profiles, IDE config with embedded tokens, AI tooling keys, and Claude Code worktrees. Intentionally scoped to secrets only — build artefacts and OS cruft stay in per-repo .gitignores. Negations (`!*.example`, `!*.template`) preserve committed placeholder files. Salvaged from PR #88 (cherry-pick of .gitignore only; workflow/script changes in that PR were superseded by dev-lead refactors on main). Co-authored-by: Gemini CLI <gemini-cli@example.com> Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Summary
.gitignoreas required by standards/push-protection.md.env,*.pem,*.key— plus the full org baseline (dotenv family, cloud credentials, SSH/TLS keys, Terraform, Kubernetes secrets, package registry dotfiles, etc.).claude/scheduled_tasks.lockentry, which was merged into section 13 of the org baseline blockChanges
.gitignore: replaced minimal 6-line file with full org baseline (~390 lines), keeping.claude/scheduled_tasks.lockCloses #71
Generated with Claude Code