151 points gslin 4 hours ago 27 comments
Already__Taken 4 hours ago | parent
IMO Github should make Immutable tags mandatory to publish on https://github.com/marketplace
woodruffw 4 hours ago | parent
(The previous way to provide general actions immutability, i.e. hash-pinning, had this issue and thus required additional checks.)
OptionOfT 3 hours ago | parent
As the consumer of an action that becomes really hard to find out unless I take the whole codebase apart.
chrisweekly 3 hours ago | parent
SchemaLoad 4 hours ago | parent
comradesmith 1 hour ago | parent
ezekg 4 hours ago | parent
eddythompson80 4 hours ago | parent
computerfriend 2 hours ago | parent
woodruffw 4 hours ago | parent
- They only lock normal action calls. If your workflows invoke other reusable workflows, you need to keep those hash-pinned manually for now.
- Composite actions are not themselves locked. Instead, they get locked transitively through their callsites i.e. the workflows that call them. This makes any individual caller that uses lockfiles safe, but it also makes the current `gh actions-lock` default unsafe (since it removes hash-pins from the composite action itself, meaning that any external caller that invokes the action loses their transitive pinning).
- Other forms of `uses:` clauses, like Docker images, are also not currently locked via the lockfile. And the same for forms of interior mutability (like an action running `npx ...` under the hood, although the latter is fully outside of GitHub's control to prevent. But these mean that you can't assume that a fully locked Actions setup is in fact 100% immutable.
I hope they address these gaps soon, because it's otherwise an excellent (and long-awaited) feature.
lukasschwab 3 hours ago | parent
Arbortheus 2 hours ago | parent
But with a lockfile, direct and indirect dependencies both get pinned. (I presume, and haven’t checked yet, but otherwise this feature would be useless)
esafak 1 hour ago | parent
Use the gh actions-lock extension for the GitHub CLI to generate .github/workflows/actions.lock for actions and their transitive dependencies.
https://github.blog/changelog/2026-10-28-github-actions-work...aleaph 3 hours ago | parent
OptionOfT 3 hours ago | parent
sleepytimetea 1 hour ago | parent
edelbitter 23 minutes ago | parent
So some of the extra steps are meaningful. Though I am still not convinced they could not have been implemented in a deliberately backwards-incompatible way to Github action in general, keeping the syntax and removing only the special case that is never both intentional and non-malicious at the same time.
gbraad 3 hours ago | parent
latexr 2 hours ago | parent
Personally I found the risk of running someone else’s GitHub Action in my repo to not be worth it. Even GitHub’s own Action to checkout repos is way more complex than I need it to be and last I checked had dependencies which could be targeted. I opt instead to not run any third-party Actions (not even GitHub’s official ones) in my repos.
klodolph 2 hours ago | parent
carterschonwald 2 hours ago | parent
transitivebs 38 minutes ago | parent
edelbitter 30 minutes ago | parent
numbsafari 5 minutes ago | parent
/s
This is a step in the right direction, but it’s not even close to a complete solution. And what am I doing installing a plugin to use this? It should just be part of GH, so I can install that and not have yet another source of dependency management to lock down.