Skip to content

exec: pinact -- run --update - #50

Merged
colemickens merged 2 commits into
mainfrom
colemickens/pinact
Jul 30, 2026
Merged

exec: pinact -- run --update#50
colemickens merged 2 commits into
mainfrom
colemickens/pinact

Conversation

@colemickens

@colemickens colemickens commented Jul 30, 2026

Copy link
Copy Markdown
Member
  1. Update actions.
  2. Pin them.

Summary by CodeRabbit

  • Chores
    • Pinned continuous integration workflow actions to specific commit SHAs and updated determinate Nix action references for more consistent and secure execution.
    • No changes were made to build logic, job conditions, or application behavior.

@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 13 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 158903f2-c5e2-4eb2-81c7-ee018b048ff7

📥 Commits

Reviewing files that changed from the base of the PR and between 2c8631e and fce3d13.

📒 Files selected for processing (2)
  • .github/workflows/validate.yml
  • .github/workflows/workflow.yml
📝 Walkthrough

Walkthrough

GitHub Actions references in the validation and CI workflows now use pinned commit SHAs or updated main references. Job structure, conditions, inputs, outputs, and commands remain unchanged.

Changes

GitHub Actions reference updates

Layer / File(s) Summary
Update workflow action references
.github/workflows/validate.yml, .github/workflows/workflow.yml
Validation, inventory, and build steps pin checkout and SSH agent actions, while Determinate Nix action references change to pinned revisions or main as specified. Existing workflow logic and configuration are preserved.

Estimated code review effort: 1 (Trivial) | ~3 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately reflects the main change: pinning GitHub Actions with pinact.
Description check ✅ Passed The description is brief but accurately states the core change: updating and pinning actions.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch colemickens/pinact

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with 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.

Inline comments:
In @.github/workflows/workflow.yml:
- Line 104: Pin every DeterminateSystems/flakehub-cache-action reference in
workflow.yml at lines 104-104 and 136-136, plus the listed third occurrence at
line 173, by replacing `@main` with the same full, verified commit SHA.
- Around line 100-105: Update both actions/checkout steps in
.github/workflows/workflow.yml at lines 100-105 and 130-137 to set
persist-credentials to false. Apply the same checkout configuration in both jobs
so subsequent Nix and flake steps cannot reuse the checkout token.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4e20e6a1-0a72-4dcf-b7d9-0f6f7d5754b7

📥 Commits

Reviewing files that changed from the base of the PR and between 57a29b4 and 467df40.

📒 Files selected for processing (2)
  • .github/workflows/validate.yml
  • .github/workflows/workflow.yml

Comment on lines +100 to +105
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
# disabled pending strategy discussion on exposing tunables
# - uses: Determinatesystems/flake-checker-action@main
- uses: DeterminateSystems/determinate-nix-action@v3
- uses: DeterminateSystems/determinate-nix-action@61cbfe2efc2d4e7a8a6d56967c3c1058e846c858 # v3.21.9
- uses: DeterminateSystems/flakehub-cache-action@main
- uses: webfactory/ssh-agent@v0.9.0
- uses: webfactory/ssh-agent@e83874834305fe9a4a2997156cb26c5de65a8555 # v0.10.0

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Locate the workflow and print the relevant sections with line numbers.
nl -ba .github/workflows/workflow.yml | sed -n '1,220p'

Repository: DeterminateSystems/ci

Length of output: 199


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Show where checkout is used and any credential-related flags in the workflow.
rg -n "actions/checkout|persist-credentials|ssh-agent|flakehub-cache-action|determinate-nix-action|nix|flake" .github/workflows/workflow.yml

Repository: DeterminateSystems/ci

Length of output: 3767


🏁 Script executed:

#!/bin/bash
set -euo pipefail

awk 'NR>=90 && NR<=150 { printf "%4d: %s\n", NR, $0 }' .github/workflows/workflow.yml

Repository: DeterminateSystems/ci

Length of output: 2850


🌐 Web query:

GitHub Actions checkout persist-credentials default token persisted credentials repository-controlled code access

💡 Result:

The persist-credentials input in the GitHub Actions actions/checkout action controls whether the credentials used to clone the repository (typically the GITHUB_TOKEN or a configured SSH key) are configured in the local Git configuration for the duration of the job [1][2][3]. When persist-credentials is set to true (which is the default in earlier versions of the action [1][4][5]), the credentials are made available to subsequent steps in the job, allowing them to perform authenticated Git operations (such as git push or git fetch) without manually managing authentication [1][3]. Security considerations and recent changes include: - Security Concern: Historically, the default behavior of persist-credentials: true has been a point of security debate [6][7]. Because the credentials are stored in the local Git environment, any subsequent step in the same job can potentially access and use the token, which could be exploited if a malicious or compromised action is executed within the workflow [6][7]. - Credential Isolation: In more recent versions (e.g., v6.0.0 and later), the action was updated to store these credentials in a separate, more restricted location under $RUNNER_TEMP instead of the standard .git/config file [1][2][3]. This change helps mitigate the risk of the credentials being leaked accidentally (for example, through artifact publishing) [2][6]. - Default Value Status: While there have been ongoing efforts and pull requests to change the default value to false to improve security posture [8][6], users should consult the latest documentation or action.yml for their specific version of actions/checkout to confirm the current default [1][4]. It is considered a security best practice to set persist-credentials: false unless the job explicitly requires authenticated Git access for subsequent steps [1][3][7].

