1717 name : Lint & Format
1818 runs-on : ubuntu-latest
1919 steps :
20- - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
20+ - uses : actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
2121 - uses : astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
22- - uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
22+ - uses : actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
2323 with :
2424 python-version : " 3.14"
2525 - run : uv sync --frozen --extra dev
3030 name : Type Check
3131 runs-on : ubuntu-latest
3232 steps :
33- - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
33+ - uses : actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
3434 - uses : astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
35- - uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
35+ - uses : actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
3636 with :
3737 python-version : " 3.14"
3838 - run : uv sync --frozen --extra dev
4343 runs-on : ubuntu-latest
4444 # Pure in-process tests — completes fast so PR authors get quick feedback.
4545 steps :
46- - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
46+ - uses : actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
4747 - uses : astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
48- - uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
48+ - uses : actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
4949 with :
5050 python-version : " 3.14"
5151 - run : uv sync --frozen --extra dev
5656 runs-on : ubuntu-latest
5757 # Enforces [tool.coverage.report].fail_under from pyproject.toml (75%).
5858 steps :
59- - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
59+ - uses : actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
6060 - uses : astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
61- - uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
61+ - uses : actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
6262 with :
6363 python-version : " 3.14"
6464 - run : uv sync --frozen --extra dev
6868 name : Architecture (import-linter)
6969 runs-on : ubuntu-latest
7070 steps :
71- - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
71+ - uses : actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
7272 - uses : astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
73- - uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
73+ - uses : actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
7474 with :
7575 python-version : " 3.14"
7676 - run : uv sync --frozen --extra dev
8383 # `uv run pre-commit install` can't leak unformatted code or a stray
8484 # secret past the first defence layer.
8585 steps :
86- - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
86+ - uses : actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
8787 - uses : astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
88- - uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
88+ - uses : actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
8989 with :
9090 python-version : " 3.14"
9191 - run : uv sync --frozen --extra dev
9999 # this job enforces the file-half. No exemption mechanism — pre-existing
100100 # offenders should be split before this job lands, not allowlisted.
101101 steps :
102- - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
103- - uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
102+ - uses : actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
103+ - uses : actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
104104 with :
105105 python-version : " 3.14"
106106 - run : python .github/scripts/check_file_length.py
@@ -113,10 +113,10 @@ jobs:
113113 # that the 75 % coverage gate cannot detect on its own.
114114 if : github.event_name == 'pull_request'
115115 steps :
116- - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
116+ - uses : actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
117117 with :
118118 fetch-depth : 0 # full history so `git show origin/<base>:` resolves
119- - uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
119+ - uses : actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
120120 with :
121121 python-version : " 3.14"
122122 - run : python .github/scripts/check_version_bump.py
@@ -129,8 +129,8 @@ jobs:
129129 # First-party = major tag; astral-sh/setup-uv = patch tag; third-party
130130 # = SHA + trailing `# vN.M.P` comment.
131131 steps :
132- - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
133- - uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
132+ - uses : actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
133+ - uses : actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
134134 with :
135135 python-version : " 3.14"
136136 - run : python .github/scripts/check_action_pins.py
@@ -143,10 +143,10 @@ jobs:
143143 # `::warning::` if src/ is touched without tests/.
144144 if : github.event_name == 'pull_request'
145145 steps :
146- - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
146+ - uses : actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
147147 with :
148148 fetch-depth : 0 # full history so the diff resolves
149- - uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
149+ - uses : actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
150150 with :
151151 python-version : " 3.14"
152152 - run : python .github/scripts/check_tests_present.py
@@ -158,8 +158,8 @@ jobs:
158158 # line cites a `#NNN` ticket; closed cites warn (or fail under
159159 # ASPIRATIONAL_STRICT=1). GITHUB_TOKEN enables ticket-state lookup.
160160 steps :
161- - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
162- - uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
161+ - uses : actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
162+ - uses : actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
163163 with :
164164 python-version : " 3.14"
165165 - env :
@@ -173,8 +173,8 @@ jobs:
173173 # interfaces. The audit checks shape (presence + min 200 bytes) and
174174 # structure (`## Key interfaces` heading). No exemption mechanism.
175175 steps :
176- - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
177- - uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
176+ - uses : actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
177+ - uses : actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
178178 with :
179179 python-version : " 3.14"
180180 - run : python .github/scripts/check_src_readmes.py
@@ -183,7 +183,7 @@ jobs:
183183 name : Frontend Build
184184 runs-on : ubuntu-latest
185185 steps :
186- - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
186+ - uses : actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
187187 - uses : actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
188188 with :
189189 node-version : " 24"
@@ -198,7 +198,7 @@ jobs:
198198 # enjoys (ruff + mypy + pytest); the Frontend Build job above validates
199199 # the bundler output, this one validates source quality.
200200 steps :
201- - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
201+ - uses : actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
202202 - uses : actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
203203 with :
204204 node-version : " 24"
@@ -217,9 +217,9 @@ jobs:
217217 # .github/branch-protection/*.json contexts arrays disagree with the
218218 # actual workflow jobs on disk.
219219 steps :
220- - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
220+ - uses : actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
221221 - uses : astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
222- - uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
222+ - uses : actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
223223 with :
224224 python-version : " 3.14"
225225 - run : uv sync --frozen --extra dev
@@ -233,9 +233,9 @@ jobs:
233233 # Adding a type in one but not the other would mean commits pass locally
234234 # while PR titles fail in CI (or vice versa).
235235 steps :
236- - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
236+ - uses : actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
237237 - uses : astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
238- - uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
238+ - uses : actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
239239 with :
240240 python-version : " 3.14"
241241 - run : uv sync --frozen --extra dev
0 commit comments