Skip to content

Commit ad11d0f

Browse files
committed
chore(workflows): add actionlint and zizmor action linters [SECINT-75]
Signed-off-by: Steve Beattie <steve.beattie@chainguard.dev>
1 parent ab916d3 commit ad11d0f

2 files changed

Lines changed: 96 additions & 0 deletions

File tree

.github/workflows/actionlint.yaml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Action Lint
2+
on:
3+
pull_request:
4+
branches: ['main']
5+
paths:
6+
- '.github/workflows/**'
7+
- '.github/actions/**'
8+
9+
push:
10+
branches: ['main']
11+
paths:
12+
- '.github/workflows/**'
13+
- '.github/actions/**'
14+
15+
permissions: {}
16+
17+
jobs:
18+
action-lint:
19+
permissions:
20+
contents: read # Clone the repository
21+
name: Action lint
22+
runs-on: ubuntu-latest
23+
steps:
24+
- uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0
25+
with:
26+
egress-policy: block
27+
allowed-endpoints: >
28+
*.githubapp.com:443
29+
api.github.com:443
30+
github.com:443
31+
go.dev:443
32+
hooks.slack.com:443
33+
release-assets.githubusercontent.com:443
34+
35+
- name: Check out code
36+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
37+
with:
38+
persist-credentials: false
39+
40+
- name: Find yamls
41+
id: get_yamls
42+
run: |
43+
set -ex
44+
mapfile -t yamls < <(find .github/workflows -name "*.y*ml" | grep -v dependabot.)
45+
echo "files=${yamls[*]}" >> "${GITHUB_OUTPUT}"
46+
47+
- name: Action lint
48+
uses: step-security/action-actionlint@d364e70a116a460ed220d67b1ca2f2579c48a40a # v1.69.1
49+
env:
50+
SHELLCHECK_OPTS: "--exclude=SC2129"
51+
with:
52+
actionlint_flags: ${{ steps.get_yamls.outputs.files }}

.github/workflows/zizmor.yaml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Copyright 2026 Chainguard, Inc.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
name: Zizmor
5+
6+
on:
7+
pull_request:
8+
branches: ['main']
9+
paths:
10+
- '.github/workflows/**'
11+
- '.github/actions/**'
12+
push:
13+
branches: ['main']
14+
paths:
15+
- '.github/workflows/**'
16+
- '.github/actions/**'
17+
18+
permissions: {}
19+
20+
jobs:
21+
zizmor:
22+
name: Zizmor
23+
runs-on: ubuntu-latest
24+
permissions:
25+
actions: read # Required by codeql-action/upload-sarif to get workflow run info
26+
contents: read # Clone the repository
27+
security-events: write # Upload SARIF results to Code Scanning
28+
steps:
29+
- uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0
30+
with:
31+
egress-policy: block
32+
allowed-endpoints: >
33+
api.github.com:443
34+
github.com:443
35+
pkg-containers.githubusercontent.com:443
36+
ghcr.io
37+
38+
- name: Check out code
39+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
40+
with:
41+
persist-credentials: false
42+
43+
- name: Run zizmor
44+
uses: zizmorcore/zizmor-action@71321a20a9ded102f6e9ce5718a2fcec2c4f70d8 # v0.5.2

0 commit comments

Comments
 (0)