GitHub fetcher GitHub issue

A specialized fetcher in %puck.sources that recognizes GitHub URLs and handles the GitHub-specific shape (web URL → raw URL translation). Most publishers will host classes on GitHub; this fetcher makes that work without ceremony.

vibecode
{"vibecode": {
    "doc": "github_fetcher",
    "role": "spec sketch for a specialized fetcher that handles GitHub-hosted classes — recognizes github.com and raw.githubusercontent.com URLs, translates web URLs to raw URLs, fetches the bytes",
    "status": "sketch",
    "key_concepts": ["specialized_fetcher_for_github",
        "web_url_to_raw_url_translation",
        "participates_in_puck_sources_chain"],
    "related": ["requirements/caspian/downloads/ (fetcher framework)",
        "requirements/caspian/downloads/caching/ (where verified bytes land)",
        "requirements/caspian/downloads/blockchain/ (signature source)"]
}}

What it does GitHub issue

The GitHub fetcher recognizes two URL shapes:

When the fetcher matches a %puck[url] lookup against either form:

  1. If the URL is the web form, translate it to the raw form (drop the /blob/ segment, swap the host).
  2. Fetch the bytes from the raw URL via HTTPS.
  3. Return the bytes to the engine for verification (per the cache verification flow).

The signature check is the engine's concern, not the fetcher's. The fetcher just hands over bytes.

Why a specialized fetcher GitHub issue

A generic HTTPS fetcher could already handle raw.githubusercontent.com URLs — the bytes are just served over HTTPS. The reason to specialize:

Open GitHub issue

Sketch-level for now. Things to settle as the design matures:

See also GitHub issue


© 2026 Puck.uno