2727 lint :
2828 runs-on : ubuntu-latest
2929 steps :
30- - uses : actions/checkout@v4
30+ - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
3131
3232 - name : Install build deps
3333 run : sudo apt-get update && sudo apt-get install -y zlib1g-dev cmake
3939 sudo apt-get update
4040 sudo apt-get install -y clang-format-20
4141
42- - uses : actions/cache@v4
42+ - uses : actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
4343 id : cppcheck-cache
4444 with :
4545 path : /opt/cppcheck
6565 security-static :
6666 runs-on : ubuntu-latest
6767 steps :
68- - uses : actions/checkout@v4
68+ - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
6969
7070 - name : " Layer 1: Static allow-list audit"
7171 run : scripts/security-audit.sh
@@ -104,7 +104,7 @@ jobs:
104104 cxx : c++
105105 runs-on : ${{ matrix.os }}
106106 steps :
107- - uses : actions/checkout@v4
107+ - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
108108
109109 - name : Install deps (Ubuntu)
110110 if : startsWith(matrix.os, 'ubuntu')
@@ -117,9 +117,9 @@ jobs:
117117 needs : [lint]
118118 runs-on : windows-latest
119119 steps :
120- - uses : actions/checkout@v4
120+ - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
121121
122- - uses : msys2/setup-msys2@v2
122+ - uses : msys2/setup-msys2@4f806de0a5a7294ffabaff804b38a9b435a73bda # v2
123123 with :
124124 msystem : CLANG64
125125 path-type : inherit
@@ -161,13 +161,13 @@ jobs:
161161 cxx : c++
162162 runs-on : ${{ matrix.os }}
163163 steps :
164- - uses : actions/checkout@v4
164+ - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
165165
166166 - name : Install deps (Ubuntu)
167167 if : startsWith(matrix.os, 'ubuntu')
168168 run : sudo apt-get update && sudo apt-get install -y zlib1g-dev
169169
170- - uses : actions/setup-node@v4
170+ - uses : actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
171171 with :
172172 node-version : " 22"
173173
@@ -191,7 +191,7 @@ jobs:
191191 tar -czf codebase-memory-mcp-ui-${{ matrix.goos }}-${{ matrix.goarch }}.tar.gz \
192192 -C build/c codebase-memory-mcp
193193
194- - uses : actions/upload-artifact@v4
194+ - uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
195195 with :
196196 name : binaries-${{ matrix.goos }}-${{ matrix.goarch }}
197197 path : " *.tar.gz"
@@ -200,9 +200,9 @@ jobs:
200200 needs : [test-unix, test-windows]
201201 runs-on : windows-latest
202202 steps :
203- - uses : actions/checkout@v4
203+ - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
204204
205- - uses : msys2/setup-msys2@v2
205+ - uses : msys2/setup-msys2@4f806de0a5a7294ffabaff804b38a9b435a73bda # v2
206206 with :
207207 msystem : CLANG64
208208 path-type : inherit
@@ -212,7 +212,7 @@ jobs:
212212 make
213213 zip
214214
215- - uses : actions/setup-node@v4
215+ - uses : actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
216216 with :
217217 node-version : " 22"
218218
@@ -240,7 +240,7 @@ jobs:
240240 cp "$BIN" codebase-memory-mcp-ui.exe
241241 zip codebase-memory-mcp-ui-windows-amd64.zip codebase-memory-mcp-ui.exe
242242
243- - uses : actions/upload-artifact@v4
243+ - uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
244244 with :
245245 name : binaries-windows-amd64
246246 path : " *.zip"
@@ -266,9 +266,9 @@ jobs:
266266 variant : [standard, ui]
267267 runs-on : ${{ matrix.os }}
268268 steps :
269- - uses : actions/checkout@v4
269+ - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
270270
271- - uses : actions/download-artifact@v4
271+ - uses : actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
272272 with :
273273 name : binaries-${{ matrix.goos }}-${{ matrix.goarch }}
274274
@@ -334,17 +334,17 @@ jobs:
334334 variant : [standard, ui]
335335 runs-on : windows-latest
336336 steps :
337- - uses : actions/checkout@v4
337+ - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
338338
339- - uses : msys2/setup-msys2@v2
339+ - uses : msys2/setup-msys2@4f806de0a5a7294ffabaff804b38a9b435a73bda # v2
340340 with :
341341 msystem : CLANG64
342342 path-type : inherit
343343 install : >-
344344 mingw-w64-clang-x86_64-python3
345345 unzip
346346
347- - uses : actions/download-artifact@v4
347+ - uses : actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
348348 with :
349349 name : binaries-windows-amd64
350350
@@ -396,9 +396,9 @@ jobs:
396396 id-token : write
397397 attestations : write
398398 steps :
399- - uses : actions/checkout@v4
399+ - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
400400
401- - uses : actions/download-artifact@v4
401+ - uses : actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
402402 with :
403403 merge-multiple : true
404404
@@ -410,17 +410,17 @@ jobs:
410410
411411 # ── Artifact attestations (SLSA provenance) ──────────────
412412 - name : Attest build provenance (tar.gz)
413- uses : actions/attest-build-provenance@v2
413+ uses : actions/attest-build-provenance@96b4a1ef7235a096b17240c259729fdd70c83d45 # v2
414414 with :
415415 subject-path : ' *.tar.gz'
416416
417417 - name : Attest build provenance (zip)
418- uses : actions/attest-build-provenance@v2
418+ uses : actions/attest-build-provenance@96b4a1ef7235a096b17240c259729fdd70c83d45 # v2
419419 with :
420420 subject-path : ' *.zip'
421421
422422 - name : Attest build provenance (checksums)
423- uses : actions/attest-build-provenance@v2
423+ uses : actions/attest-build-provenance@96b4a1ef7235a096b17240c259729fdd70c83d45 # v2
424424 with :
425425 subject-path : ' checksums.txt'
426426
@@ -434,14 +434,14 @@ jobs:
434434 python3 -c "import json; d=json.load(open('sbom.json')); json.dump(d,open('sbom.json','w'),indent=2)"
435435
436436 - name : Attest SBOM
437- uses : actions/attest-sbom@v2
437+ uses : actions/attest-sbom@10926c72720ffc3f7b666661c8e55b1344e2a365 # v2
438438 with :
439439 subject-path : ' *.tar.gz'
440440 sbom-path : ' sbom.json'
441441
442442 # ── Sigstore cosign signing ──────────────────────────────
443443 - name : Install cosign
444- uses : sigstore/cosign-installer@v3
444+ uses : sigstore/cosign-installer@f713795cb21599bc4e5c4b58cbad1da852d7eeb9 # v3
445445
446446 - name : Sign release artifacts with cosign
447447 run : |
@@ -464,7 +464,7 @@ jobs:
464464 git tag -f "$VERSION"
465465 git push origin "$VERSION" --force
466466
467- - uses : softprops/action-gh-release@v2
467+ - uses : softprops/action-gh-release@153bb8e04406b158c6c84fc1615b65b24149a1fe # v2
468468 with :
469469 tag_name : ${{ inputs.version }}
470470 draft : true
@@ -489,7 +489,7 @@ jobs:
489489 security-events : write
490490 id-token : write
491491 steps :
492- - uses : actions/checkout@v4
492+ - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
493493 with :
494494 persist-credentials : false
495495
@@ -504,7 +504,7 @@ jobs:
504504 ls -la assets/
505505
506506 - name : Scan all binaries with VirusTotal
507- uses : crazy-max/ghaction-virustotal@v4
507+ uses : crazy-max/ghaction-virustotal@d34968c958ae283fe976efed637081b9f9dcf74f # v4
508508 id : virustotal
509509 with :
510510 vt_api_key : ${{ secrets.VIRUS_TOTAL_SCANNER_API_KEY }}
@@ -607,15 +607,15 @@ jobs:
607607
608608 # ── OpenSSF Scorecard ────────────────────────────────────
609609 - name : Run OpenSSF Scorecard
610- uses : ossf/scorecard-action@v2
610+ uses : ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3
611611 id : scorecard
612612 with :
613613 results_file : scorecard.sarif
614614 results_format : sarif
615615 publish_results : true
616616
617617 - name : Upload Scorecard SARIF
618- uses : github/codeql-action/upload-sarif@v3
618+ uses : github/codeql-action/upload-sarif@38697555549f1db7851b81482ff19f1fa5c4fedc # v4
619619 with :
620620 sarif_file : scorecard.sarif
621621
0 commit comments