ci: declare workflow-level contents: read on the 9 python-N.yml build workflows#297
ci: declare workflow-level contents: read on the 9 python-N.yml build workflows#297arpitjain099 wants to merge 1 commit into
contents: read on the 9 python-N.yml build workflows#297Conversation
… workflows Pins the default GITHUB_TOKEN to contents: read on the per-Python- version build workflows. Each runs sphinx-build against the translated rst files and uploads the rendered HTML as a workflow artifact, with no GitHub API mutation. Motivation: CVE-2025-30066 (March 2025 tj-actions/changed-files compromise) exfiltrated GITHUB_TOKEN from workflow logs. Per-workflow caps bound runtime authority irrespective of repo or org default, give drift protection if the default ever widens, and are credited per-file by the OpenSSF Scorecard Token-Permissions check. YAML validated locally with yaml.safe_load. Signed-off-by: Arpit Jain <arpitjain099@gmail.com>
|
None of this project's workflows use |
|
Considering that the reason for the PR doesn't match the repository and I received no reply, I'm unable to move forward with the proposal. I can't help to think this is is a job of AI. Hence, I'm closing this pull request. |
|
Hey @rffontenelle, sorry for the delay and for the PR not framing itself well enough up front. We've all been fairly heads-down on actual supply-chain incidents lately (myself included). Friday was a long work day on that front, and I'm in Japan so by the time your first comment came in I was already AFK for the weekend. Not AI generated, just bad timing on the response. On the substance you're right, no workflow in this repo currently uses The 9 workflows here each pull in third-party actions ( This is also what the OpenSSF Scorecard If the project's stance is "we don't want preventive hardening on workflows that aren't currently broken", close is the right call and I respect that. If it was more "the PR didn't explain its rationale well enough", happy to amend the body and have it reopened. Either way, sorry again for the delayed response. |
|
One more bit on the timing piece: I contribute to open source on my own time (no employer behind it), so my response cadence depends on what evenings and weekends look like in JST. The gap between your first comment (2026-05-14 23:29 UTC) and the close (2026-05-15 16:11 UTC) was under 17 hours, which mostly overlapped my work day plus sleep here. That's not really enough of a window for a volunteer in a different timezone to see the notification, evaluate the question, and write a substantive reply. Not asking to reverse the close, that's your call as maintainer. Just a small request for future "no reply" closures on volunteer-contributor PRs: a few days of latency before closing would give better odds of an actual reply landing first. We're all spinning the OSS wheel on personal time on both sides. |
Pins the default
GITHUB_TOKENtocontents: readon the per-Python-version build workflows:python-37.ymlthroughpython-315.yml. Each runs sphinx-build against the translated rst files and uploads the rendered HTML as a workflow artifact, with no GitHub API mutation.Why
CVE-2025-30066 (March 2025
tj-actions/changed-filessupply-chain compromise) exfiltratedGITHUB_TOKENfrom workflow logs and the leaked token retained whatever scope was issued at the workflow level. Pinning per workflow caps that runtime authority irrespective of the repo or org default, gives drift protection if the default ever widens, and is credited per-file by the OpenSSF ScorecardToken-Permissionscheck.YAML validated locally with
yaml.safe_loadon each touched file.