The Publish Social Snippets workflow was paused because it was consuming too many GitHub Actions minutes on ubuntu-latest. The publisher itself is already local Python code and already reads all platform secrets from the job environment, so the cheaper fix is to move the job onto a self-hosted runner instead of rewriting the publishing path.
Run the existing social publishing workflow on a self-hosted macOS GitHub Actions runner while preserving the current publisher script, snippet format, and secret handling.
publish_social.yml.scripts/publish_social.py.The workflow stays in GitHub Actions, but the compute moves to a Mac that the user owns and registers as a self-hosted runner. The job can keep using the existing environment secrets, because those secrets are injected by GitHub at runtime, not stored in the runner.
The workflow should use a broad macOS runner selector such as self-hosted plus macOS so it can run on the user’s registered machine without baking in a machine-specific hostname. The existing workflow_dispatch inputs stay intact for manual runs. The schedule should be restored to the previous daily cadence so new published snippets are picked up automatically.
contents: write and pull-requests: write because the publisher still marks snippets as published and opens a metadata PR..github/workflows/publish_social.ymldocs/self-hosted-social-runner.mdREADME.mdpublish_social.yml runs on a self-hosted macOS runner instead of ubuntu-latest.workflow_dispatch runs still work.