Action Required: github-proxy.com Shutdown


The github-proxy.com was created previously to Blueprints, load branches, pull requests, and commits on GitHub without CORS issues and add a dynamic packaging functionality. This service is hosted and maintained by a community contributor, Christoph Khouri, and he will end this service at the beginning of 2026 (but your Blueprints are safe).

The good news: The Playground team has introduced an automatic migration layer in WordPress Playground. If your Blueprints currently rely on github-proxy.com, they will continue to work automatically.

What is changing?

When Playground encounters a github-proxy.com URL in a Blueprint, it will now automatically rewrite it to use native Playground resources like git:directory.

Your Blueprints will continue to work, but you’ll see a console warning to update them. Update your Blueprints to use native resources for future compatibility and to remove these warnings.

How to migrate

The automatic migration handles several patterns:

github-proxy.com pattern Migrates to
?repo=owner/name zip wrapping git:directory at HEAD
?repo=...&branch=trunk zip wrapping git:directory with branch ref
?repo=...&pr=123 zip wrapping git:directory with refs/pull/123/head
?repo=...&commit=abc zip wrapping git:directory with commit ref
?repo=...&release=v1.0 zip wrapping git:directory with tag ref
?repo=...&directory=subdir zip wrapping git:directory with path
?repo=...&release=v1.0&asset=file.zip url to GitHub releases download
?repo=...&release=latest&asset=file.zip url to GitHub /releases/latest/download/
https://github-proxy.com/https://... url with the inner GitHub URL

Here is how you can update your Blueprints to match the native implementation:

1. Repositories, Branches, and Pull Requests

The old proxy returned a ZIP file of a repository. You can now achieve this natively using the git:directory resource.

Old:

{
    "resource": "url",
    "url": "https://github-proxy.com/proxy/?repo=user/repo&branch=main"
}

New:
Use the git:directory resource directly in your steps (like installPlugin or installTheme).

{
    "step": "installPlugin",
    "pluginData": {
        "resource": "git:directory",
        "url": "https://github.com/my-user/my-repo",
        "ref": "main"
    }
}

You can target specific commits or pull requests using the ref property:

  • Pull request: "ref": "refs/pull/123/head"
  • Commit: "ref": "abcdef123456..."

2. Release Assets

If you were using the proxy to fetch a specific asset (like a plugin zip) from a GitHub release, you can now use the resource zip with an inner object.

Old:

{
    "resource": "url",
    "url": "https://github-proxy.com/proxy/?repo=user/repo&release=v1.0&asset=plugin.zip"
}

New:

{

  "resource": "zip",
  "inner": {
    "resource": "git:directory",
    "url": "https://github.com/owner/repo",
    "ref": "main"
  }
}

Why is this better?

The proxy was vital in Playground’s early days. Recent infrastructure improvements, Playground’s built-in CORS proxy, and Git over HTTP support now enable native GitHub repository access. This removes the dependency on third-party services and improves stability.

A huge thank you to Christoph for keeping this service running and stable over the past years. It played a massive role in making Playground useful early on.

Please check your Blueprints today. If you have any questions, please get in touch with the Playground Team via the #playground Slack channel.