Documentation
¶
Index ¶
- type Artifact
- type ArtifactReference
- type ArtifactScanOverview
- type ArtifactTag
- type ArtifactsData
- type BuildHistoryItem
- type Config
- type Instance
- type MockInstance
- func (_m *MockInstance) GetArtifact(ctx context.Context, projectName string, repositoryName string, ...) (*Artifact, error)
- func (_m *MockInstance) GetArtifacts(ctx context.Context, projectName string, repositoryName string, query string, ...) (*ArtifactsData, error)
- func (_m *MockInstance) GetBuildHistory(ctx context.Context, projectName string, repositoryName string, ...) ([]BuildHistoryItem, error)
- func (_m *MockInstance) GetName() string
- func (_m *MockInstance) GetProjects(ctx context.Context, page string, pageSize string) (*ProjectsData, error)
- func (_m *MockInstance) GetRepositories(ctx context.Context, projectName string, query string, page string, ...) (*RepositoriesData, error)
- func (_m *MockInstance) GetVulnerabilities(ctx context.Context, projectName string, repositoryName string, ...) (map[string]Vulnerability, error)
- type NewMockInstanceT
- type Project
- type ProjectsData
- type RepositoriesData
- type Repository
- type ResponseError
- type Vulnerability
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Artifact ¶
type Artifact struct {
Digest string `json:"digest"`
ExtraAttrs struct {
Architecture string `json:"architecture"`
Author string `json:"author"`
Config struct {
Cmd []string `json:"Cmd"`
Entrypoint []string `json:"Entrypoint"`
Env []string `json:"Env"`
ExposedPorts map[string]any `json:"ExposedPorts"`
Labels map[string]string `json:"Labels"`
User string `json:"User"`
WorkingDir string `json:"WorkingDir"`
} `json:"config"`
Created time.Time `json:"created"`
Os string `json:"os"`
} `json:"extra_attrs"`
Icon string `json:"icon"`
ID int64 `json:"id"`
ManifestMediaType string `json:"manifest_media_type"`
MediaType string `json:"media_type"`
ProjectID int64 `json:"project_id"`
PullTime time.Time `json:"pull_time"`
PushTime time.Time `json:"push_time"`
References []ArtifactReference `json:"references"`
RepositoryID int64 `json:"repository_id"`
ScanOverview map[string]ArtifactScanOverview `json:"scan_overview"`
Size int64 `json:"size"`
Tags []ArtifactTag `json:"tags"`
Type string `json:"type"`
}
Artifact is the structure of a single artifact returned by the Harbor API.
type ArtifactReference ¶
type ArtifactReference struct {
ChildDigest string `json:"child_digest"`
ChildID int64 `json:"child_id"`
ParentID int64 `json:"parent_id"`
Platform struct {
OsFeatures []string `json:"OsFeatures"`
Architecture string `json:"architecture"`
Os string `json:"os"`
} `json:"platform"`
Urls []string `json:"urls"`
}
type ArtifactScanOverview ¶
type ArtifactScanOverview struct {
CompletePercent int64 `json:"complete_percent"`
Duration int64 `json:"duration"`
EndTime time.Time `json:"end_time"`
ReportID string `json:"report_id"`
ScanStatus string `json:"scan_status"`
Severity string `json:"severity"`
StartTime time.Time `json:"start_time"`
}
type ArtifactTag ¶
type ArtifactsData ¶
ArtifactsData contains all the artifacts returned by the Harbor API and the total number of artifacts for pagination.
type BuildHistoryItem ¶
type Config ¶
type Config struct {
Address string `json:"address"`
Username string `json:"username"`
Password string `json:"password"`
Token string `json:"token"`
}
Config is the structure of the configuration for a single Harbor database instance.
type Instance ¶
type Instance interface {
GetName() string
GetProjects(ctx context.Context, page, pageSize string) (*ProjectsData, error)
GetRepositories(ctx context.Context, projectName, query, page, pageSize string) (*RepositoriesData, error)
GetArtifacts(ctx context.Context, projectName, repositoryName, query, page, pageSize string) (*ArtifactsData, error)
GetArtifact(ctx context.Context, projectName, repositoryName, artifactReference string) (*Artifact, error)
GetVulnerabilities(ctx context.Context, projectName, repositoryName, artifactReference string) (map[string]Vulnerability, error)
GetBuildHistory(ctx context.Context, projectName, repositoryName, artifactReference string) ([]BuildHistoryItem, error)
}
type MockInstance ¶
MockInstance is an autogenerated mock type for the Instance type
func NewMockInstance ¶
func NewMockInstance(t NewMockInstanceT) *MockInstance
NewMockInstance creates a new instance of MockInstance. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
func (*MockInstance) GetArtifact ¶
func (_m *MockInstance) GetArtifact(ctx context.Context, projectName string, repositoryName string, artifactReference string) (*Artifact, error)
GetArtifact provides a mock function with given fields: ctx, projectName, repositoryName, artifactReference
func (*MockInstance) GetArtifacts ¶
func (_m *MockInstance) GetArtifacts(ctx context.Context, projectName string, repositoryName string, query string, page string, pageSize string) (*ArtifactsData, error)
GetArtifacts provides a mock function with given fields: ctx, projectName, repositoryName, query, page, pageSize
func (*MockInstance) GetBuildHistory ¶
func (_m *MockInstance) GetBuildHistory(ctx context.Context, projectName string, repositoryName string, artifactReference string) ([]BuildHistoryItem, error)
GetBuildHistory provides a mock function with given fields: ctx, projectName, repositoryName, artifactReference
func (*MockInstance) GetName ¶
func (_m *MockInstance) GetName() string
GetName provides a mock function with given fields:
func (*MockInstance) GetProjects ¶
func (_m *MockInstance) GetProjects(ctx context.Context, page string, pageSize string) (*ProjectsData, error)
GetProjects provides a mock function with given fields: ctx, page, pageSize
func (*MockInstance) GetRepositories ¶
func (_m *MockInstance) GetRepositories(ctx context.Context, projectName string, query string, page string, pageSize string) (*RepositoriesData, error)
GetRepositories provides a mock function with given fields: ctx, projectName, query, page, pageSize
func (*MockInstance) GetVulnerabilities ¶
func (_m *MockInstance) GetVulnerabilities(ctx context.Context, projectName string, repositoryName string, artifactReference string) (map[string]Vulnerability, error)
GetVulnerabilities provides a mock function with given fields: ctx, projectName, repositoryName, artifactReference
type NewMockInstanceT ¶
type Project ¶
type Project struct {
Name string `json:"name"`
Deleted bool `json:"deleted"`
RepoCount int64 `json:"repo_count"`
ChartCount int64 `json:"chart_count"`
ProjectID int64 `json:"project_id"`
RegistryID int64 `json:"registry_id"`
Metadata struct {
EnableContentTrust string `json:"enable_content_trust"`
AutoScan string `json:"auto_scan"`
Severity string `json:"severity"`
Public string `json:"public"`
ReuseSysCveAllowlist string `json:"reuse_sys_cve_allowlist"`
PreventVul string `json:"prevent_vul"`
RetentionID string `json:"retention_id"`
} `json:"metadata"`
}
Project is the structure for a project returned by the Harbor API.
type ProjectsData ¶
ProjectsData contains all the projects returned by the Harbor API and the total number of projects for pagination. The total number of projects is returned via the "x-total-count" header from teh API.
type RepositoriesData ¶
type RepositoriesData struct {
Repositories []Repository `json:"repositories"`
Total int64 `json:"total"`
}
RepositoriesData contains all the repositories returned by the Harbor API and the total number of repositories for pagination.
type Repository ¶
type Repository struct {
ArtifactCount int64 `json:"artifact_count"`
ID int64 `json:"id"`
Name string `json:"name"`
ProjectID int64 `json:"project_id"`
PullCount int64 `json:"pull_count"`
CreationTime string `json:"creation_time"`
UpdateTime time.Time `json:"update_time"`
}
Repository is the structure of a single repository returned by the Harbor API.
type ResponseError ¶
type ResponseError struct {
Errors []struct {
Code string `json:"code"`
Message string `json:"message"`
} `json:"errors"`
}
ResponseError is the structure for a failed Harbor API request.
type Vulnerability ¶
type Vulnerability struct {
GeneratedAt time.Time `json:"generated_at"`
Scanner struct {
Name string `json:"name"`
Vendor string `json:"vendor"`
Version string `json:"version"`
} `json:"scanner"`
Severity string `json:"severity"`
Vulnerabilities []struct {
ID string `json:"id"`
Package string `json:"package"`
Version string `json:"version"`
FixVersion string `json:"fix_version"`
Severity string `json:"severity"`
Description string `json:"description"`
Links []string `json:"links"`
ArtifactDigests []string `json:"artifact_digests"`
} `json:"vulnerabilities"`
}