Repository navigation
ci(py): pin Python workflow actions and drop default write access - #623
Closed
huangjeff5 wants to merge 1 commit into
Closed
huangjeff5 wants to merge 1 commit into
huangjeff5 wants to merge 1 commit into
Conversation
huangjeff5
force-pushed
the
ci/python-workflow-hardening
branch
from
October 2, 2026 02:12
41c8e97 to
189dbd4
Compare
huangjeff5
force-pushed
the
feat/dotpromptz-python-handlebars
branch
from
October 2, 2026 02:35
3e52b24 to
a599e60
Compare
huangjeff5
force-pushed
the
ci/python-workflow-hardening
branch
from
October 2, 2026 02:35
189dbd4 to
acbc3cb
Compare
huangjeff5
force-pushed
the
feat/dotpromptz-python-handlebars
branch
from
October 2, 2026 02:37
a599e60 to
0bc8bd6
Compare
huangjeff5
force-pushed
the
ci/python-workflow-hardening
branch
from
October 2, 2026 02:37
acbc3cb to
0a83682
Compare
huangjeff5
force-pushed
the
feat/dotpromptz-python-handlebars
branch
from
October 2, 2026 02:45
0bc8bd6 to
8c7bf33
Compare
huangjeff5
force-pushed
the
ci/python-workflow-hardening
branch
from
October 2, 2026 02:45
0a83682 to
451584a
Compare
huangjeff5
force-pushed
the
feat/dotpromptz-python-handlebars
branch
from
October 2, 2026 02:49
8c7bf33 to
49be9bd
Compare
huangjeff5
force-pushed
the
ci/python-workflow-hardening
branch
from
October 2, 2026 02:49
451584a to
1fbd787
Compare
huangjeff5
force-pushed
the
feat/dotpromptz-python-handlebars
branch
from
October 2, 2026 02:52
49be9bd to
2a2fea2
Compare
huangjeff5
force-pushed
the
ci/python-workflow-hardening
branch
from
October 2, 2026 02:53
1fbd787 to
3b72740
Compare
huangjeff5
force-pushed
the
feat/dotpromptz-python-handlebars
branch
from
October 2, 2026 03:03
2a2fea2 to
1849ecd
Compare
huangjeff5
force-pushed
the
ci/python-workflow-hardening
branch
from
October 2, 2026 03:04
3b72740 to
519db81
Compare
huangjeff5
force-pushed
the
feat/dotpromptz-python-handlebars
branch
from
October 2, 2026 03:08
1849ecd to
d697e55
Compare
huangjeff5
force-pushed
the
ci/python-workflow-hardening
branch
from
October 2, 2026 03:08
519db81 to
6c0f2af
Compare
huangjeff5
force-pushed
the
feat/dotpromptz-python-handlebars
branch
from
October 2, 2026 03:16
d697e55 to
9965f7d
Compare
huangjeff5
force-pushed
the
ci/python-workflow-hardening
branch
from
October 2, 2026 03:16
6c0f2af to
9dbfd97
Compare
huangjeff5
force-pushed
the
feat/dotpromptz-python-handlebars
branch
from
October 2, 2026 03:24
9965f7d to
8f913ed
Compare
huangjeff5
force-pushed
the
ci/python-workflow-hardening
branch
from
October 2, 2026 03:24
9dbfd97 to
ed9c397
Compare
huangjeff5
force-pushed
the
feat/dotpromptz-python-handlebars
branch
from
October 2, 2026 03:38
8f913ed to
cc222dd
Compare
huangjeff5
force-pushed
the
ci/python-workflow-hardening
branch
from
October 2, 2026 03:38
ed9c397 to
4f01f65
Compare
huangjeff5
force-pushed
the
feat/dotpromptz-python-handlebars
branch
from
October 2, 2026 04:05
cc222dd to
9388c94
Compare
huangjeff5
force-pushed
the
ci/python-workflow-hardening
branch
from
October 2, 2026 04:05
4f01f65 to
77b4213
Compare
huangjeff5
force-pushed
the
feat/dotpromptz-python-handlebars
branch
from
October 2, 2026 04:08
9388c94 to
ab74177
Compare
huangjeff5
force-pushed
the
ci/python-workflow-hardening
branch
from
October 2, 2026 04:08
77b4213 to
74d9f96
Compare
huangjeff5
force-pushed
the
feat/dotpromptz-python-handlebars
branch
from
October 2, 2026 04:14
ab74177 to
e80f991
Compare
huangjeff5
force-pushed
the
ci/python-workflow-hardening
branch
from
October 2, 2026 04:14
74d9f96 to
17c4b38
Compare
huangjeff5
force-pushed
the
feat/dotpromptz-python-handlebars
branch
from
October 2, 2026 04:22
e80f991 to
8470ca9
Compare
huangjeff5
force-pushed
the
ci/python-workflow-hardening
branch
from
October 2, 2026 04:22
17c4b38 to
0c39190
Compare
huangjeff5
force-pushed
the
feat/dotpromptz-python-handlebars
branch
from
October 2, 2026 04:54
8470ca9 to
54d7248
Compare
Pin every action to a commit SHA, default the workflow token to contents: read, and stop persisting checkout credentials in the jobs that only read the repo. uv-lock-check keeps its credentials because it pushes lockfile commits back to release-please branches.
huangjeff5
force-pushed
the
ci/python-workflow-hardening
branch
from
October 2, 2026 04:54
0c39190 to
d7da1ae
Compare
Collaborator
Author
|
Absorbed into #620 so that all Python CI workflow hardening and SHA pinning land directly with the Handlebars package changes, resolving the GitHub Actions Scan findings. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #621 (which sits on #620). Moves the Python workflow hardening out of #620 so that PR only carries the Handlebars package.
Only
.github/workflows/python.ymlchanges:uses:is pinned to a commit SHA, with the tag in a trailing comment.contents: read.uv-lock-checkkeeps its job-levelcontents: writeandpull-requests: write.persist-credentials: falseon thecheck-pathsandpython-checkscheckouts.tj-actions/changed-filesmoves from v45 to v47.0.6.Decisions
tj-actions/changed-filescompromise retargeted existing tags to a commit that dumped CI secrets into logs. A SHA pin runs exactly the code that was reviewed.uv-lock-checkwrites, so it is the only job that asks for write.uv-lock-checkkeeps its checkout credentials: That job runsgit pushto commit regenerated lockfiles back torelease-please--*branches.persist-credentials: falsethere removes the token from the checkout and that push fails. The version of this change that was in feat(py)!: replace Rust handlebarrz with pure-Python dotpromptz-handlebars #620 had that bug.