What changed, and why it matters
This commit only changes how GitHub Actions automation is configured. It replaces floating version tags like @v5 with exact commit hashes (plus a comment showing the version). This is a standard hardening practice to prevent a compromised third-party action from silently updating under the same tag. It does not change any of the project's actual Bitcoin/Rust code, so it cannot directly introduce or fix a vulnerability in the library users depend on.
No action required for downstream users. Reviewers should verify the pinned SHAs match the claimed tags on the respective upstream repositories, then merge as a routine hardening improvement.
Security signals we found
CI-only change with no source-code modifications
Pins third-party GitHub Actions to immutable commit hashes
Reduces risk of tag-retagging or compromised action updates
No functional code, API, or cryptographic changes
Evidence from the diff
The diff is a pure CI hardening patch: every uses: owner/action@<tag> reference in .github/workflows/*.yml and in fuzz/generate-files.sh is pinned to a specific SHA with the tag preserved as a comment. Notable examples include actions/checkout@v5 → actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0, dtolnay/rust-toolchain@stable → a pinned SHA, and cargo-bins/cargo-binstall@main → a pinned SHA. There are no changes to Rust source, Cargo metadata, build scripts, or release artifacts. The commit is defensive supply-chain hygiene, not a security bug fix or vulnerability patch.
Changed components
.github/workflows/cron-daily-fuzz.yml.github/workflows/cron-daily-kani.yml.github/workflows/cron-weekly-cargo-mutants.yml.github/workflows/cron-weekly-rustfmt.yml.github/workflows/cron-weekly-update-cargo-semver-checks.yml.github/workflows/cron-weekly-update-nightly.yml.github/workflows/cron-weekly-update-stable.yml.github/workflows/gh-release.yml.github/workflows/manage-pr.yml.github/workflows/miri.yml.github/workflows/release.yml.github/workflows/rust.yml.github/workflows/semver-checks-pr-label.yml.github/workflows/semver-checks.yml.github/workflows/shellcheck.ymlfuzz/generate-files.shInspect captured patch +89 / −88
diff --git a/.github/workflows/cron-daily-fuzz.yml b/.github/workflows/cron-daily-fuzz.yml
index 359aec43..532ae1c7 100644
--- a/.github/workflows/cron-daily-fuzz.yml
+++ b/.github/workflows/cron-daily-fuzz.yml
@@ -47,8 +47,8 @@ jobs:
steps:
- name: Install test dependencies
run: sudo apt-get update -y && sudo apt-get install -y binutils-dev libunwind8-dev libcurl4-openssl-dev libelf-dev libdw-dev cmake gcc libiberty-dev
- - uses: actions/checkout@v5
- - uses: actions/cache@v4
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
+ - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
id: cache-fuzz
with:
path: |
@@ -56,7 +56,7 @@ jobs:
fuzz/target
target
key: cache-${{ matrix.target }}-${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }}
- - uses: dtolnay/rust-toolchain@stable
+ - uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable
with:
toolchain: '1.65.0'
- name: fuzz
@@ -67,7 +67,7 @@ jobs:
echo "Using RUSTFLAGS $RUSTFLAGS"
cd fuzz && ./fuzz.sh "${{ matrix.fuzz_target }}"
- run: echo "${{ matrix.fuzz_target }}" >executed_${{ matrix.fuzz_target }}
- - uses: actions/upload-artifact@v5
+ - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
with:
name: executed_${{ matrix.fuzz_target }}
path: executed_${{ matrix.fuzz_target }}
@@ -77,8 +77,8 @@ jobs:
needs: fuzz
runs-on: ubuntu-24.04
steps:
- - uses: actions/checkout@v5
- - uses: actions/download-artifact@v6
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
+ - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
- name: Display structure of downloaded files
run: ls -R
- run: find executed_* -type f -exec cat {} + | sort > executed
diff --git a/.github/workflows/cron-daily-kani.yml b/.github/workflows/cron-daily-kani.yml
index 5d2c9c04..4e4dfde1 100644
--- a/.github/workflows/cron-daily-kani.yml
+++ b/.github/workflows/cron-daily-kani.yml
@@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: 'Checkout your code.'
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: 'Run Kani on your code.'
- uses: model-checking/kani-github-action@v1.1
+ uses: model-checking/kani-github-action@f838096619a707b0f6b2118cf435eaccfa33e51f # v1.1
diff --git a/.github/workflows/cron-weekly-cargo-mutants.yml b/.github/workflows/cron-weekly-cargo-mutants.yml
index 2a57d037..9700299b 100644
--- a/.github/workflows/cron-weekly-cargo-mutants.yml
+++ b/.github/workflows/cron-weekly-cargo-mutants.yml
@@ -7,12 +7,12 @@ jobs:
cargo-mutants:
runs-on: ubuntu-24.04
steps:
- - uses: actions/checkout@v5
- - uses: taiki-e/install-action@v2
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
+ - uses: taiki-e/install-action@81ee1d48d9194cdcab880cbdc7d36e87d39874cb # v2.62.45
with:
tool: cargo-mutants
- run: cargo mutants --in-place --no-shuffle
- - uses: actions/upload-artifact@v5
+ - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
if: always()
with:
name: mutants.out
diff --git a/.github/workflows/cron-weekly-rustfmt.yml b/.github/workflows/cron-weekly-rustfmt.yml
index 626953c8..380b2bf8 100644
--- a/.github/workflows/cron-weekly-rustfmt.yml
+++ b/.github/workflows/cron-weekly-rustfmt.yml
@@ -8,8 +8,8 @@ jobs:
name: Nightly rustfmt
runs-on: ubuntu-24.04
steps:
- - uses: actions/checkout@v5
- - uses: dtolnay/rust-toolchain@nightly
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
+ - uses: dtolnay/rust-toolchain@55d80eb3c5a4228eec5390a083c092095115c6f1 # nightly
with:
components: rustfmt
- name: Run Nightly rustfmt
@@ -18,7 +18,7 @@ jobs:
- name: Get the current date
run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
- name: Create Pull Request
- uses: peter-evans/create-pull-request@v7
+ uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
with:
author: Fmt Bot <bot@example.com>
title: Automated nightly rustfmt (${{ env.date }})
diff --git a/.github/workflows/cron-weekly-update-cargo-semver-checks.yml b/.github/workflows/cron-weekly-update-cargo-semver-checks.yml
index fc425c5b..fd9cd2ef 100644
--- a/.github/workflows/cron-weekly-update-cargo-semver-checks.yml
+++ b/.github/workflows/cron-weekly-update-cargo-semver-checks.yml
@@ -8,7 +8,7 @@ jobs:
name: Update cargo-semver-checks
runs-on: ubuntu-24.04
steps:
- - uses: actions/checkout@v5
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Update semver-checks to use latest crates.io published version
run: |
set -x
@@ -28,7 +28,7 @@ jobs:
fi
- name: Create Pull Request
if: env.changes_made == 'true'
- uses: peter-evans/create-pull-request@v7
+ uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
with:
token: ${{ secrets.APOELSTRA_CREATE_PR_TOKEN }}
author: Update cargo-semver-checks Bot <bot@example.com>
diff --git a/.github/workflows/cron-weekly-update-nightly.yml b/.github/workflows/cron-weekly-update-nightly.yml
index 5a9d3816..5c147488 100644
--- a/.github/workflows/cron-weekly-update-nightly.yml
+++ b/.github/workflows/cron-weekly-update-nightly.yml
@@ -8,8 +8,8 @@ jobs:
name: Update nightly rustc
runs-on: ubuntu-24.04
steps:
- - uses: actions/checkout@v5
- - uses: dtolnay/rust-toolchain@nightly
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
+ - uses: dtolnay/rust-toolchain@55d80eb3c5a4228eec5390a083c092095115c6f1 # nightly
- name: Update rust.yml to use latest nightly
run: |
set -x
@@ -29,7 +29,7 @@ jobs:
fi
- name: Create Pull Request
if: env.changes_made == 'true'
- uses: peter-evans/create-pull-request@v7
+ uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
with:
token: ${{ secrets.APOELSTRA_CREATE_PR_TOKEN }}
author: Update Nightly Rustc Bot <bot@example.com>
diff --git a/.github/workflows/cron-weekly-update-stable.yml b/.github/workflows/cron-weekly-update-stable.yml
index f37571b0..b93595e9 100644
--- a/.github/workflows/cron-weekly-update-stable.yml
+++ b/.github/workflows/cron-weekly-update-stable.yml
@@ -8,8 +8,8 @@ jobs:
name: Update stable rustc
runs-on: ubuntu-24.04
steps:
- - uses: actions/checkout@v5
- - uses: dtolnay/rust-toolchain@stable
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
+ - uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable
- name: Update semver-checks.yml to use latest stable
run: |
set -x
@@ -28,7 +28,7 @@ jobs:
fi
- name: Create Pull Request
if: env.changes_made == 'true'
- uses: peter-evans/create-pull-request@v7
+ uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
with:
token: ${{ secrets.APOELSTRA_CREATE_PR_TOKEN }}
author: Update Stable Rustc Bot <bot@example.com>
diff --git a/.github/workflows/gh-release.yml b/.github/workflows/gh-release.yml
index 021a372e..e3581138 100644
--- a/.github/workflows/gh-release.yml
+++ b/.github/workflows/gh-release.yml
@@ -9,7 +9,7 @@ jobs:
build:
runs-on: ubuntu-24.04
steps:
- - uses: actions/checkout@v5
- - uses: ncipollo/release-action@v1
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
+ - uses: ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1.20.0
with:
generateReleaseNotes: true
diff --git a/.github/workflows/manage-pr.yml b/.github/workflows/manage-pr.yml
index 6079baf3..d7b660fb 100644
--- a/.github/workflows/manage-pr.yml
+++ b/.github/workflows/manage-pr.yml
@@ -10,18 +10,18 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Checkout master
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
path: master
- name: Checkout merge commit
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
path: merge
ref: "refs/pull/${{ github.event.number }}/merge"
- name: Generate label config
run: cd master && SCAN_DIR=../merge ./contrib/gen_label_config.sh
- name: Update labels
- uses: actions/labeler@v6
+ uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b # v6.0.1
with:
configuration-path: master/.github/labeler.yml
sync-labels: true
diff --git a/.github/workflows/miri.yml b/.github/workflows/miri.yml
index 4d50a1d1..8eb9a352 100644
--- a/.github/workflows/miri.yml
+++ b/.github/workflows/miri.yml
@@ -16,12 +16,12 @@ jobs:
fail-fast: false
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Read nightly version"
id: read_toolchain
run: echo "nightly_version=$(cat nightly-version)" >> $GITHUB_OUTPUT
- name: "Select toolchain"
- uses: dtolnay/rust-toolchain@v1
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
with:
toolchain: ${{ steps.read_toolchain.outputs.nightly_version }}
components: miri
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index b590e989..27f7410b 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -15,8 +15,8 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Checkout Crate
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Checkout Toolchain
- uses: dtolnay/rust-toolchain@stable
+ uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable
- name: run cargo
run: contrib/release.sh
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index 7727417b..dcf7e4d3 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -16,7 +16,7 @@ jobs:
maintainer_tools_version: ${{ steps.read_toolchain.outputs.maintainer_tools_version }}
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Read workspace versions"
id: read_toolchain
run: |
@@ -33,15 +33,15 @@ jobs:
dep: [minimal, recent]
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Checkout maintainer tools"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
repository: rust-bitcoin/rust-bitcoin-maintainer-tools
ref: ${{ needs.Prepare.outputs.maintainer_tools_version }}
path: maintainer-tools
- name: "Select toolchain"
- uses: dtolnay/rust-toolchain@stable
+ uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable
- name: "Set dependencies"
run: cp Cargo-${{ matrix.dep }}.lock Cargo.lock
- name: "Run test script"
@@ -57,15 +57,15 @@ jobs:
dep: [minimal, recent]
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Checkout maintainer tools"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
repository: rust-bitcoin/rust-bitcoin-maintainer-tools
ref: ${{ needs.Prepare.outputs.maintainer_tools_version }}
path: maintainer-tools
- name: "Select toolchain"
- uses: dtolnay/rust-toolchain@v1
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
with:
toolchain: ${{ needs.Prepare.outputs.nightly_version }}
- name: "Set dependencies"
@@ -83,15 +83,15 @@ jobs:
dep: [minimal, recent]
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Checkout maintainer tools"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
repository: rust-bitcoin/rust-bitcoin-maintainer-tools
ref: ${{ needs.Prepare.outputs.maintainer_tools_version }}
path: maintainer-tools
- name: "Select toolchain"
- uses: dtolnay/rust-toolchain@stable
+ uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable
with:
toolchain: "1.74.0"
- name: "Set dependencies"
@@ -109,15 +109,15 @@ jobs:
dep: [recent]
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Checkout maintainer tools"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
repository: rust-bitcoin/rust-bitcoin-maintainer-tools
ref: ${{ needs.Prepare.outputs.maintainer_tools_version }}
path: maintainer-tools
- name: "Select toolchain"
- uses: dtolnay/rust-toolchain@v1
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
with:
toolchain: ${{ needs.Prepare.outputs.nightly_version }}
- name: "Install clippy"
@@ -137,15 +137,15 @@ jobs:
dep: [recent]
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Checkout maintainer tools"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
repository: rust-bitcoin/rust-bitcoin-maintainer-tools
ref: ${{ needs.Prepare.outputs.maintainer_tools_version }}
path: maintainer-tools
- name: "Select toolchain"
- uses: dtolnay/rust-toolchain@stable
+ uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable
- name: "Set dependencies"
run: cp Cargo-${{ matrix.dep }}.lock Cargo.lock
- name: "Run test script"
@@ -161,15 +161,15 @@ jobs:
dep: [recent]
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Checkout maintainer tools"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
repository: rust-bitcoin/rust-bitcoin-maintainer-tools
ref: ${{ needs.Prepare.outputs.maintainer_tools_version }}
path: maintainer-tools
- name: "Select toolchain"
- uses: dtolnay/rust-toolchain@v1
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
with:
toolchain: ${{ needs.Prepare.outputs.nightly_version }}
- name: "Set dependencies"
@@ -187,15 +187,15 @@ jobs:
dep: [recent]
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Checkout maintainer tools"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
repository: rust-bitcoin/rust-bitcoin-maintainer-tools
ref: ${{ needs.Prepare.outputs.maintainer_tools_version }}
path: maintainer-tools
- name: "Select toolchain"
- uses: dtolnay/rust-toolchain@v1
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
with:
toolchain: ${{ needs.Prepare.outputs.nightly_version }}
- name: "Set dependencies"
@@ -208,9 +208,9 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Select toolchain"
- uses: dtolnay/rust-toolchain@stable
+ uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable
- name: "Add architecture i386"
run: sudo dpkg --add-architecture i386
- name: "Install i686 gcc"
@@ -226,9 +226,9 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Select toolchain"
- uses: dtolnay/rust-toolchain@stable
+ uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable
- name: "Install target"
run: rustup target add s390x-unknown-linux-gnu
- name: "Install cross"
@@ -245,11 +245,11 @@ jobs:
CARGO_TARGET_THUMBV7M_NONE_EABI_RUNNER: "qemu-system-arm -cpu cortex-m3 -machine mps2-an385 -nographic -semihosting-config enable=on,target=native -kernel"
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Set up QEMU"
run: sudo apt update && sudo apt install -y qemu-system-arm gcc-arm-none-eabi
- name: "Select toolchain"
- uses: dtolnay/rust-toolchain@v1
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
with:
toolchain: ${{ needs.Prepare.outputs.nightly_version }}
targets: thumbv7m-none-eabi
@@ -274,9 +274,9 @@ jobs:
dep: [recent]
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Select toolchain"
- uses: dtolnay/rust-toolchain@v1
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
with:
toolchain: ${{ needs.Prepare.outputs.nightly_version }}
- name: "Install rust-src"
@@ -294,9 +294,9 @@ jobs:
# Note we do not use the recent lock file for wasm testing.
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Select toolchain"
- uses: dtolnay/rust-toolchain@stable
+ uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable
- name: "Run wasm script"
run: cd hashes && ./contrib/wasm.sh
@@ -305,9 +305,9 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Build Kani proofs"
- uses: model-checking/kani-github-action@v1.1
+ uses: model-checking/kani-github-action@f838096619a707b0f6b2118cf435eaccfa33e51f # v1.1
with:
args: "--only-codegen"
@@ -321,9 +321,9 @@ jobs:
dep: [recent]
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Select toolchain"
- uses: dtolnay/rust-toolchain@v1
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
with:
toolchain: ${{ needs.Prepare.outputs.nightly_version }}
- name: "Install cargo-public-api"
@@ -340,9 +340,9 @@ jobs:
fail-fast: false
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Select toolchain"
- uses: dtolnay/rust-toolchain@stable
+ uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable
- name: "Run policy script"
run: ./contrib/check-for-policy-violations.sh
@@ -353,8 +353,8 @@ jobs:
fail-fast: false
steps:
- name: "Checkout repo"
- uses: actions/checkout@v4
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Select toolchain"
- uses: dtolnay/rust-toolchain@stable
+ uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable
- name: "Run API checker script"
run: contrib/generate-re-export-test.sh && cd ./primitives && cargo test --all-features
diff --git a/.github/workflows/semver-checks-pr-label.yml b/.github/workflows/semver-checks-pr-label.yml
index 51aa185c..6506cdb8 100644
--- a/.github/workflows/semver-checks-pr-label.yml
+++ b/.github/workflows/semver-checks-pr-label.yml
@@ -16,7 +16,7 @@ jobs:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- name: "Download artifact"
- uses: actions/github-script@v8
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
script: |
// get all artifacts from the workflow run
@@ -52,7 +52,7 @@ jobs:
if: ${{ hashFiles('semver-break.zip') != '' }}
run: unzip -n semver-break.zip
- name: "Comment and add label on PR - Semver break"
- uses: actions/github-script@v8
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
if: ${{ hashFiles('semver-break') != '' }}
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/semver-checks.yml b/.github/workflows/semver-checks.yml
index 66d5cb1e..434a267f 100644
--- a/.github/workflows/semver-checks.yml
+++ b/.github/workflows/semver-checks.yml
@@ -11,16 +11,16 @@ jobs:
fail-fast: false
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0 # we need full history for cargo semver-checks
- name: "Install Rustup"
- uses: dtolnay/rust-toolchain@stable
+ uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable
- name: "Select stable-version"
run: |
rustup default $(cat ./.github/workflows/stable-version)
- name: "Install cargo-binstall"
- uses: cargo-bins/cargo-binstall@main
+ uses: cargo-bins/cargo-binstall@b3f755e95653da9a2d25b99154edfdbd5b356d0a # v1.15.10
- name: "Binstall pinned cargo-semver-checks"
run: cargo binstall cargo-semver-checks@$(cat ./.github/workflows/cargo-semver-checks-version) --no-confirm
- name: "Run semver checker script"
@@ -38,7 +38,7 @@ jobs:
echo "$PR_NUMBER" > ./semver-break
- name: "Save breaking state"
if: ${{ hashFiles('semver-break') != '' }}
- uses: actions/upload-artifact@v5
+ uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
with:
name: semver-break
path: semver-break
@@ -50,14 +50,14 @@ jobs:
fail-fast: false
steps:
- name: "Checkout repo"
- uses: actions/checkout@v5
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: "Install Rustup"
- uses: dtolnay/rust-toolchain@stable
+ uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable
- name: "Select stable-version"
run: |
rustup default $(cat ./.github/workflows/stable-version)
- name: "Install cargo-binstall"
- uses: cargo-bins/cargo-binstall@main
+ uses: cargo-bins/cargo-binstall@b3f755e95653da9a2d25b99154edfdbd5b356d0a # v1.15.10
- name: "Binstall pinned cargo-semver-checks"
run: cargo binstall cargo-semver-checks@$(cat ./.github/workflows/cargo-semver-checks-version) --no-confirm
- name: "Run semver checker script"
diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml
index c2a8202b..97b51a17 100644
--- a/.github/workflows/shellcheck.yml
+++ b/.github/workflows/shellcheck.yml
@@ -8,8 +8,8 @@ jobs:
name: Shellcheck
runs-on: ubuntu-24.04
steps:
- - uses: actions/checkout@v5
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Run ShellCheck
- uses: ludeeus/action-shellcheck@2.0.0
+ uses: ludeeus/action-shellcheck@00cae500b08a931fb5698e11e79bfbd38e612a38 # 2.0.0
env:
SHELLCHECK_OPTS: -x # allow outside sources
diff --git a/fuzz/generate-files.sh b/fuzz/generate-files.sh
index 4d364e2c..102d8e00 100755
--- a/fuzz/generate-files.sh
+++ b/fuzz/generate-files.sh
@@ -71,8 +71,9 @@ $(for name in $(listTargetNames); do echo " $name,"; done)
steps:
- name: Install test dependencies
run: sudo apt-get update -y && sudo apt-get install -y binutils-dev libunwind8-dev libcurl4-openssl-dev libelf-dev libdw-dev cmake gcc libiberty-dev
- - uses: actions/checkout@v5
- - uses: actions/cache@v4
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
+ - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
+
id: cache-fuzz
with:
path: |
@@ -80,7 +81,7 @@ $(for name in $(listTargetNames); do echo " $name,"; done)
fuzz/target
target
key: cache-\${{ matrix.target }}-\${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }}
- - uses: dtolnay/rust-toolchain@stable
+ - uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable
with:
toolchain: '1.65.0'
- name: fuzz
@@ -91,7 +92,7 @@ $(for name in $(listTargetNames); do echo " $name,"; done)
echo "Using RUSTFLAGS \$RUSTFLAGS"
cd fuzz && ./fuzz.sh "\${{ matrix.fuzz_target }}"
- run: echo "\${{ matrix.fuzz_target }}" >executed_\${{ matrix.fuzz_target }}
- - uses: actions/upload-artifact@v4
+ - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
with:
name: executed_\${{ matrix.fuzz_target }}
path: executed_\${{ matrix.fuzz_target }}
@@ -101,8 +102,8 @@ $(for name in $(listTargetNames); do echo " $name,"; done)
needs: fuzz
runs-on: ubuntu-24.04
steps:
- - uses: actions/checkout@v5
- - uses: actions/download-artifact@v5
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
+ - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
- name: Display structure of downloaded files
run: ls -R
- run: find executed_* -type f -exec cat {} + | sort > executed
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.