verify-supply-chain.sh (1155B)
1 #!/usr/bin/env bash 2 set -euo pipefail 3 4 repo_root="$(git rev-parse --show-toplevel)" 5 cd "$repo_root" 6 7 dependency_url="https://github.com/21-DOT-DEV/swift-secp256k1.git" 8 dependency_revision="e70a10e036a55fffea31568f0af92d69b6d449cd" 9 10 test "$(grep -F -c "url: \"$dependency_url\"" Package.swift)" -eq 1 11 test "$(grep -F -c "revision: \"$dependency_revision\"" Package.swift)" -eq 1 12 test "$(grep -E -c '^[[:space:]]*\.package\(' Package.swift)" -eq 1 13 test "$(grep -F -c "\"location\" : \"$dependency_url\"" Package.resolved)" -eq 1 14 test "$(grep -F -c "\"revision\" : \"$dependency_revision\"" Package.resolved)" -eq 1 15 16 if grep -E -q '\.package\((path:|.*branch:|.*from:|.*exact:)' Package.swift; then 17 echo "supply_chain_invalid: dependency must use only the governed immutable revision" >&2 18 exit 1 19 fi 20 21 test "$(grep -F -c '"identity" : "swift-secp256k1"' Package.resolved)" -eq 1 22 test "$(grep -F -c '"identity" :' Package.resolved)" -eq 1 23 test "$(grep -F -c '"kind" : "remoteSourceControl"' Package.resolved)" -eq 1 24 grep -F -q 'GPL-3.0-or-later' README 25 grep -F -q 'GNU GENERAL PUBLIC LICENSE' LICENSE 26 27 echo "supply-chain ok: one immutable Swift dependency"