harborapi

package
v0.0.0-...-f053077 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 22, 2022 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type API

type API interface {
	Artifact() ArtifactAPI
}

func New

func New(client *resty.Client) API

type APIImpl

type APIImpl struct {
	// contains filtered or unexported fields
}

func (*APIImpl) Artifact

func (api *APIImpl) Artifact() ArtifactAPI

type Artifact

type Artifact struct {
	ID           int64        `json:"id"`
	Digest       string       `json:"digest"`
	Size         int64        `json:"size,omitempty"`
	PushTime     time.Time    `json:"push_time,omitempty"`
	PullTime     time.Time    `json:"pull_time,omitempty"`
	Icon         string       `json:"icon,omitempty"`
	RepositoryID int64        `json:"repository_id,omitempty"`
	ProjectID    int64        `json:"project_id,omitempty"`
	Type         string       `json:"type,omitempty"`
	ScanOverview ScanOverview `json:"scan_overview,omitempty"`
}

type ArtifactAPI

type ArtifactAPI interface {
	Scan(project, repositoryName, artifactName string) error
	Get(project, repositoryName, artifactName string) (*Artifact, error)
	GetFromTag(project, repositoryName, tagName string) (*Artifact, error)
	GetVulnerabilities(project, repositoryName, artifactName string) (VulnerabilityReportResponse, error)
	Delete(project, repositoryName, artifactName string) error
	AddTag(project, repository, artifact, tag string) error
	DeleteTag(project, repository, artifact, tag string) error
	GetTags(project, repository, artifact string) (listTags []Tag, err error)
}

func NewArtifactAPI

func NewArtifactAPI(client *resty.Client) ArtifactAPI

type ArtifactAPIImpl

type ArtifactAPIImpl struct {
	// contains filtered or unexported fields
}

func (*ArtifactAPIImpl) AddTag

func (api *ArtifactAPIImpl) AddTag(project, repository, artifact, tagName string) error

func (*ArtifactAPIImpl) Delete

func (api *ArtifactAPIImpl) Delete(project, repositoryName, artifactName string) error

func (*ArtifactAPIImpl) DeleteTag

func (api *ArtifactAPIImpl) DeleteTag(project, repository, artifact, tagName string) error

func (*ArtifactAPIImpl) Get

func (api *ArtifactAPIImpl) Get(project, repositoryName, artifactName string) (*Artifact, error)

func (*ArtifactAPIImpl) GetFromTag

func (api *ArtifactAPIImpl) GetFromTag(project, repositoryName, tagName string) (*Artifact, error)

func (*ArtifactAPIImpl) GetTags

func (api *ArtifactAPIImpl) GetTags(project, repository, artifact string) (listTags []Tag, err error)

func (*ArtifactAPIImpl) GetVulnerabilities

func (api *ArtifactAPIImpl) GetVulnerabilities(project, repositoryName, artifactName string) (VulnerabilityReportResponse, error)

func (*ArtifactAPIImpl) Scan

func (api *ArtifactAPIImpl) Scan(project, repositoryName, artifactName string) error

type NativeReportSummary

type NativeReportSummary struct {
	Description     string                `json:"description,omitempty"`
	StartTime       time.Time             `json:"start_time,omitempty"`
	ScanStatus      string                `json:"scan_status,omitempty"`
	CompletePercent int64                 `json:"complete_percent,omitempty"`
	EndTime         time.Time             `json:"end_time,omitempty"`
	ReportID        string                `json:"report_id,omitempty"`
	Severity        string                `json:"severity,omitempty"`
	Duration        int64                 `json:"duration,omitempty"`
	Scanner         *Scanner              `json:"scanner,omitempty"`
	Summary         *VulnerabilitySummary `json:"summary,omitempty"`
}

type ScanOverview

type ScanOverview map[string]*NativeReportSummary

type Scanner

type Scanner struct {
	Version string `json:"version,omitempty"`
	Vendor  string `json:"vendor,omitempty"`
	Name    string `json:"name,omitempty"`
}

type Tag

type Tag struct {
	ID           int64     `json:"id,omitempty"`
	ArtifactID   int64     `json:"artifact_id,omitempty"`
	RepositoryID int64     `json:"repository_id,omitempty"`
	Name         string    `json:"name"`
	Immutable    bool      `json:"immutable,omitempty"`
	Signed       bool      `json:"signed,omitempty"`
	PullTime     time.Time `json:"pull_time,omitempty"`
	PushTime     time.Time `json:"push_time,omitempty"`
}

type Vulnerability

type Vulnerability struct {
	ID          string   `json:"id,omitempty"`
	Package     string   `json:"package,omitempty"`
	Version     string   `json:"version,omitempty"`
	FixVersion  string   `json:"fix_version,omitempty"`
	Severity    string   `json:"severity,omitempty"`
	Description string   `json:"description,omitempty"`
	Links       []string `json:"links,omitempty"`
}

type VulnerabilityReport

type VulnerabilityReport struct {
	GeneratedAt     time.Time        `json:"generated_at,omitempty"`
	Scanner         *Scanner         `json:"scanner,omitempty"`
	Severity        string           `json:"severity,omitempty"`
	Vulnerabilities []*Vulnerability `json:"vulnerabilities,omitempty"`
}

type VulnerabilityReportResponse

type VulnerabilityReportResponse map[string]*VulnerabilityReport

type VulnerabilitySummary

type VulnerabilitySummary struct {
	Description string           `json:"description,omitempty"`
	Fixable     int64            `json:"fixable,omitempty"`
	Total       int64            `json:"total,omitempty"`
	Summary     map[string]int64 `json:"summary,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL