Skip to content

Add FetchCode support for oci #173

@pombredanne

Description

@pombredanne

An oci://... or pkg:oci/... PURL refers to a container image that conforms to the Open Container Initiative (OCI) image specification. Like Docker images, OCI artifacts are stored and distributed as separate blobs over an API - not a single file.

Key reasons:

Spec-compliant registries: OCI images must be fetched using the OCI Distribution Spec, which requires reading manifests and downloading blobs via digest.

Registries vary: There’s no universal registry or URL format-ghcr.io, quay.io, and gcr.io all differ.

Complex structure: You must:

Fetch the manifest

Retrieve each layer blob

Resolve any associated artifacts (e.g., signatures, SBOMs)

Tooling is required: Use tools like oras, skopeo, or crane to pull artifacts - a single wget URL simply doesn’t exist.

So, like Docker, an OCI PURL also cannot be resolved to a direct download link without orchestrating a registry-aware client process.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions