Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

fix: harden GitHub Actions workflows#13178

Open
dagecko wants to merge 1 commit into
EbookFoundation:mainEbookFoundation/free-programming-books:mainfrom
dagecko:runner-guard/fix-ci-securitydagecko/free-programming-books:runner-guard/fix-ci-securityCopy head branch name to clipboard
Open

fix: harden GitHub Actions workflows#13178
dagecko wants to merge 1 commit into
EbookFoundation:mainEbookFoundation/free-programming-books:mainfrom
dagecko:runner-guard/fix-ci-securitydagecko/free-programming-books:runner-guard/fix-ci-securityCopy head branch name to clipboard

Conversation

@dagecko
Copy link
Copy Markdown

@dagecko dagecko commented Mar 30, 2026

Re-submission of #13155. Had a problem with my fork and had to delete it, which closed the original PR. Apologies for the noise.

Summary

This PR pins all GitHub Actions to immutable commit SHAs instead of mutable version tags and extracts any unsafe expressions from run blocks into env mappings.

How to verify

Review the diff, each change is mechanical and preserves workflow behavior:

  • SHA pinning: action@v3 becomes action@abc123 # v3, original version preserved as comment
  • No workflow logic, triggers, or permissions are modified

I've been researching CI/CD supply chain attack vectors and submitting fixes to affected repos. Based on that research I built a scanner called Runner Guard and open sourced it here so you can scan yourself if you want to. I'll be posting more advisories over the next few weeks on Twitter if you want to stay in the loop.

If you have any questions, reach out. I'll be monitoring comms.

- Chris (dagecko)

Copy link
Copy Markdown
Contributor

@Thenlie Thenlie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Definitely a good practice. Need to see how this works with Dependabot but I don't think that is a reason to block the PR.

@github-actions
Copy link
Copy Markdown

'This Pull Request has been automatically marked as stale because it has not had recent activity during last 60 days 😴

It will be closed in 30 days if no further activity occurs. To unstale this PR, draft it, remove stale label, comment with a detailed explanation or push more commits.

There can be many reasons why some specific PR has no activity. The most probable cause is lack of time, not lack of interest.

Thank you for your patience ❤️'

@github-actions github-actions Bot added stale Requests that have not had recent interaction (Out-of-Date) conflicts Conflict(s) need to be resolved labels May 30, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 4, 2026

Oh no 😟! Conflicts have been found.

Please 🙏, take a moment and address the merge conflicts of your pull request before we can evaluate it again.

Thanks in advance for your effort and patience ❤️!

@github-actions github-actions Bot removed the stale Requests that have not had recent interaction (Out-of-Date) label Jun 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

conflicts Conflict(s) need to be resolved

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.