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
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify actions/checkout v4→v6 breaking changes and compatibility

echo "=== Checking actions/checkout releases v4 to v6 ==="
gh api repos/actions/checkout/releases --jq '.[] | select(.tag_name | test("^v[456]")) | {tag_name, name, published_at, body}' | head -100

Repository: finallyjay/daily-dev-roulette

Length of output: 13349


🌐 Web query:

actions/checkout breaking changes from v4 to v6

💡 Result:

The transition from actions/checkout v4 to v6 does not introduce breaking changes to existing workflow syntax [1][2]. Users can update their workflows to use v6 without modifying their configuration [1][2]. The primary change in v6 is an improvement to credential security [1][2]. When persist-credentials is set to true (which is the default), the action now stores credentials in a separate file under $RUNNER_TEMP rather than directly in the local.git/config [1][2]. This security enhancement introduces one potential environmental requirement: - Running authenticated git commands from a Docker container action now requires Actions Runner v2.329.0 or later to access these persisted credentials [1][2]. Additionally, v6 is updated to the Node.js 24 runtime, whereas v4 utilized an earlier Node.js version [1][2]. The action continues to support standard git operations (such as git fetch and git push) automatically without manual workflow intervention [1][2].

Citations:


🏁 Script executed:

#!/bin/bash
set -euo pipefail
FILE=".github/workflows/ci.yml"
echo "== file = $FILE =="
nl -ba "$FILE" | sed -n '1,140p'
echo
echo "== extract actions/checkout, setup-node, upload-artifact, container =="
rg -n "uses: actions/(checkout|setup-node|upload-artifact)@|container:" "$FILE" || true

Repository: finallyjay/daily-dev-roulette

Length of output: 172


🏁 Script executed:

#!/bin/bash
set -euo pipefail
FILE=".github/workflows/ci.yml"

echo "== preview (first 200 lines) =="
cat -n "$FILE" | sed -n '1,200p'

echo
echo "== key matches (line numbers) =="
rg -n "uses: actions/(checkout|setup-node|upload-artifact)@" "$FILE" || true
rg -n "persist-credentials" "$FILE" || true
rg -n "container:" "$FILE" || true

Repository: finallyjay/daily-dev-roulette

Length of output: 1798


actions/checkout@v6 upgrade: no workflow-syntax breaking change; harden persist-credentials

  • actions/checkout v4→v6 doesn’t require workflow configuration changes; the main change is credential handling (persisted credentials written under $RUNNER_TEMP) plus the Node 24 runtime update. Runner v2.329.0+ is only relevant for Docker-container scenarios, and this workflow runs directly on ubuntu-latest.
  • Security: actions/checkout@v6 (line 20) is used without persist-credentials: false; set it to false unless later steps need authenticated Git.
  • Also consider pinning actions/checkout@v6, actions/setup-node@v6, and actions/upload-artifact@v7 to specific versions/commits for reproducibility.
🧰 Tools
🪛 zizmor (1.25.2)

[warning] 20-20: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)


[error] 20-20: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)

(unpinned-uses)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/ci.yml at line 20, Update the checkout step using
actions/checkout@v6 to set persist-credentials: false (i.e., add the
persist-credentials: false option to the checkout action) unless later steps
explicitly require authenticated Git access; also consider pinning
actions/checkout@v6, actions/setup-node@v6, and actions/upload-artifact@v7 to
specific commit SHAs or fixed minor versions for reproducibility and to avoid
drifting behavior.


- uses: actions/setup-node@v4
- uses: actions/setup-node@v6
with:
node-version: 24
cache: npm
Expand All @@ -44,7 +44,7 @@ jobs:

- name: Upload Playwright report
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: playwright-report
path: playwright-report/
Expand Down
Loading