Skip to content

Conversation

@fschuch
Copy link
Owner

@fschuch fschuch commented Apr 22, 2025

Summary by CodeRabbit

  • Chores
    • Updated continuous integration and documentation workflows to use fixed versions of GitHub Actions for improved stability and reproducibility. No changes to application logic or user-facing features.

@coderabbitai
Copy link

coderabbitai bot commented Apr 22, 2025

Walkthrough

This update modifies several GitHub Actions workflow files to replace floating or generic version tags for actions with specific commit SHAs. Actions such as actions/checkout, actions/setup-python, and others are now referenced by their exact commit hashes, ensuring deterministic and reproducible workflow runs. No changes were made to the logic, steps, or control flow of any workflows; only the action references were updated. There are no changes to exported or public code entities, as all modifications are confined to workflow configuration files.

Changes

File(s) Change Summary
.github/workflows/check-links.yaml Updated action references from version tags to specific commit SHAs for actions/checkout and gaurav-nelson/github-action-markdown-link-check.
.github/workflows/ci.yaml Updated all action references from version tags to specific commit SHAs for reproducibility.
.github/workflows/docs.yaml Updated all action references from version tags to specific commit SHAs, including deploy job actions.
.github/workflows/update-pre-commits.yaml Updated all action references from version tags or branches to specific commit SHAs for reproducibility.

Poem

In the garden of code, commits now bloom,
Each action pinned, dispelling the gloom.
No more floating tags adrift in the breeze,
Just hashes and versions, for workflows at ease.
Hop, hop, says the rabbit, with a satisfied cheer—
Our builds are now stable, precise, and clear!
🐇✨


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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
.github/workflows/check-links.yaml (1)

23-23: Pin Markdown link checker action to a commit SHA
Locking gaurav-nelson/github-action-markdown-link-check@3c3b66f1f7d0900e37b71eca45b63ea9eedfce31 prevents unexpected upstream changes.

The inline comment reads # 1.0.17; consider prefixing with v (# v1.0.17) to match the style used for other actions.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bc51972 and 17dcc7b.

📒 Files selected for processing (4)
  • .github/workflows/check-links.yaml (1 hunks)
  • .github/workflows/ci.yaml (5 hunks)
  • .github/workflows/docs.yaml (3 hunks)
  • .github/workflows/update-pre-commits.yaml (1 hunks)
🔇 Additional comments (23)
.github/workflows/check-links.yaml (1)

20-20: Pin actions/checkout to a specific commit for reproducibility
Using actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 (v4.2.2) ensures deterministic workflow runs.

.github/workflows/docs.yaml (5)

25-25: Pin actions/checkout to a specific commit for stability
Swapping v4 for @11bd71901bbe5b1630ceea73d27597364c9af683 (v4.2.2) locks the code version and improves reproducibility.


30-30: Pin actions/setup-python to an exact SHA
Using @8d9ed9ac5c53483de85588cdf95a591a75ab9f55 (v5.5.0) makes the Python setup step deterministic.


40-40: Pin actions/upload-artifact to a fixed commit
Locking to @ea165f8d65b6e75b540449e92b4886f43607fa02 (v4.6.2) ensures artifact uploads aren’t affected by upstream changes.


52-52: Pin actions/download-artifact to a specific commit
Switching to @95815c38cf2ff2164869cbab79da8d1f422bc89e (v4.2.1) avoids version drift when fetching artifacts.


59-59: Pin peaceiris/actions-gh-pages action to a commit SHA
Using @4f9cc6602d3f66b9c108549d475ec49e8ef4d45e (v4.0.0) guarantees consistent deployment behavior.

.github/workflows/ci.yaml (13)

31-31: Pin actions/checkout in QA job to a commit SHA
Locking to @11bd71901bbe5b1630ceea73d27597364c9af683 (v4.2.2) makes checkout deterministic.


34-34: Pin actions/setup-python in QA job to a commit SHA
Using @8d9ed9ac5c53483de85588cdf95a591a75ab9f55 (v5.5.0) ensures stable Python versions.


37-37: Pin pre-commit/action to a specific commit
Switching to @2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd (v3.0.1) locks linting behavior.


48-48: Pin actions/checkout in Test job to a commit SHA
Locking to @11bd71901bbe5b1630ceea73d27597364c9af683 (v4.2.2) for consistent checkouts across matrices.


53-53: Pin actions/setup-python in Test job to a commit SHA
Using @8d9ed9ac5c53483de85588cdf95a591a75ab9f55 (v5.5.0) provides a reproducible Python environment.


65-65: Pin actions/upload-artifact for coverage data to a specific commit
Switching to @ea165f8d65b6e75b540449e92b4886f43607fa02 (v4.6.2) stabilizes artifact uploads.


75-75: Pin actions/checkout in Build job to a commit SHA
Locking to @11bd71901bbe5b1630ceea73d27597364c9af683 (v4.2.2) ensures consistency.


78-78: Pin actions/setup-python in Build job to a commit SHA
Using @8d9ed9ac5c53483de85588cdf95a591a75ab9f55 (v5.5.0) for reproducible builds.


85-85: Pin actions/upload-artifact (sdist) to a specific commit
Switching to @ea165f8d65b6e75b540449e92b4886f43607fa02 (v4.6.2) locks artifact version.


89-89: Pin actions/upload-artifact (bdist) to a specific commit
Using the same SHA (@ea165f8d65b6e75b540449e92b4886f43607fa02) ensures parity between artifacts.


104-104: Pin actions/download-artifact (sdist) to a commit SHA
Locking to @95815c38cf2ff2164869cbab79da8d1f422bc89e (v4.2.1) for stable downloads.


108-108: Pin actions/download-artifact (bdist) to a commit SHA
Using @95815c38cf2ff2164869cbab79da8d1f422bc89e for consistency with sdist downloads.


114-114: Pin pypa/gh-action-pypi-publish to a specific commit
Switching to @76f52bc884231f62b9a034ebfe128415bbaabdfc (v1.12.4) ensures deterministic publishing.

.github/workflows/update-pre-commits.yaml (4)

19-19: Pin actions/checkout to a specific commit for reproducibility
Locking to @11bd71901bbe5b1630ceea73d27597364c9af683 (v4.2.2) avoids unexpected changes.


22-22: Pin actions/setup-python to a fixed SHA
Using @8d9ed9ac5c53483de85588cdf95a591a75ab9f55 (v5.5.0) for a stable Python environment.


25-25: Pin browniebroke/pre-commit-autoupdate-action to a commit
Switching to @deb83bfe0036e1116ee4e241d6220274d69b1f9e (v1.0.0) locks hook updates.


26-26: Pin peter-evans/create-pull-request to a commit SHA
Using @271a8d0340265f705b14b6d32b9829c1cb33d45e (v7.0.8) ensures deterministic PR creation.

@fschuch
Copy link
Owner Author

fschuch commented Apr 22, 2025

Pin all GitHub Actions used in the project using their git hash. This is a step up on security requested by zizmor 1.6.0: https://woodruffw.github.io/zizmor/release-notes/#v160

pinact is a handy tool used to hash them on the first iteration: https://github.com/suzuki-shunsuke/pinact

They all are expected to work with dependabot from now on: dependabot/dependabot-core#5951

@fschuch fschuch merged commit 68bb8aa into main Apr 22, 2025
23 checks passed
@fschuch fschuch deleted the chore/pin-all-github-actions-by-hash branch April 22, 2025 20:34
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