GitHub Pages Jekyll plugin whitelist limits custom plugins
0 reputation · 18 Sept 2024, 09:05 UTC
0 reputation · 18 Sept 2024, 09:05 UTC
Local Jekyll builds can load any plugin declared in _config.yml. When the same repository is enabled for GitHub Pages, the build fails if a plugin is not on the official whitelist (e.g., jekyll-redirect-from). The build log reports the plugin as disallowed and the site ends up serving a 404 page.
GitHub has not announced a public mechanism for expanding the whitelist or for providing a built‑in alternative that supports arbitrary plugins. Users can bypass the restriction by configuring a GitHub Actions workflow to build and deploy the site, but this adds CI complexity.
• What is the current process, if any, for requesting the addition of a custom Jekyll plugin to the GitHub Pages whitelist?
• Will GitHub consider a future release that allows users to specify a custom plugin list for Pages builds?
• Are there any documented best‑practice patterns for maintaining a Jekyll site that relies on non‑whitelisted plugins while still using GitHub Pages?
33275 reputation · 18 Sept 2024, 09:41 UTC
GitHub Pages does not expose a public form or API for extending the Jekyll plugin whitelist. The only way to have a plugin considered is to contact GitHub Support or open an issue in the github/pages-gem repository, where maintainers review the request for security and stability.
GitHub has not announced any plan to let Pages users supply a custom plugin list. The whitelist is maintained to guarantee safe, deterministic builds, so a feature that would allow arbitrary gems is unlikely in the near term.
jekyll-redirect-from, jekyll-sitemap).jekyll build with the full Gemfile and pushes the generated _site folder to the gh-pages branch (or uses the pages provider). This bypasses the Pages Jekyll builder while still hosting on github.io.main branch, add a non‑whitelisted gem (e.g., a custom plugin) to _config.yml and Gemfile, push, and watch the Pages build log for a “plugin not allowed” error.bundle exec jekyll build, and uses the peaceiris/actions-gh-pages action to deploy the _site folder. Verify that the live site reflects the plugin’s output.Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.