...

Package monocular

import "helm.sh/helm/v3/internal/monocular"
Overview
Index

Overview ▾

Package monocular contains the logic for interacting with a Monocular compatible search API endpoint. For example, as implemented by the Artifact Hub.

This is a library for interacting with a monocular compatible search API

Constants

SearchPath is the url path to the search API in monocular.

const SearchPath = "api/chartsvc/v1/charts/search"

Variables

ErrHostnameNotProvided indicates the url is missing a hostname

var ErrHostnameNotProvided = errors.New("no hostname provided")

type ArtifactHub

ArtifactHub represents data specific to Artifact Hub instances

type ArtifactHub struct {
    PackageURL string `json:"packageUrl"`
}

type Chart

Chart is the attributes for the chart

type Chart struct {
    Name        string             `json:"name"`
    Repo        Repo               `json:"repo"`
    Description string             `json:"description"`
    Home        string             `json:"home"`
    Keywords    []string           `json:"keywords"`
    Maintainers []chart.Maintainer `json:"maintainers"`
    Sources     []string           `json:"sources"`
    Icon        string             `json:"icon"`
}

type ChartVersion

ChartVersion provides the specific data on the chart version

type ChartVersion struct {
    Version    string    `json:"version"`
    AppVersion string    `json:"app_version"`
    Created    time.Time `json:"created"`
    Digest     string    `json:"digest"`
    Urls       []string  `json:"urls"`
    Readme     string    `json:"readme"`
    Values     string    `json:"values"`
}

type Client

Client represents a client capable of communicating with the Monocular API.

type Client struct {

    // The base URL for requests
    BaseURL string

    // The internal logger to use
    Log func(string, ...interface{})
}

func New

func New(u string) (*Client, error)

New creates a new client

func (*Client) Search

func (c *Client) Search(term string) ([]SearchResult, error)

Search performs a search against the monocular search API

type LatestChartVersion

LatestChartVersion provides the details on the latest version of the chart

type LatestChartVersion struct {
    Data  ChartVersion `json:"data"`
    Links Links        `json:"links"`
}

Links provides a set of links relative to the chartsvc base

type Links struct {
    Self string `json:"self"`
}

type Relationships

Relationships provides information on the latest version of the chart

type Relationships struct {
    LatestChartVersion LatestChartVersion `json:"latestChartVersion"`
}

type Repo

Repo contains the name in monocular the url for the repository

type Repo struct {
    Name string `json:"name"`
    URL  string `json:"url"`
}

type SearchResult

SearchResult represents an individual chart result

type SearchResult struct {
    ID            string        `json:"id"`
    ArtifactHub   ArtifactHub   `json:"artifactHub"`
    Type          string        `json:"type"`
    Attributes    Chart         `json:"attributes"`
    Links         Links         `json:"links"`
    Relationships Relationships `json:"relationships"`
}