Skip to content

Commit f0f93cc

Browse files
Review SCM files and security updates (#9)
Security improvements: - Pin all GitHub Actions to full SHA commits (RSR compliance) - Fix CodeQL workflow to target main/master instead of stale branch - Update trufflehog from @main to pinned SHA (critical fix) - Update editorconfig-checker from @main to pinned SHA SCM file fixes: - guix.scm: Fix dual license (MIT OR AGPL-3.0-or-later), sync v1.0.0 - ECOSYSTEM.scm: Replace placeholder text with actual content - STATE.scm: Update version to 1.0.0, add component breakdown - META.scm: Add ADRs for crypto and formal verification Actions pinned to SHA: - actions/checkout@34e1148 (v4.3.1) - dtolnay/rust-toolchain@f7ccc83 - Swatinem/rust-cache@779680d (v2.8.2) - codecov/codecov-action@b9fd7d1 (v4.6.0) - github/codeql-action@45c3735 (v3.31.9) - ossf/scorecard-action@4eaacf0 (v2.4.3) - trufflesecurity/trufflehog@05cccb5 (v3.92.3) - editorconfig-checker@4b6cd6190d435e7e084fb35e36a096e98506f7b9 (v2.1.0) - webfactory/ssh-agent@a6f90b1 (v0.9.1) - actions/configure-pages@983d773 (v5.0.0) - actions/jekyll-build-pages@44a6e6b (v1.0.13) - actions/upload-pages-artifact@56afc60 (v3.0.1) - actions/deploy-pages@d6db901 (v4.0.5) Co-authored-by: Claude <noreply@anthropic.com>
1 parent aa7f909 commit f0f93cc

16 files changed

Lines changed: 183 additions & 156 deletions

.github/workflows/codeql.yml

Lines changed: 8 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,22 @@
1-
# For most projects, this workflow file will not need changing; you simply need
2-
# to commit it to your repository.
3-
#
4-
# You may wish to alter this file to override the set of languages analyzed,
5-
# or to provide custom queries or build logic.
6-
#
7-
# ******** NOTE ********
8-
# We have attempted to detect the languages in your repository. Please check
9-
# the `language` matrix defined below to confirm you have the correct set of
10-
# supported CodeQL languages.
11-
#
1+
# SPDX-License-Identifier: MIT OR AGPL-3.0-or-later
2+
# CodeQL Advanced Analysis
123
name: "CodeQL Advanced"
134

145
on:
156
push:
16-
branches: [ "claude/vae-decoded-images-012e7jgjUF6nEpdaXK8Ja4ya" ]
7+
branches: [main, master]
178
pull_request:
18-
branches: [ "claude/vae-decoded-images-012e7jgjUF6nEpdaXK8Ja4ya" ]
9+
branches: [main, master]
1910
schedule:
2011
- cron: '18 5 * * 3'
2112

2213
jobs:
2314
analyze:
2415
name: Analyze (${{ matrix.language }})
25-
# Runner size impacts CodeQL analysis time. To learn more, please see:
26-
# - https://gh.io/recommended-hardware-resources-for-running-codeql
27-
# - https://gh.io/supported-runners-and-hardware-resources
28-
# - https://gh.io/using-larger-runners (GitHub.com only)
29-
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
3016
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
3117
permissions:
32-
# required for all workflows
3318
security-events: write
34-
35-
# required to fetch internal or private CodeQL packs
3619
packages: read
37-
38-
# only required for workflows in private repositories
3920
actions: read
4021
contents: read
4122

@@ -45,43 +26,17 @@ jobs:
4526
include:
4627
- language: rust
4728
build-mode: none
48-
# CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'rust', 'swift'
49-
# Use `c-cpp` to analyze code written in C, C++ or both
50-
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
51-
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
52-
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
53-
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
54-
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
55-
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
29+
5630
steps:
5731
- name: Checkout repository
58-
uses: actions/checkout@v4
32+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
5933

60-
# Add any setup steps before running the `github/codeql-action/init` action.
61-
# This includes steps like installing compilers or runtimes (`actions/setup-node`
62-
# or others). This is typically only required for manual builds.
63-
# - name: Setup runtime (example)
64-
# uses: actions/setup-example@v1
65-
66-
# Initializes the CodeQL tools for scanning.
6734
- name: Initialize CodeQL
68-
uses: github/codeql-action/init@v4
35+
uses: github/codeql-action/init@45c373516f557556c15d420e3f5e0aa3d64366bc # v3.31.9
6936
with:
7037
languages: ${{ matrix.language }}
7138
build-mode: ${{ matrix.build-mode }}
72-
# If you wish to specify custom queries, you can do so here or in a config file.
73-
# By default, queries listed here will override any specified in a config file.
74-
# Prefix the list here with "+" to use these queries and those in the config file.
75-
76-
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
77-
# queries: security-extended,security-and-quality
7839

79-
# If the analyze step fails for one of the languages you are analyzing with
80-
# "We were unable to automatically build your code", modify the matrix above
81-
# to set the build mode to "manual" for that language. Then modify this step
82-
# to build your code.
83-
# ℹ️ Command-line programs to run using the OS shell.
84-
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
8540
- name: Run manual build steps
8641
if: matrix.build-mode == 'manual'
8742
shell: bash
@@ -94,6 +49,6 @@ jobs:
9449
exit 1
9550
9651
- name: Perform CodeQL Analysis
97-
uses: github/codeql-action/analyze@v4
52+
uses: github/codeql-action/analyze@45c373516f557556c15d420e3f5e0aa3d64366bc # v3.31.9
9853
with:
9954
category: "/language:${{matrix.language}}"
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
1+
# SPDX-License-Identifier: MIT OR AGPL-3.0-or-later
12
name: Guix/Nix Package Policy
23
on: [push, pull_request]
34
jobs:
45
check:
56
runs-on: ubuntu-latest
67
steps:
7-
- uses: actions/checkout@v4
8+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
89
- name: Enforce Guix primary / Nix fallback
910
run: |
1011
# Check for package manager files
1112
HAS_GUIX=$(find . -name "*.scm" -o -name ".guix-channel" -o -name "guix.scm" 2>/dev/null | head -1)
1213
HAS_NIX=$(find . -name "*.nix" 2>/dev/null | head -1)
13-
14+
1415
# Block new package-lock.json, yarn.lock, Gemfile.lock, etc.
1516
NEW_LOCKS=$(git diff --name-only --diff-filter=A HEAD~1 2>/dev/null | grep -E 'package-lock\.json|yarn\.lock|Gemfile\.lock|Pipfile\.lock|poetry\.lock|cargo\.lock' || true)
1617
if [ -n "$NEW_LOCKS" ]; then
1718
echo "⚠️ Lock files detected. Prefer Guix manifests for reproducibility."
1819
fi
19-
20+
2021
# Prefer Guix, fallback to Nix
2122
if [ -n "$HAS_GUIX" ]; then
2223
echo "✅ Guix package management detected (primary)"
@@ -25,5 +26,5 @@ jobs:
2526
else
2627
echo "ℹ️ Consider adding guix.scm or flake.nix for reproducible builds"
2728
fi
28-
29+
2930
echo "✅ Package policy check passed"
Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,37 @@
1-
# Sample workflow for building and deploying a Jekyll site to GitHub Pages
1+
# SPDX-License-Identifier: MIT OR AGPL-3.0-or-later
2+
# Deploy Jekyll site to GitHub Pages
23
name: Deploy Jekyll with GitHub Pages dependencies preinstalled
34

45
on:
5-
# Runs on pushes targeting the default branch
66
push:
77
branches: ["main"]
8-
9-
# Allows you to run this workflow manually from the Actions tab
108
workflow_dispatch:
119

12-
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
1310
permissions:
1411
contents: read
1512
pages: write
1613
id-token: write
1714

18-
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
19-
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
2015
concurrency:
2116
group: "pages"
2217
cancel-in-progress: false
2318

2419
jobs:
25-
# Build job
2620
build:
2721
runs-on: ubuntu-latest
2822
steps:
2923
- name: Checkout
30-
uses: actions/checkout@v4
24+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
3125
- name: Setup Pages
32-
uses: actions/configure-pages@v5
26+
uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5.0.0
3327
- name: Build with Jekyll
34-
uses: actions/jekyll-build-pages@v1
28+
uses: actions/jekyll-build-pages@44a6e6beabd48582f863aeeb6cb2151cc1716697 # v1.0.13
3529
with:
3630
source: ./
3731
destination: ./_site
3832
- name: Upload artifact
39-
uses: actions/upload-pages-artifact@v3
33+
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3.0.1
4034

41-
# Deployment job
4235
deploy:
4336
environment:
4437
name: github-pages
@@ -48,4 +41,4 @@ jobs:
4841
steps:
4942
- name: Deploy to GitHub Pages
5043
id: deployment
51-
uses: actions/deploy-pages@v4
44+
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5

.github/workflows/mirror.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-License-Identifier: AGPL-3.0-or-later
1+
# SPDX-License-Identifier: MIT OR AGPL-3.0-or-later
22
name: Mirror to GitLab and Bitbucket
33

44
on:
@@ -19,12 +19,12 @@ jobs:
1919

2020
steps:
2121
- name: Checkout
22-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
22+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
2323
with:
2424
fetch-depth: 0
2525

2626
- name: Setup SSH
27-
uses: webfactory/ssh-agent@dc588b651fe13675774614f8e6a936a468676387 # v0.9.0
27+
uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1
2828
with:
2929
ssh-private-key: ${{ secrets.GITLAB_SSH_KEY }}
3030

@@ -49,12 +49,12 @@ jobs:
4949

5050
steps:
5151
- name: Checkout
52-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
52+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
5353
with:
5454
fetch-depth: 0
5555

5656
- name: Setup SSH
57-
uses: webfactory/ssh-agent@dc588b651fe13675774614f8e6a936a468676387 # v0.9.0
57+
uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1
5858
with:
5959
ssh-private-key: ${{ secrets.BITBUCKET_SSH_KEY }}
6060

.github/workflows/npm-bun-blocker.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1+
# SPDX-License-Identifier: MIT OR AGPL-3.0-or-later
12
name: NPM/Bun Blocker
23
on: [push, pull_request]
34
jobs:
45
check:
56
runs-on: ubuntu-latest
67
steps:
7-
- uses: actions/checkout@v4
8+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
89
- name: Block npm/bun
910
run: |
1011
if [ -f "package-lock.json" ] || [ -f "bun.lockb" ] || [ -f ".npmrc" ]; then

.github/workflows/quality.yml

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,49 @@
1+
# SPDX-License-Identifier: MIT OR AGPL-3.0-or-later
12
name: Code Quality
23
on: [push, pull_request]
34

45
jobs:
56
lint:
67
runs-on: ubuntu-latest
78
steps:
8-
- uses: actions/checkout@v4
9-
9+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
10+
1011
- name: Check file permissions
1112
run: |
1213
find . -type f -perm /111 -name "*.sh" | head -10 || true
13-
14+
1415
- name: Check for secrets
15-
uses: trufflesecurity/trufflehog@main
16+
uses: trufflesecurity/trufflehog@05cccb53bc9e13bc6d17997db5a6bcc3df44bf2f # v3.92.3
1617
with:
1718
path: ./
1819
base: ${{ github.event.pull_request.base.sha || github.event.before }}
1920
head: ${{ github.sha }}
2021
continue-on-error: true
21-
22+
2223
- name: Check TODO/FIXME
2324
run: |
2425
echo "=== TODOs ==="
2526
grep -rn "TODO\|FIXME\|HACK\|XXX" --include="*.rs" --include="*.res" --include="*.py" --include="*.ex" . | head -20 || echo "None found"
26-
27+
2728
- name: Check for large files
2829
run: |
2930
find . -type f -size +1M -not -path "./.git/*" | head -10 || echo "No large files"
30-
31+
3132
- name: EditorConfig check
32-
uses: editorconfig-checker/action-editorconfig-checker@main
33+
uses: editorconfig-checker/action-editorconfig-checker@4b6cd6190d435e7e084fb35e36a096e98506f7b9 # v2.1.0
3334
continue-on-error: true
3435

3536
docs:
3637
runs-on: ubuntu-latest
3738
steps:
38-
- uses: actions/checkout@v4
39+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
3940
- name: Check documentation
4041
run: |
4142
MISSING=""
4243
[ ! -f "README.md" ] && [ ! -f "README.adoc" ] && MISSING="$MISSING README"
4344
[ ! -f "LICENSE" ] && [ ! -f "LICENSE.txt" ] && [ ! -f "LICENSE.md" ] && MISSING="$MISSING LICENSE"
4445
[ ! -f "CONTRIBUTING.md" ] && [ ! -f "CONTRIBUTING.adoc" ] && MISSING="$MISSING CONTRIBUTING"
45-
46+
4647
if [ -n "$MISSING" ]; then
4748
echo "::warning::Missing docs:$MISSING"
4849
else

.github/workflows/rsr-antipattern.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# RSR Anti-Pattern CI Check
2-
# SPDX-License-Identifier: AGPL-3.0-or-later
2+
# SPDX-License-Identifier: MIT OR AGPL-3.0-or-later
33
#
44
# Enforces: No TypeScript, No Go, No Python (except SaltStack), No npm
55
# Allows: ReScript, Deno, WASM, Rust, OCaml, Haskell, Guile/Scheme
@@ -16,7 +16,7 @@ jobs:
1616
antipattern-check:
1717
runs-on: ubuntu-latest
1818
steps:
19-
- uses: actions/checkout@v4
19+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
2020

2121
- name: Check for TypeScript
2222
run: |

.github/workflows/rust-ci.yml

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# SPDX-License-Identifier: MIT OR AGPL-3.0-or-later
12
name: Rust CI
23
on: [push, pull_request]
34
env:
@@ -8,29 +9,32 @@ jobs:
89
test:
910
runs-on: ubuntu-latest
1011
steps:
11-
- uses: actions/checkout@v4
12-
- uses: dtolnay/rust-toolchain@stable
12+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
13+
- uses: dtolnay/rust-toolchain@f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561 # master
1314
with:
15+
toolchain: stable
1416
components: rustfmt, clippy
15-
- uses: Swatinem/rust-cache@v2
16-
17+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
18+
1719
- name: Check formatting
1820
run: cargo fmt --all -- --check
19-
21+
2022
- name: Clippy lints
2123
run: cargo clippy --all-targets --all-features -- -D warnings
22-
24+
2325
- name: Run tests
2426
run: cargo test --all-features
25-
27+
2628
- name: Build release
2729
run: cargo build --release
2830

2931
security:
3032
runs-on: ubuntu-latest
3133
steps:
32-
- uses: actions/checkout@v4
33-
- uses: dtolnay/rust-toolchain@stable
34+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
35+
- uses: dtolnay/rust-toolchain@f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561 # master
36+
with:
37+
toolchain: stable
3438
- name: Install cargo-audit
3539
run: cargo install cargo-audit
3640
- name: Security audit
@@ -41,12 +45,14 @@ jobs:
4145
coverage:
4246
runs-on: ubuntu-latest
4347
steps:
44-
- uses: actions/checkout@v4
45-
- uses: dtolnay/rust-toolchain@stable
48+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
49+
- uses: dtolnay/rust-toolchain@f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561 # master
50+
with:
51+
toolchain: stable
4652
- name: Install tarpaulin
4753
run: cargo install cargo-tarpaulin
4854
- name: Generate coverage
4955
run: cargo tarpaulin --out Xml
50-
- uses: codecov/codecov-action@v3
56+
- uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4.6.0
5157
with:
5258
files: cobertura.xml

0 commit comments

Comments
 (0)