Skip to content

Commit 74a7bc3

Browse files
committed
security: standardize secret scanning on TruffleHog
1 parent 18f956b commit 74a7bc3

12 files changed

Lines changed: 18 additions & 78 deletions

File tree

.github/workflows/casket-pages.yml

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,33 @@
11
# SPDX-License-Identifier: MPL-2.0
22
name: GitHub Pages
3-
43
on:
54
push:
65
branches: [main, master]
76
workflow_dispatch:
8-
97
permissions:
108
contents: read
119
pages: write
1210
id-token: write
13-
1411
concurrency:
1512
group: "pages"
1613
cancel-in-progress: false
17-
1814
jobs:
1915
build:
2016
runs-on: ubuntu-latest
2117
timeout-minutes: 15
2218
steps:
2319
- name: Checkout
2420
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4
25-
2621
- name: Checkout casket-ssg
2722
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4
2823
with:
2924
repository: hyperpolymath/casket-ssg
3025
path: .casket-ssg
31-
3226
- name: Setup GHCup
3327
uses: haskell-actions/setup@cd0d9bdd65b20557f41bea4dbe43d0b5fbbfe553 # v2
3428
with:
3529
ghc-version: '9.8.2'
3630
cabal-version: '3.10'
37-
3831
- name: Cache Cabal
3932
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
4033
with:
@@ -43,11 +36,9 @@ jobs:
4336
~/.cabal/store
4437
.casket-ssg/dist-newstyle
4538
key: ${{ runner.os }}-casket-${{ hashFiles('.casket-ssg/casket-ssg.cabal') }}
46-
4739
- name: Build casket-ssg
4840
working-directory: .casket-ssg
4941
run: cabal build
50-
5142
- name: Prepare site source
5243
shell: bash
5344
run: |
@@ -90,21 +81,17 @@ jobs:
9081
echo "Project-specific site content can be added later under site/."
9182
} > .site-src/index.md
9283
fi
93-
9484
- name: Build site
9585
run: |
9686
mkdir -p _site
9787
cd .casket-ssg && cabal run casket-ssg -- build ../.site-src ../_site
9888
touch ../_site/.nojekyll
99-
10089
- name: Setup Pages
10190
uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0
102-
10391
- name: Upload artifact
10492
uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
10593
with:
10694
path: '_site'
107-
10895
deploy:
10996
environment:
11097
name: github-pages

.github/workflows/codeql.yml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,21 @@
11
# SPDX-License-Identifier: MPL-2.0
22
name: CodeQL Security Analysis
3-
43
on:
54
push:
65
branches: [main, master]
76
pull_request:
87
branches: [main, master]
98
schedule:
109
- cron: '0 6 * * 1'
11-
1210
# Estate guardrail: cancel superseded runs so re-pushes / rebased PR
1311
# updates do not pile up queued runs against the shared account-wide
1412
# Actions concurrency pool. Applied only to read-only check workflows
1513
# (no publish/mutation), so cancelling a superseded run is always safe.
1614
concurrency:
1715
group: ${{ github.workflow }}-${{ github.ref }}
1816
cancel-in-progress: true
19-
2017
permissions:
2118
contents: read
22-
2319
jobs:
2420
analyze:
2521
runs-on: ubuntu-latest
@@ -33,17 +29,14 @@ jobs:
3329
include:
3430
- language: javascript-typescript
3531
build-mode: none
36-
3732
steps:
3833
- name: Checkout
3934
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
40-
4135
- name: Initialize CodeQL
4236
uses: github/codeql-action/init@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v3
4337
with:
4438
languages: ${{ matrix.language }}
4539
build-mode: ${{ matrix.build-mode }}
46-
4740
- name: Perform CodeQL Analysis
4841
uses: github/codeql-action/analyze@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v3
4942
with:

