Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion .github/workflows/public-repo-guard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,15 @@ jobs:
name: Secrets + content policy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
# Checkout defaults to persisting the job token for later steps: since v6 it
# lives in a file under $RUNNER_TEMP referenced from .git/config, no longer in
# .git/config itself. It is still a live credential in the job, and this job
# downloads a third-party binary (gitleaks, below) and runs it over the whole
# tree. Nothing here pushes -- the scan is `--no-git` over the working tree --
# so no step needs authenticated Git; drop it. (zizmor: artipacked)
persist-credentials: false

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

馃攳 persist-credentials: false is safe for this job's steps

Verified that no step in this job performs an authenticated git operation: gitleaks runs with --no-git --source . over the working tree (line 65), and content-policy.sh is invoked on the checkout directory only. Disabling credential persistence therefore does not break the scan. Worth confirming scripts/public-repo-guard/content-policy.sh never shells out to git fetch/git log against the remote, which would now fail for private-repo contexts.

Open in Devin Review

Was this helpful? React with 馃憤 or 馃憥 to provide feedback.


# gitleaks' GitHub Action requires a paid license for organizations; the CLI
# itself is MIT-licensed and free. Pin the version AND verify the release
Expand Down
Loading