Skip to content

Commit 33987e9

Browse files
tashianclaude
andcommitted
Add zizmor and frizbee CI checks
Add caller workflows for zizmor (security scanning) and frizbee (action pinning verification). Fix zizmor findings where applicable and add suppression config for intentional patterns. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 0fff58a commit 33987e9

File tree

4 files changed

+87
-1
lines changed

4 files changed

+87
-1
lines changed

.github/workflows/frizbee.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: Frizbee pinning check
2+
on:
3+
push:
4+
workflow_call:
5+
6+
concurrency:
7+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
8+
cancel-in-progress: true
9+
10+
permissions:
11+
contents: read
12+
13+
jobs:
14+
frizbee:
15+
uses: smallstep/workflows/.github/workflows/frizbee.yml@main
16+
secrets: inherit

.github/workflows/release.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,11 @@ jobs:
3131
steps:
3232
- name: Is Pre-release
3333
id: is_prerelease
34+
env:
35+
REF: ${{ github.ref }}
3436
run: |
3537
set +e
36-
echo ${{ github.ref }} | grep "\-rc.*"
38+
echo "${REF}" | grep "\-rc.*"
3739
OUT=$?
3840
if [ $OUT -eq 0 ]; then IS_PRERELEASE=true; else IS_PRERELEASE=false; fi
3941
echo "IS_PRERELEASE=${IS_PRERELEASE}" >> "${GITHUB_OUTPUT}"

.github/workflows/zizmor.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: Zizmor security scan
2+
on:
3+
push:
4+
workflow_call:
5+
6+
concurrency:
7+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
8+
cancel-in-progress: true
9+
10+
permissions:
11+
contents: read
12+
13+
jobs:
14+
zizmor:
15+
uses: smallstep/workflows/.github/workflows/zizmor.yml@main
16+
secrets: inherit

.github/zizmor.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
rules:
2+
# Internal reusable workflows (smallstep/*@main) intentionally track
3+
# the main branch for centralized CI management. Pinning to a SHA
4+
# would defeat the purpose of the shared workflows repo.
5+
unpinned-uses:
6+
ignore:
7+
- actionlint.yml:16
8+
- ci.yml:25
9+
- code-scan-cron.yml:7
10+
- dependabot-auto-merge.yml:10
11+
- frizbee.yml:15
12+
- release.yml:11
13+
- release.yml:80
14+
- release.yml:89
15+
- release.yml:103
16+
- release.yml:117
17+
- release.yml:131
18+
- triage.yml:19
19+
- zizmor.yml:15
20+
# Reusable workflow callers require `secrets: inherit` to pass
21+
# credentials needed by the shared workflows (e.g. SSH keys, PATs).
22+
secrets-inherit:
23+
ignore:
24+
- actionlint.yml:16
25+
- ci.yml:25
26+
- dependabot-auto-merge.yml:10
27+
- frizbee.yml:15
28+
- release.yml:11
29+
- release.yml:80
30+
- release.yml:89
31+
- release.yml:103
32+
- release.yml:117
33+
- release.yml:131
34+
- triage.yml:19
35+
- zizmor.yml:15
36+
# These workflows either lack a top-level `permissions:` block
37+
# (using GitHub defaults) or delegate to reusable workflows that
38+
# declare their own minimal permissions internally.
39+
excessive-permissions:
40+
ignore:
41+
- code-scan-cron.yml:6
42+
- release.yml:1
43+
- release.yml:10
44+
- release.yml:14
45+
# The triage workflow uses `pull_request_target` to label PRs
46+
# from forks. This is safe because the called reusable workflow
47+
# does not checkout or execute code from the PR.
48+
dangerous-triggers:
49+
ignore:
50+
- triage.yml:3
51+
52+

0 commit comments

Comments
 (0)