Documentation
¶
Index ¶
- Constants
- func ParseGitlabComponentPath(path string, instanceURL string) (string, string, string)
- type GitlabPipelineImageData
- type GitlabPipelineImageDataCollection
- type GitlabPipelineImageInfo
- type GitlabPipelineImageMetrics
- type GitlabPipelineJobData
- type GitlabPipelineJobGitlabComponent
- type GitlabPipelineJobPlumberOrigin
- type GitlabPipelineOriginData
- type GitlabPipelineOriginDataCollection
- type GitlabPipelineOriginDataFull
- type GitlabPipelineOriginDataGeneric
- type GitlabPipelineOriginDataProjectSpecific
- type GitlabPipelineOriginMetrics
- type GitlabProtectionAnalysisData
- type GitlabProtectionData
- type GitlabProtectionDataBranch
- type GitlabProtectionDataCollection
- type GitlabProtectionMetrics
Constants ¶
View Source
const ( BehaviorWhenCommitIsAddedKeepApprovalsId = iota + 1 BehaviorWhenCommitIsAddedRemoveCodeOwnerApprovalsId BehaviorWhenCommitIsAddedRemoveApprovalsId )
Behavior when commit is added constants
View Source
const ( BehaviorWhenCommitIsAddedKeepApprovalsText = "Keep approvals" BehaviorWhenCommitIsAddedRemoveCodeOwnerText = "Remove approvals by Code Owners if their files changed" BehaviorWhenCommitIsAddedRemoveApprovalsText = "Remove all approvals" )
Behavior when commit is added text values
View Source
const ( SquashOptionNever = "never" // Never squash SquashOptionAlways = "always" // Always squash SquashOptionDefaultOn = "default_on" // Squash by default (can be turned off) SquashOptionDefaultOff = "default_off" // Don't squash by default (can be turned on) )
GitLab squash option constants
View Source
const DataCollectionTypeGitlabPipelineImageVersion = "0.2.0"
View Source
const DataCollectionTypeGitlabPipelineOriginVersion = "0.2.0"
View Source
const (
DataCollectionTypeGitlabProtectionVersion = "0.2.0"
)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type GitlabPipelineImageData ¶
type GitlabPipelineImageData struct {
// Gitlab CI configuration
MergedConf *gitlab.GitlabCIConf
CiValid bool
CiMissing bool
// Default image and variables
DefaultImage string
InstanceVars map[string]string
GroupVars map[string]string
ProjectVars map[string]string
GlobalVars map[string]string
// Images found in the pipeline
Images []GitlabPipelineImageInfo `json:"images"`
}
type GitlabPipelineImageDataCollection ¶
type GitlabPipelineImageDataCollection struct{}
func (*GitlabPipelineImageDataCollection) Run ¶
func (dc *GitlabPipelineImageDataCollection) Run(project *gitlab.ProjectInfo, token string, conf *configuration.Configuration, pipelineOriginData *GitlabPipelineOriginData) (*GitlabPipelineImageData, *GitlabPipelineImageMetrics, error)
type GitlabPipelineImageInfo ¶
type GitlabPipelineJobData ¶
type GitlabPipelineJobGitlabComponent ¶
type GitlabPipelineJobGitlabComponent struct {
RepoFullPath string `json:"repoFullPath"`
RepoWebPath string `json:"repoWebPath"`
RepoName string `json:"repoName"`
ComponentName string `json:"componentName"`
ComponentLatestVersion string `json:"componentLatestVersion"`
ComponentIncludePath string `json:"componentIncludePath"`
}
GitlabPipelineJobGitlabComponent represents a GitLab component
type GitlabPipelineJobPlumberOrigin ¶ added in v0.1.31
type GitlabPipelineJobPlumberOrigin struct {
ID uint `json:"id"`
Path string `json:"path"`
LatestVersion string `json:"latestVersion"`
RepoDefaultBranch string `json:"repoDefaultBranch"`
}
GitlabPipelineJobPlumberOrigin represents a Plumber template origin
type GitlabPipelineOriginData ¶
type GitlabPipelineOriginData struct {
// Gitlab CI catalog data
GitlabCatalogResources []gitlab.CICatalogResource
GitlabCatalogComponentMap map[string]int // path -> index in catalogResources
VersionMap map[string][]string // path -> []versions (newest first)
// Gitlab CI configuration
Conf *gitlab.GitlabCIConf
ConfString string
MergedConf *gitlab.GitlabCIConf
MergedResponse *gitlab.MergedCIConfResponse
CiValid bool
CiMissing bool
CiErrors []string // Specific CI config errors for output
LimitedAnalysis bool
// Origins and jobs data
Origins []GitlabPipelineOriginDataFull
// CI conf content
JobMap map[string]*GitlabPipelineJobData
JobExtendsMap map[string][]string
JobHardcodedMap map[string]bool
JobHardcodedContent map[string]interface{}
}
type GitlabPipelineOriginDataCollection ¶
type GitlabPipelineOriginDataCollection struct{}
func (*GitlabPipelineOriginDataCollection) Run ¶
func (dc *GitlabPipelineOriginDataCollection) Run(project *gitlab.ProjectInfo, token string, conf *configuration.Configuration) (*GitlabPipelineOriginData, *GitlabPipelineOriginMetrics, error)
type GitlabPipelineOriginDataFull ¶
type GitlabPipelineOriginDataFull struct {
// Origin data generic and specific
GitlabPipelineOriginDataGeneric
GitlabPipelineOriginDataProjectSpecific
}
type GitlabPipelineOriginDataGeneric ¶
type GitlabPipelineOriginDataGeneric struct {
OriginType string `json:"originType"`
FromPlumber bool `json:"fromPlumber"`
FromGitlabCatalog bool `json:"fromGitlabCatalog"`
PlumberOrigin GitlabPipelineJobPlumberOrigin `json:"plumberOrigin"`
GitlabIncludeOrigin gitlab.IncludeOriginWithoutRef `json:"gitlabIncludeOrigin"`
GitlabComponent GitlabPipelineJobGitlabComponent `json:"gitlabComponent"`
OriginHash uint64 `json:"originHash"`
}
type GitlabPipelineOriginDataProjectSpecific ¶
type GitlabPipelineOriginDataProjectSpecific struct {
// Data specific to this project
Version string `json:"version"`
UpToDate bool `json:"upToDate"`
Nested bool `json:"nested"`
// Job related data
Jobs []GitlabPipelineJobData `json:"jobs"`
}
type GitlabPipelineOriginMetrics ¶
type GitlabPipelineOriginMetrics struct {
// Data metrics: jobs
JobTotal uint `json:"jobTotal"`
JobHardcoded uint `json:"jobHardcoded"`
// Data metrics: origin
OriginTotal uint `json:"originTotal"`
OriginComponent uint `json:"originComponent"`
OriginLocal uint `json:"originLocal"`
OriginProject uint `json:"originProject"`
OriginRemote uint `json:"originRemote"`
OriginTemplate uint `json:"originTemplate"`
OriginGitLabCatalog uint `json:"originGitLabCatalog"`
OriginOutdated uint `json:"originOutdated"`
}
type GitlabProtectionAnalysisData ¶
type GitlabProtectionAnalysisData struct {
Branches []string `json:"branches"`
BranchProtections []gitlab.BranchProtection `json:"branchProtections"`
MRApprovalRules []*glab.ProjectApprovalRule `json:"mrApprovalRules"`
MRApprovalSettings *glab.ProjectApprovals `json:"mrApprovalSettings"`
MRSettings *glab.Project `json:"mrSettings"`
ProjectMembers []gitlab.GitlabMemberInfo `json:"projectMembers"`
}
GitlabProtectionAnalysisData holds all the data needed by protection controls
type GitlabProtectionData ¶
type GitlabProtectionData struct {
Branches []*GitlabProtectionDataBranch `json:"branches"`
}
GitlabProtectionData holds the collected protection data
type GitlabProtectionDataBranch ¶
type GitlabProtectionDataBranch struct {
BranchName string `json:"branchName"`
Default bool `json:"default"`
}
GitlabProtectionDataBranch holds branch information
type GitlabProtectionDataCollection ¶
type GitlabProtectionDataCollection struct{}
GitlabProtectionDataCollection handles protection data collection
func (*GitlabProtectionDataCollection) Run ¶
func (dc *GitlabProtectionDataCollection) Run( project *gitlab.ProjectInfo, token string, conf *configuration.Configuration, ) (*GitlabProtectionAnalysisData, *GitlabProtectionMetrics, error)
Run fetches all GitLab protection data needed by the controls
type GitlabProtectionMetrics ¶
type GitlabProtectionMetrics struct {
Branches int `json:"branches"`
}
GitlabProtectionMetrics holds metrics about protection data
Click to show internal directories.
Click to hide internal directories.