.github/workflows/dogfood-gate.yml

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,13 @@
55
# Validates that the repo uses hyperpolymath's own formats and tools.
66
# Companion to static-analysis-gate.yml (security) — this is for format compliance.
77
name: Dogfood Gate
8-
98
on:
109
pull_request:
1110
branches: ['**']
1211
push:
1312
branches: [main, master]
14-
1513
permissions:
1614
contents: read
17-
1815
jobs:
1916
# ---------------------------------------------------------------------------
2017
# Job 1: A2ML manifest validation
@@ -23,11 +20,9 @@ jobs:
2320
name: Validate A2ML manifests
2421
runs-on: ubuntu-latest
2522
timeout-minutes: 15
26-
2723
steps:
2824
- name: Checkout repository
2925
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
30-
3126
- name: Check for A2ML files
3227
id: detect
3328
run: |
@@ -36,14 +31,12 @@ jobs:
3631
if [ "$COUNT" -eq 0 ]; then
3732
echo "::warning::No .a2ml manifest files found. Every RSR repo should have 0-AI-MANIFEST.a2ml"
3833
fi
39-
4034
- name: Validate A2ML manifests
4135
if: steps.detect.outputs.count > 0
4236
uses: hyperpolymath/a2ml-validate-action@59145c7d1039fa3059b3ecacdb50ee23d7505898 # main
4337
with:
4438
path: '.'
4539
strict: 'false'
46-
4740
- name: Write summary
4841
run: |
4942
A2ML_COUNT="${{ steps.detect.outputs.count }}"
@@ -60,19 +53,16 @@ jobs:
6053
echo "" >> "$GITHUB_STEP_SUMMARY"
6154
echo "Scanned **${A2ML_COUNT}** .a2ml file(s). See step output for details." >> "$GITHUB_STEP_SUMMARY"
6255
fi
63-
6456
# ---------------------------------------------------------------------------
6557
# Job 2: K9 contract validation
6658
# ---------------------------------------------------------------------------
6759
k9-validate:
6860
name: Validate K9 contracts
6961
runs-on: ubuntu-latest
7062
timeout-minutes: 15
71-
7263
steps:
7364
- name: Checkout repository
7465
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
75-
7666
- name: Check for K9 files
7767
id: detect
7868
run: |
@@ -85,14 +75,12 @@ jobs:
8575
if [ "$COUNT" -eq 0 ] && [ "$CONFIG_COUNT" -gt 0 ]; then
8676
echo "::warning::Found $CONFIG_COUNT config files but no K9 contracts. Run k9iser to generate contracts."
8777
fi
88-
8978
- name: Validate K9 contracts
9079
if: steps.detect.outputs.k9_count > 0
9180
uses: hyperpolymath/k9-validate-action@2d96f43c538964b097d159ed3a56ba5b5ceca227 # main
9281
with:
9382
path: '.'
9483
strict: 'false'
95-
9684
- name: Write summary
9785
run: |
9886
K9_COUNT="${{ steps.detect.outputs.k9_count }}"
@@ -110,19 +98,16 @@ jobs:
11098
echo "" >> "$GITHUB_STEP_SUMMARY"
11199
echo "Validated **${K9_COUNT}** K9 contract(s) against **${CFG_COUNT}** config file(s)." >> "$GITHUB_STEP_SUMMARY"
112100
fi
113-
114101
# ---------------------------------------------------------------------------
115102
# Job 3: Empty-linter — invisible character detection
116103
# ---------------------------------------------------------------------------
117104
empty-lint:
118105
name: Empty-linter (invisible characters)
119106
runs-on: ubuntu-latest
120107
timeout-minutes: 15
121-
122108
steps:
123109
- name: Checkout repository
124110
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
125-
126111
- name: Scan for invisible characters
127112
id: lint
128113
run: |
@@ -156,7 +141,6 @@ jobs:
156141
REL_PATH="${filepath#$GITHUB_WORKSPACE/}"
157142
echo "::warning file=${REL_PATH}::Invisible Unicode characters detected (zero-width space, BOM, NBSP, etc.)"
158143
done < /tmp/empty-lint-results.txt
159-
160144
- name: Write summary
161145
run: |
162146
if [ "${{ steps.lint.outputs.ready }}" = "true" ]; then
@@ -175,19 +159,16 @@ jobs:
175159
echo "" >> "$GITHUB_STEP_SUMMARY"
176160
echo "Skipped: empty-linter not available." >> "$GITHUB_STEP_SUMMARY"
177161
fi
178-
179162
# ---------------------------------------------------------------------------
180163
# Job 4: Groove manifest check (for repos that should expose services)
181164
# ---------------------------------------------------------------------------
182165
groove-check:
183166
name: Groove manifest check
184167
runs-on: ubuntu-latest
185168
timeout-minutes: 15
186-
187169
steps:
188170
- name: Checkout repository
189171
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
190-
191172
- name: Check for Groove manifest
192173
id: groove
193174
run: |
@@ -224,7 +205,6 @@ jobs:
224205
if [ "$HAS_SERVER" = "true" ] && [ "$HAS_MANIFEST" = "false" ] && [ "$HAS_GROOVE_CODE" = "false" ]; then
225206
echo "::warning::This repo has server code but no Groove endpoint. Add .well-known/groove/manifest.json for service discovery."
226207
fi
227-
228208
- name: Write summary
229209
run: |
230210
echo "## Groove Protocol Check" >> "$GITHUB_STEP_SUMMARY"
@@ -234,7 +214,6 @@ jobs:
234214
echo "| Static manifest (.well-known/groove/manifest.json) | ${{ steps.groove.outputs.has_manifest }} |" >> "$GITHUB_STEP_SUMMARY"
235215
echo "| Groove endpoint in code | ${{ steps.groove.outputs.has_groove_code }} |" >> "$GITHUB_STEP_SUMMARY"
236216
echo "| Has HTTP server code | ${{ steps.groove.outputs.has_server }} |" >> "$GITHUB_STEP_SUMMARY"
237-
238217
# ---------------------------------------------------------------------------
239218
# Job 5: Dogfooding summary
240219
# ---------------------------------------------------------------------------
@@ -244,11 +223,9 @@ jobs:
244223
timeout-minutes: 15
245224
needs: [a2ml-validate, k9-validate, empty-lint, groove-check]
246225
if: always()
247-
248226
steps:
249227
- name: Checkout repository
250228
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
251-
252229
- name: Generate dogfooding scorecard
253230
run: |
254231
SCORE=0
@@ -311,4 +288,3 @@ jobs:
311288
*Generated by the [Dogfood Gate](https://github.com/hyperpolymath/rsr-template-repo) workflow.*
312289
*Dogfooding is guinea pig fooding — we test our tools on ourselves.*
313290
EOF
314-

.github/workflows/governance.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,20 @@
1111
# (rust-ci, codeql, dependabot, release, scan/mirror/pages plumbing).
1212

1313
name: Governance
14-
1514
on:
1615
push:
1716
branches: [main, master]
1817
pull_request:
1918
workflow_dispatch:
20-
2119
# Estate guardrail: cancel superseded runs so re-pushes / rebased PR
2220
# updates do not pile up queued runs against the shared account-wide
2321
# Actions concurrency pool. Applied only to read-only check workflows
2422
# (no publish/mutation), so cancelling a superseded run is always safe.
2523
concurrency:
2624
group: ${{ github.workflow }}-${{ github.ref }}
2725
cancel-in-progress: true
28-
2926
permissions:
3027
contents: read
31-
3228
jobs:
3329
governance:
3430
uses: hyperpolymath/standards/.github/workflows/governance-reusable.yml@861b5e911d9e5dcfb3c0ab3dd2a9a3c8fd0a1613

.github/workflows/hypatia-scan.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
# See standards#191 for the reusable's purpose and design.
44

55
name: Hypatia Security Scan
6-
76
on:
87
push:
98
branches: [main, master, develop]
@@ -12,17 +11,14 @@ on:
1211
schedule:
1312
- cron: '0 0 * * 0'
1413
workflow_dispatch:
15-
1614
# Estate guardrail: cancel superseded runs so re-pushes don't pile up.
1715
concurrency:
1816
group: ${{ github.workflow }}-${{ github.ref }}
1917
cancel-in-progress: true
20-
2118
permissions:
2219
contents: read
2320
security-events: write
2421
pull-requests: write
25-
2622
jobs:
2723
hypatia:
2824
uses: hyperpolymath/standards/.github/workflows/hypatia-scan-reusable.yml@6cd3772824e59c8c9affeab66061e25383544242

.github/workflows/instant-sync.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
# SPDX-License-Identifier: MPL-2.0
22
# Instant Forge Sync - Triggers propagation to all forges on push/release
33
name: Instant Sync
4-
54
on:
65
push:
76
branches: [main, master]
87
release:
98
types: [published]
10-
119
permissions:
1210
contents: read
13-
1411
jobs:
1512
dispatch:
1613
runs-on: ubuntu-latest
@@ -29,6 +26,5 @@ jobs:
2926
"sha": "${{ github.sha }}",
3027
"forges": ""
3128
}
32-
3329
- name: Confirm
3430
run: echo "::notice::Propagation triggered for ${{ github.event.repository.name }}"

.github/workflows/mirror.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
# SPDX-License-Identifier: MPL-2.0
22
name: Mirror to Git Forges
3-
43
on:
54
push:
65
branches: [main]
76
workflow_dispatch:
8-
97
permissions:
108
contents: read
11-
129
jobs:
1310
mirror:
1411
uses: hyperpolymath/standards/.github/workflows/mirror-reusable.yml@e6b2884722350515934d443daf23442f2195796f

0 commit comments

Comments
 (0)