Citations:


Disable persisted checkout credentials in both jobs. actions/checkout still leaves the job token available to later steps by default; add persist-credentials: false to both checkout steps so the Nix/flake commands can’t reuse it.

🧰 Tools
🪛 zizmor (1.28.0)

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

(artipacked)

📍 Affects 1 file
  • .github/workflows/workflow.yml#L100-L105 (this comment)
  • .github/workflows/workflow.yml#L130-L137
🤖 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/workflow.yml around lines 100 - 105, Update both
actions/checkout steps in .github/workflows/workflow.yml at lines 100-105 and
130-137 to set persist-credentials to false. Apply the same checkout
configuration in both jobs so subsequent Nix and flake steps cannot reuse the
checkout token.

Source: Linters/SAST tools

# - uses: Determinatesystems/flake-checker-action@main
- uses: DeterminateSystems/determinate-nix-action@v3
- uses: DeterminateSystems/determinate-nix-action@61cbfe2efc2d4e7a8a6d56967c3c1058e846c858 # v3.21.9
- uses: DeterminateSystems/flakehub-cache-action@main

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

set -euo pipefail

# Show the relevant workflow sections with line numbers
sed -n '90,150p' .github/workflows/workflow.yml | cat -n

# Look for all uses of the cache action in the workflow
rg -n "DetermininateSystems/flakehub-cache-action|flakehub-cache-action@" .github/workflows/workflow.yml || true

Repository: DeterminateSystems/ci

Length of output: 3103


🏁 Script executed:

set -euo pipefail

sed -n '98,142p' .github/workflows/workflow.yml | nl -ba -v 98

rg -n "DeterminateSystems/flakehub-cache-action@" .github/workflows/workflow.yml || true

Repository: DeterminateSystems/ci

Length of output: 199


🏁 Script executed:

set -euo pipefail

python3 - <<'PY'
from pathlib import Path
p = Path('.github/workflows/workflow.yml')
text = p.read_text()
for i, line in enumerate(text.splitlines(), 1):
    if 'DeterminateSystems/flakehub-cache-action@' in line:
        print(f"{i}: {line}")
PY

Repository: DeterminateSystems/ci

Length of output: 354


Pin the remaining DeterminateSystems/flakehub-cache-action uses.

  • .github/workflows/workflow.yml#L104
  • .github/workflows/workflow.yml#L136
  • .github/workflows/workflow.yml#L173

Replace each @main reference with a full commit SHA.

📍 Affects 1 file
  • .github/workflows/workflow.yml#L104-L104 (this comment)
  • .github/workflows/workflow.yml#L136-L136
🤖 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/workflow.yml at line 104, Pin every
DeterminateSystems/flakehub-cache-action reference in workflow.yml at lines
104-104 and 136-136, plus the listed third occurrence at line 173, by replacing
`@main` with the same full, verified commit SHA.

cole-h
cole-h previously approved these changes Jul 30, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with 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.

Inline comments:
In @.github/workflows/workflow.yml:
- Line 103: Update every DeterminateSystems/determinate-nix-action reference in
the workflow, including the uses at the locations corresponding to lines 103,
131, and 171, replacing the mutable `@main` tag with the appropriate full commit
SHA. Keep each existing version comment aligned with its pinned SHA.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 3a9f592c-3549-4645-a917-60517718cac3

📥 Commits

Reviewing files that changed from the base of the PR and between 467df40 and 2c8631e.

📒 Files selected for processing (2)
  • .github/workflows/validate.yml
  • .github/workflows/workflow.yml

# disabled pending strategy discussion on exposing tunables
# - uses: Determinatesystems/flake-checker-action@main
- uses: DeterminateSystems/determinate-nix-action@v3
- uses: DeterminateSystems/determinate-nix-action@main

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail
if rg -n 'DeterminateSystems/determinate-nix-action@(main|master|v[0-9])' \
  .github/workflows/workflow.yml; then
  echo "Mutable determinate-nix-action reference remains" >&2
  exit 1
fi

Repository: DeterminateSystems/ci

Length of output: 403


Pin all DeterminateSystems/determinate-nix-action uses in .github/workflows/workflow.yml — the @main references at lines 103, 131, and 171 are still mutable; replace them with full commit SHAs and keep the version comments aligned.

🤖 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/workflow.yml at line 103, Update every
DeterminateSystems/determinate-nix-action reference in the workflow, including
the uses at the locations corresponding to lines 103, 131, and 171, replacing
the mutable `@main` tag with the appropriate full commit SHA. Keep each existing
version comment aligned with its pinned SHA.

Comment thread .github/workflows/validate.yml Outdated
@colemickens
colemickens merged commit 37577ab into main Jul 30, 2026
6 checks passed
@colemickens
colemickens deleted the colemickens/pinact branch July 30, 2026 22:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants