v1alpha1

package
v0.12.0 Latest Latest
Warning

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

Go to latest
Published: Jun 24, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package v1alpha1 stores definitions and methods to handle code quality definitions, results +kubebuilder:object:generate=true +k8s:deepcopy-gen=package +groupName=codequality.pkg.katanomi.dev

Index

Constants

View Source
const (

	// Reliability metrics is based on the number of bugs
	// found during code analysis
	CodeRatingTypeReliability = "Reliability"
	// Vunerability metrics is based on the number of security issues
	// found during code analysis
	CodeRatingTypeVunerability = "Vunerability"
	// Maintainability metrics is based on the number of code smells
	// found during code analysis
	CodeRatingTypeMaintainability = "Maintainability"
	// SecurityHotspots metrics is based on the number of possible security issues
	// found during code analysis
	CodeRatingTypeSecurityHotspots = "SecurityHotspots"

	// Succeeded alias for  metav1alpha1.SucceededReason
	Succeeded = metav1alpha1.SucceededReason
	// Failed alias for  metav1alpha1.FailedReason
	Failed = metav1alpha1.FailedReason
)
View Source
const (
	// CodeRatingRateA A rating
	CodeRatingRateA = "A"
	// CodeRatingRateB B rating
	CodeRatingRateB = "B"
	// CodeRatingRateC C rating
	CodeRatingRateC = "C"
	// CodeRatingRateD D rating
	CodeRatingRateD = "D"
	// CodeRatingRateE E rating
	CodeRatingRateE = "E"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "codequality.pkg.katanomi.dev", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func PassedTestsRate

func PassedTestsRate(t *TestResult) string

PassedTestsRate rate of passed tests calculated using passed / (passed + failed) * 100, i.e 96.54 if input t is nil, will return "0.00"

Types

type AnalisysMetrics

type AnalisysMetrics struct {
	// Branch store rate metrics for current
	Branch *CodeChangeMetrics `json:"branch"`

	// Target stores target branch data
	// only populated when using a Pull Request
	// +optional
	Target *CodeChangeMetrics `json:"target,omitempty"`

	// Ratings resulted from code scan analysis
	// stores one rating type as an item
	// using the key as unique identifier for the rating type
	Ratings map[string]AnalysisRating `json:"ratings,omitempty"`

	// Languages detected in code base
	// +optional
	Languages []string `json:"languages"`

	// CodeSize based on scanned code base
	CodeSize *CodeSize `json:"codeSize"`
}

AnalisysMetrics b

func (*AnalisysMetrics) DeepCopy

func (in *AnalisysMetrics) DeepCopy() *AnalisysMetrics

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalisysMetrics.

func (*AnalisysMetrics) DeepCopyInto

func (in *AnalisysMetrics) DeepCopyInto(out *AnalisysMetrics)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (AnalisysMetrics) GetObjectWithValues

func (AnalisysMetrics) GetObjectWithValues(ctx context.Context, path *field.Path, values map[string]string) (result *AnalisysMetrics)

GetObjectWithValues inits an object based on a json.path values map returns nil if values is nil

func (*AnalisysMetrics) IsEmpty

func (a *AnalisysMetrics) IsEmpty() bool

IsEmpty returns true if is nil or is empty

type AnalysisRating

type AnalysisRating struct {
	// Rate describe the analysis rate, such as:
	// - A
	// - B
	// - C
	// - D
	// - E
	Rate string `json:"rate"`

	// IssuesCount stores the related issues number
	// for the analyzed metric
	IssuesCount int `json:"issues"`
}

AnalysisRating ratings by type supports adding customized types Rate describe the analysis rate, such as: - A - B - C - D - E IssuesCount stores the related issues number

func (*AnalysisRating) DeepCopy

func (in *AnalysisRating) DeepCopy() *AnalysisRating

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisRating.

func (*AnalysisRating) DeepCopyInto

func (in *AnalysisRating) DeepCopyInto(out *AnalysisRating)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (AnalysisRating) GetObjectWithValues

func (AnalysisRating) GetObjectWithValues(ctx context.Context, path *field.Path, values map[string]string) (result *AnalysisRating)

GetObjectWithValues inits an object based on a json.path values map returns nil if values is nil

type AnalysisResult

type AnalysisResult struct {
	// Result of the code analysis:
	//  - Succeeded: successful code analysis with passing quality gates
	//  - Failed: failed code analysis
	//  - Canceled: canceled code analysis due to canceled task
	// +optional
	Result string `json:"result,omitempty"`
	// ReportURL for analyzed code revision
	// +optional
	ReportURL string `json:"reportURL,omitempty"`
	// TaskID of the performed analysis
	// +optional
	TaskID string `json:"taskID,omitempty"`
	// ProjectID for code analysis tool
	// +optional
	ProjectID string `json:"projectID,omitempty"`

	// Metrics for code analysis
	Metrics *AnalisysMetrics `json:"metrics,omitempty"`
}

AnalysisResult stores the result of a code analysis performed storing the specific Result, the remote report address, the specific task id used for the project id, with optional metrics

func (*AnalysisResult) DeepCopy

func (in *AnalysisResult) DeepCopy() *AnalysisResult

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisResult.

func (*AnalysisResult) DeepCopyInto

func (in *AnalysisResult) DeepCopyInto(out *AnalysisResult)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (AnalysisResult) GetObjectWithValues

func (AnalysisResult) GetObjectWithValues(ctx context.Context, path *field.Path, values map[string]string) (result *AnalysisResult)

GetObjectWithValues inits an object based on a json.path values map returns nil if values is nil

func (AnalysisResult) IsEmpty

func (a AnalysisResult) IsEmpty() bool

IsEmpty returns true if the struct is empty

type AutomatedTestResult

type AutomatedTestResult struct {
	// Total test cases number
	Total int `json:"total"`

	// Passed test cases number
	// +optional
	Passed int `json:"passed"`

	// Failed test cases number
	// +optional
	Failed int `json:"failed"`

	// Error test case number
	// +optional
	Error int `json:"error"`

	// Skipped test cases number
	// +optional
	Skipped int `json:"skipped"`

	// PassedTestsRate rate of passed tests
	// calculated using  passed / (passed + failed + error) * 100
	// +optional
	PassedTestsRate float64 `json:"passedTestsRate,omitempty"`
}

AutomatedTestResult automatic test result encapsulation

func (*AutomatedTestResult) DeepCopy

func (in *AutomatedTestResult) DeepCopy() *AutomatedTestResult

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AutomatedTestResult.

func (*AutomatedTestResult) DeepCopyInto

func (in *AutomatedTestResult) DeepCopyInto(out *AutomatedTestResult)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CodeChangeMetrics

type CodeChangeMetrics struct {
	// CoverageRate by tests during code analysis
	// +optional
	CoverageRate CodeChangeRates `json:"coverage"`

	// DuplicationRate discovered during code analysis
	// +optional
	DuplicationRate CodeChangeRates `json:"duplications"`
}

CodeChangeMetrics common metrics for code such as: CoverageRate: test coverage rate based on automated tests DuplicationRate: code duplication rate detected by code analysis tool

func (*CodeChangeMetrics) DeepCopy

func (in *CodeChangeMetrics) DeepCopy() *CodeChangeMetrics

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CodeChangeMetrics.

func (*CodeChangeMetrics) DeepCopyInto

func (in *CodeChangeMetrics) DeepCopyInto(out *CodeChangeMetrics)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (CodeChangeMetrics) GetObjectWithValues

func (CodeChangeMetrics) GetObjectWithValues(ctx context.Context, path *field.Path, values map[string]string) (result *CodeChangeMetrics)

GetObjectWithValues inits an object based on a json.path values map returns nil if values is nil

type CodeChangeRates

type CodeChangeRates struct {
	// New code rate
	// calculated for new code only
	// +optional
	New string `json:"new"`
	// Total code rate
	// measured over existing code
	Total string `json:"total"`
}

CodeChangeRates stores changes in a specific rate for new and already existing code used as code duplications, test coverage, etc.

func (*CodeChangeRates) DeepCopy

func (in *CodeChangeRates) DeepCopy() *CodeChangeRates

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CodeChangeRates.

func (*CodeChangeRates) DeepCopyInto

func (in *CodeChangeRates) DeepCopyInto(out *CodeChangeRates)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (CodeChangeRates) GetObjectWithValues

func (CodeChangeRates) GetObjectWithValues(ctx context.Context, path *field.Path, values map[string]string) (result *CodeChangeRates)

GetObjectWithValues inits an object based on a json.path values map returns nil if values is nil

type CodeLintIssues

type CodeLintIssues struct {

	// Count the number of detected issues
	Count int `json:"count"`
}

CodeLintIssues issues found during linting count stores the total number of issues detected

func (*CodeLintIssues) DeepCopy

func (in *CodeLintIssues) DeepCopy() *CodeLintIssues

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CodeLintIssues.

func (*CodeLintIssues) DeepCopyInto

func (in *CodeLintIssues) DeepCopyInto(out *CodeLintIssues)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (CodeLintIssues) GetObjectWithValues

func (CodeLintIssues) GetObjectWithValues(ctx context.Context, path *field.Path, values map[string]string) (result *CodeLintIssues)

GetObjectWithValues inits an object based on a json.path values map returns nil if values is nil

type CodeLintResult

type CodeLintResult struct {
	// Result for the linting process
	//  - Succeeded: successful code linting with passing quality gates
	//  - Failed: failed code linting
	//  - Canceled: canceled code linting due to canceled task
	Result string `json:"result"`

	// Issues found during linting process
	// +optional
	Issues *CodeLintIssues `json:"issues,omitempty"`
}

CodeLintResult stores code linting results

func (*CodeLintResult) DeepCopy

func (in *CodeLintResult) DeepCopy() *CodeLintResult

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CodeLintResult.

func (*CodeLintResult) DeepCopyInto

func (in *CodeLintResult) DeepCopyInto(out *CodeLintResult)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (CodeLintResult) GetObjectWithValues

func (CodeLintResult) GetObjectWithValues(ctx context.Context, path *field.Path, values map[string]string) (result *CodeLintResult)

GetObjectWithValues inits an object based on a json.path values map returns nil if values is nil

func (CodeLintResult) IsEmpty

func (a CodeLintResult) IsEmpty() bool

IsEmpty returns true if the struct is empty

type CodeSize

type CodeSize struct {
	// LinesOfCode inside the project
	LinesOfCode int `json:"linesOfCode"`
}

CodeSize metrics of code base

func (*CodeSize) DeepCopy

func (in *CodeSize) DeepCopy() *CodeSize

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CodeSize.

func (*CodeSize) DeepCopyInto

func (in *CodeSize) DeepCopyInto(out *CodeSize)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (CodeSize) GetObjectWithValues

func (CodeSize) GetObjectWithValues(ctx context.Context, path *field.Path, values map[string]string) (result *CodeSize)

GetObjectWithValues inits an object based on a json.path values map returns nil if values is nil

type NamedAnalysisResult

type NamedAnalysisResult struct {
	// Name of a specific analsysis result
	Name string `json:"name,omitempty"`

	AnalysisResult `json:",inline"`
}

NamedAnalysisResult adds name over integrated AnalysisResult

func (*NamedAnalysisResult) DeepCopy

func (in *NamedAnalysisResult) DeepCopy() *NamedAnalysisResult

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedAnalysisResult.

func (*NamedAnalysisResult) DeepCopyInto

func (in *NamedAnalysisResult) DeepCopyInto(out *NamedAnalysisResult)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (NamedAnalysisResult) IsSameResult

func (n NamedAnalysisResult) IsSameResult(y NamedAnalysisResult) bool

IsSameResult implements method for generic comparable usage and checking if lists have the same results

type NamedAnalysisResults

type NamedAnalysisResults []NamedAnalysisResult

NamedAnalysisResults list of NamedAnalysisResult

func (NamedAnalysisResults) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedAnalysisResults.

func (NamedAnalysisResults) DeepCopyInto

func (in NamedAnalysisResults) DeepCopyInto(out *NamedAnalysisResults)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NamedAutomatedTestResults

type NamedAutomatedTestResults struct {
	// Name of a specific unit tests result
	Name string `json:"name,omitempty"`

	AutomatedTestResult `json:",inline"`
}

NamedAutomatedTestResults adds name over integrated UnitTestsResult

func (*NamedAutomatedTestResults) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedAutomatedTestResults.

func (*NamedAutomatedTestResults) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (NamedAutomatedTestResults) IsSameResult

IsSameResult implements method for generic comparable usage and checking if lists have the same results

type NamedCodeLintResult

type NamedCodeLintResult struct {
	// Name of a specific lint result
	Name string `json:"name,omitempty"`

	CodeLintResult `json:",inline"`
}

NamedCodeLintResult adds name over integrated CodeLintResult

func (*NamedCodeLintResult) DeepCopy

func (in *NamedCodeLintResult) DeepCopy() *NamedCodeLintResult

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedCodeLintResult.

func (*NamedCodeLintResult) DeepCopyInto

func (in *NamedCodeLintResult) DeepCopyInto(out *NamedCodeLintResult)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (NamedCodeLintResult) IsSameResult

func (n NamedCodeLintResult) IsSameResult(y NamedCodeLintResult) bool

IsSameResult implements method for generic comparable usage and checking if lists have the same results

type NamedCodeLintResults

type NamedCodeLintResults []NamedCodeLintResult

NamedCodeLintResults list of NamedCodeLintResult

func (NamedCodeLintResults) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedCodeLintResults.

func (NamedCodeLintResults) DeepCopyInto

func (in NamedCodeLintResults) DeepCopyInto(out *NamedCodeLintResults)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NamedUnitTestsResult

type NamedUnitTestsResult struct {
	// Name of a specific unit tests result
	Name string `json:"name,omitempty"`

	UnitTestsResult `json:",inline"`
}

NamedUnitTestsResult adds name over integrated UnitTestsResult

func (*NamedUnitTestsResult) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedUnitTestsResult.

func (*NamedUnitTestsResult) DeepCopyInto

func (in *NamedUnitTestsResult) DeepCopyInto(out *NamedUnitTestsResult)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (NamedUnitTestsResult) IsSameResult

IsSameResult implements method for generic comparable usage and checking if lists have the same results

type NamedUnitTestsResults

type NamedUnitTestsResults []NamedUnitTestsResult

NamedUnitTestsResults list of NamedUnitTestsResult

func (NamedUnitTestsResults) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedUnitTestsResults.

func (NamedUnitTestsResults) DeepCopyInto

func (in NamedUnitTestsResults) DeepCopyInto(out *NamedUnitTestsResults)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReportFile

type ReportFile struct {
	// ContentType for content type
	ContentType string `json:"contentType"`
	// Key for file key returned from katanomi-data server
	Key string `json:"key"`
}

ReportFile refers to a report object, could be a directory or a file depending on contentType

func (*ReportFile) DeepCopy

func (in *ReportFile) DeepCopy() *ReportFile

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReportFile.

func (*ReportFile) DeepCopyInto

func (in *ReportFile) DeepCopyInto(out *ReportFile)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TestCoverage

type TestCoverage struct {
	// Lines represent unit test coverage on lines
	Lines string `json:"lines,omitempty"`

	// Branches stores code branch coverage rate
	// valid value range is 0 to 100
	Branches string `json:"branches,omitempty"`
}

TestCoverage stores coverage data for unit tests

func (*TestCoverage) DeepCopy

func (in *TestCoverage) DeepCopy() *TestCoverage

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestCoverage.

func (*TestCoverage) DeepCopyInto

func (in *TestCoverage) DeepCopyInto(out *TestCoverage)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (TestCoverage) GetObjectWithValues

func (TestCoverage) GetObjectWithValues(ctx context.Context, path *field.Path, values map[string]string) (result *TestCoverage)

GetObjectWithValues inits an object based on a json.path values map returns nil if values is nil

func (*TestCoverage) IsEmpty

func (c *TestCoverage) IsEmpty() bool

IsEmpty returns true if the struct is empty

type TestResult

type TestResult struct {
	// Passed test cases number
	// +optional
	Passed int `json:"passed"`

	// Skipped test cases number
	// +optional
	Skipped int `json:"skipped"`

	// Failed test cases number
	// adds on any errored test cases
	// +optional
	Failed int `json:"failed"`

	// PassedTestsRate rate of passed tests
	// calculated using  passed / (passed + failed) * 100
	// +optional
	PassedTestsRate string `json:"passedTestsRate"`

	// ReportFiles are collection of report file object from storage plugin
	// +optional
	ReportFiles []ReportFile `json:"reportFiles"`
}

TestResult test results aggregation stores the number of passed, skipped and failed test cases also stores a calculated passed tests rate value

func (*TestResult) DeepCopy

func (in *TestResult) DeepCopy() *TestResult

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestResult.

func (*TestResult) DeepCopyInto

func (in *TestResult) DeepCopyInto(out *TestResult)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (TestResult) GetObjectWithValues

func (TestResult) GetObjectWithValues(ctx context.Context, path *field.Path, values map[string]string) (result *TestResult)

GetObjectWithValues inits an object based on a json.path values map returns nil if values is nil

func (*TestResult) IsEmpty

func (t *TestResult) IsEmpty() bool

IsEmpty returns true if the struct is empty

type UnitTestsResult

type UnitTestsResult struct {
	// Type identifies the type of 'unitedTest' related results reusing UnitTestsResult.
	// +optional
	Type string `json:"type,omitempty"`

	// Coverage represent unit test coverage of current build
	Coverage *TestCoverage `json:"coverage"`

	// TestResults stores a summary with the number of
	// test cases  that passed, where skipped or failed.
	// +optional
	TestResult *TestResult `json:"testResults,omitempty"`
}

UnitTestsResult unit tests results encapsulating coverage and number of passed, failed and skipped tests

func (*UnitTestsResult) DeepCopy

func (in *UnitTestsResult) DeepCopy() *UnitTestsResult

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UnitTestsResult.

func (*UnitTestsResult) DeepCopyInto

func (in *UnitTestsResult) DeepCopyInto(out *UnitTestsResult)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (UnitTestsResult) GetObjectWithValues

func (UnitTestsResult) GetObjectWithValues(ctx context.Context, path *field.Path, values map[string]string) (result *UnitTestsResult)

GetObjectWithValues inits an object based on a json.path values map returns nil if values is nil

func (UnitTestsResult) IsEmpty

func (u UnitTestsResult) IsEmpty() bool

IsEmpty returns true if the struct is empty

Jump to

Keyboard shortcuts

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