1+ # SPDX-License-Identifier: AGPL-3.0-or-later
12name : Comprehensive Quality Gates
23on :
34 push :
67 schedule :
78 - cron : ' 0 5 * * 0'
89
10+ permissions : read-all
11+
912jobs :
1013 # DEPENDABILITY - Stability and reliability
1114 dependability :
1215 runs-on : ubuntu-latest
16+ permissions :
17+ contents : read
1318 steps :
14- - uses : actions/checkout@v6
19+ - uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
1520 - name : Check test coverage
1621 run : |
1722 echo "Checking for test files..."
@@ -29,10 +34,12 @@ jobs:
2934 # SECURITY - Multi-layer security scanning
3035 security :
3136 runs-on : ubuntu-latest
37+ permissions :
38+ contents : read
3239 steps :
33- - uses : actions/checkout@v6
40+ - uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
3441 - name : Secret scanning
35- uses : trufflesecurity/trufflehog@main
42+ uses : trufflesecurity/trufflehog@8a8ef8526528d8a4ff3e2c90be08e25ef8efbd9b # v3.88.3
3643 continue-on-error : true
3744 - name : Dependency vulnerabilities
3845 run : |
4956 # INTEROPERABILITY - API and format compatibility
5057 interoperability :
5158 runs-on : ubuntu-latest
59+ permissions :
60+ contents : read
5261 steps :
53- - uses : actions/checkout@v6
62+ - uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
5463 - name : Check API specs
5564 run : |
5665 if [ -f "openapi.yaml" ] || [ -f "openapi.json" ]; then
6675 # VALIDATION - Input/output validation
6776 validation :
6877 runs-on : ubuntu-latest
78+ permissions :
79+ contents : read
6980 steps :
70- - uses : actions/checkout@v6
81+ - uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
7182 - name : Check for validation patterns
7283 run : |
7384 VALIDATION=$(grep -rE "validate|sanitize|Schema|Validator" --include="*.rs" --include="*.res" --include="*.ex" . 2>/dev/null | wc -l || echo "0")
8192 contents : read
8293 attestations : write
8394 steps :
84- - uses : actions/checkout@v6
95+ - uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
8596 - name : Generate SBOM
8697 run : |
8798 echo "SBOM generation would run here"
@@ -96,8 +107,10 @@ jobs:
96107 # VERIFICATION - Formal methods where applicable
97108 verification :
98109 runs-on : ubuntu-latest
110+ permissions :
111+ contents : read
99112 steps :
100- - uses : actions/checkout@v6
113+ - uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
101114 - name : Check SPARK proofs
102115 run : |
103116 if find . -name "*.ads" | grep -q .; then
@@ -112,8 +125,10 @@ jobs:
112125 # FUNCTIONALITY - Feature completeness
113126 functionality :
114127 runs-on : ubuntu-latest
128+ permissions :
129+ contents : read
115130 steps :
116- - uses : actions/checkout@v6
131+ - uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
117132 - name : Check TODOs and FIXMEs
118133 run : |
119134 echo "=== Incomplete items ==="
@@ -125,8 +140,10 @@ jobs:
125140 # PERFORMANCE - Benchmarks and profiling
126141 performance :
127142 runs-on : ubuntu-latest
143+ permissions :
144+ contents : read
128145 steps :
129- - uses : actions/checkout@v6
146+ - uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
130147 - name : Check for benchmarks
131148 run : |
132149 BENCHES=$(find . -name "*bench*" -o -name "*perf*" | wc -l)
@@ -142,8 +159,10 @@ jobs:
142159 accessibility :
143160 runs-on : ubuntu-latest
144161 if : hashFiles('**/*.html') != ''
162+ permissions :
163+ contents : read
145164 steps :
146- - uses : actions/checkout@v6
165+ - uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
147166 - name : HTML accessibility check
148167 run : |
149168 echo "Checking for a11y attributes..."
@@ -156,8 +175,10 @@ jobs:
156175 # LICENSE COMPLIANCE
157176 license :
158177 runs-on : ubuntu-latest
178+ permissions :
179+ contents : read
159180 steps :
160- - uses : actions/checkout@v6
181+ - uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
161182 - name : Check license files
162183 run : |
163184 if [ -f "LICENSE" ] || [ -f "LICENSE.txt" ] || [ -f "LICENSE.md" ]; then
@@ -174,8 +195,10 @@ jobs:
174195 # DOCUMENTATION QUALITY
175196 documentation :
176197 runs-on : ubuntu-latest
198+ permissions :
199+ contents : read
177200 steps :
178- - uses : actions/checkout@v6
201+ - uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
179202 - name : Check docs completeness
180203 run : |
181204 DOCS=""
0 commit comments