Skip to content

Commit 67249ab

Browse files
committed
security: standardize secret scanning on TruffleHog
1 parent 305180b commit 67249ab

18 files changed

Lines changed: 22 additions & 123 deletions

.github/workflows/cargo-audit.yml

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# SPDX-License-Identifier: MPL-2.0
22
# Prevention workflow - audits Rust dependencies for vulnerabilities
33
name: Cargo Audit
4-
54
on:
65
push:
76
branches: [main]
@@ -13,26 +12,20 @@ on:
1312
- '**/Cargo.toml'
1413
- '**/Cargo.lock'
1514
schedule:
16-
- cron: '0 6 * * 1' # Weekly on Monday
17-
15+
- cron: '0 6 * * 1' # Weekly on Monday
1816
permissions: read-all
19-
2017
jobs:
2118
audit:
2219
runs-on: ubuntu-latest
2320
timeout-minutes: 15
2421
steps:
2522
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
26-
2723
- name: Install cargo-audit
2824
run: cargo install cargo-audit --locked
29-
3025
- name: Run cargo audit
3126
run: cargo audit --deny warnings
32-
3327
- name: Check for unmaintained crates
3428
run: cargo audit --deny unmaintained
35-
3629
# Optional: Create issues for vulnerabilities
3730
create-issue:
3831
runs-on: ubuntu-latest
@@ -43,7 +36,6 @@ jobs:
4336
issues: write
4437
steps:
4538
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
46-
4739
- name: Create vulnerability issue
4840
env:
4941
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.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@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
25-
2621
- name: Checkout casket-ssg
2722
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
2823
with:
2924
repository: hyperpolymath/casket-ssg
3025
path: .casket-ssg
31-
3226
- name: Setup GHCup
3327
uses: haskell-actions/setup@ec49483bfc012387b227434aba94f59a6ecd0900 # v2
3428
with:
3529
ghc-version: '9.8.2'
3630
cabal-version: '3.10'
37-
3831
- name: Cache Cabal
3932
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
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@983d7736d9b0ae728b81ab479565c72886d7745b # v5
102-
10391
- name: Upload artifact
10492
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3
10593
with:
10694
path: '_site'
107-
10895
deploy:
10996
environment:
11097
name: github-pages

.github/workflows/ci.yml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
# SPDX-License-Identifier: MPL-2.0
22
name: CI
3-
43
on:
54
push:
65
branches: [main, master]
76
pull_request:
87
branches: [main, master]
9-
108
permissions:
119
contents: read
12-
1310
env:
1411
CARGO_TERM_COLOR: always
1512
RUSTFLAGS: "-Dwarnings"
16-
1713
jobs:
1814
check:
1915
name: Check
@@ -26,7 +22,6 @@ jobs:
2622
- uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable
2723
- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2
2824
- run: cargo check --workspace
29-
3025
test:
3126
name: Test
3227
runs-on: ubuntu-latest
@@ -38,7 +33,6 @@ jobs:
3833
- uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable
3934
- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2
4035
- run: cargo test --workspace
41-
4236
fmt:
4337
name: Format
4438
runs-on: ubuntu-latest
@@ -51,7 +45,6 @@ jobs:
5145
with:
5246
components: rustfmt
5347
- run: cargo fmt --all -- --check
54-
5548
clippy:
5649
name: Clippy
5750
runs-on: ubuntu-latest
@@ -65,7 +58,6 @@ jobs:
6558
components: clippy
6659
- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2
6760
- run: cargo clippy --workspace -- -D warnings
68-
6961
build:
7062
name: Build Release
7163
runs-on: ubuntu-latest

.github/workflows/codeql.yml

Lines changed: 1 addition & 8 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:
10-
- cron: '0 6 1 * *' # monthly 1st 06:00 UTC
11-
9+
- cron: '0 6 1 * *' # monthly 1st 06:00 UTC
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
@@ -35,17 +31,14 @@ jobs:
3531
build-mode: none
3632
- language: actions
3733
build-mode: none
38-
3934
steps:
4035
- name: Checkout
4136
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
42-
4337
- name: Initialize CodeQL
4438
uses: github/codeql-action/init@c6f931105cb2c34c8f901cc885ba1e2e259cf745 # v3
4539
with:
4640
languages: ${{ matrix.language }}
4741
build-mode: ${{ matrix.build-mode }}
48-
4942
- name: Perform CodeQL Analysis
5043
uses: github/codeql-action/analyze@c6f931105cb2c34c8f901cc885ba1e2e259cf745 # v3
5144
with:

.github/workflows/dependabot-automerge.yml

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,30 +35,25 @@
3535
# bumps for dependabot/fetch-metadata flow through the same path.
3636

3737
name: Dependabot Auto-Merge
38-
3938
on:
4039
pull_request:
4140
types: [opened, reopened, synchronize]
42-
4341
permissions:
44-
contents: write # needed to enable auto-merge
45-
pull-requests: write # needed to approve
42+
contents: write # needed to enable auto-merge
43+
pull-requests: write # needed to approve
4644
# NB: keep narrow — do NOT add secrets: read or id-token: write here.
47-
4845
jobs:
4946
automerge:
5047
# Only run for PRs actually authored by Dependabot.
5148
if: github.actor == 'dependabot[bot]' && github.event.pull_request.user.login == 'dependabot[bot]'
5249
runs-on: ubuntu-latest
5350
timeout-minutes: 15
54-
5551
steps:
5652
- name: Fetch Dependabot metadata
5753
id: meta
5854
uses: dependabot/fetch-metadata@dbb049abf0d677abbd7f7eee0375145b417fdd34 # v2.2.0
5955
with:
6056
github-token: ${{ secrets.GITHUB_TOKEN }}
61-
6257
# --- Policy gate -------------------------------------------------------
6358
# Outputs from fetch-metadata we care about:
6459
# update-type → version-update:semver-{patch,minor,major}
@@ -107,7 +102,6 @@ jobs:
107102
echo "security=$is_security" >> "$GITHUB_OUTPUT"
108103
echo "update_type=$UPDATE_TYPE" >> "$GITHUB_OUTPUT"
109104
echo "ghsa=$GHSA_ID" >> "$GITHUB_OUTPUT"
110-
111105
- name: Approve PR (if policy allows)
112106
if: steps.policy.outputs.action == 'automerge'
113107
env:
@@ -116,15 +110,13 @@ jobs:
116110
run: |
117111
gh pr review --approve "$PR_URL" \
118112
--body "Auto-approving Dependabot security update (${{ steps.policy.outputs.ghsa }}, ${{ steps.policy.outputs.update_type }}). Policy: low/moderate security patches/minors only."
119-
120113
- name: Enable auto-merge (if policy allows)
121114
if: steps.policy.outputs.action == 'automerge'
122115
env:
123116
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
124117
PR_URL: ${{ github.event.pull_request.html_url }}
125118
run: |
126119
gh pr merge --auto --squash "$PR_URL"
127-
128120
- name: Write decision to step summary
129121
env:
130122
ACTION: ${{ steps.policy.outputs.action }}

0 commit comments

Comments
 (0)