Lookups

On-demand GitHub source materialization

Changed on

Resolves a GitHub org/repo coordinate to a registry source. Idempotent — if the source already exists, returns it with status: "existing"; otherwise probes GitHub, inserts a hidden on_demand source row (and a new on_demand org when no curated org claims the segment), and ingests up to 100 releases.

Negative results (not_found, empty) are cached in KV (24h and 6h respectively) so repeat probes don't re-hit GitHub. deferred outcomes (rate-limit, 5xx) are not cached and let the next cron pass retry.

Body requires provider: "github" — other providers are explicitly rejected, not silently accepted. Coordinate must match {org}/{repo} (case-insensitive; URLs are deduped via LOWER(sources.url)).

post/lookups

Request

  • Base URL: https://api.releases.sh
  • URL: https://api.releases.sh/lookups
  • Auth: HTTP bearer

Response

Lookup result. Inspect status to disambiguate outcomes.

status'indexed' | 'existing' | 'empty' | 'not_found' | 'deferred' required

Changes

    • breaking

      the response property // became nullable for the status

    • breaking

      the response property // became nullable for the status

    • breaking

      the response property // became nullable for the status

    • breaking

      the response property / became nullable for the status

    • breaking

      the response property / became nullable for the status

    • breaking

      the response property / became nullable for the status

    • breaking

      the response property / became nullable for the status

    • breaking

      the response property / became nullable for the status

    • info

      response property releases/items/publishedAt list-of-types was narrowed by removing types null from media type application/json of response 200

    • info

      response property releases/items/url list-of-types was narrowed by removing types null from media type application/json of response 200

    • info

      response property releases/items/version list-of-types was narrowed by removing types null from media type application/json of response 200

    • info

      response property source/isHidden list-of-types was narrowed by removing types null from media type application/json of response 200

    • info

      response property source/metadata list-of-types was narrowed by removing types null from media type application/json of response 200

    • info

      response property source/orgId list-of-types was narrowed by removing types null from media type application/json of response 200

    • info

      response property source/productId list-of-types was narrowed by removing types null from media type application/json of response 200

    • info

      response property source/starsFetchedAt list-of-types was narrowed by removing types null from media type application/json of response 200

    • warning

      added the new too_large enum value to the / response property for the response status