Documentation
¶
Index ¶
- func ApplyDirectly(kubeClient kubernetes.Interface, namespace string, cfg *config.Config, ...) error
- func Build(schedulers []*schedulerapi.SchedulerSpec) (*schedulerapi.SchedulerSpec, error)
- func BuildProwConfig(schedulers []*SchedulerLeaf) (*config.Config, *plugins.Configuration, error)
- func FindSourceRepository(jxClient versioned.Interface, ns string, owner string, name string, ...) (*v1.SourceRepository, error)
- func FindSourceRepositoryWithoutProvider(jxClient versioned.Interface, ns string, owner string, name string) (*v1.SourceRepository, error)
- func GenerateProw(gitOps bool, autoApplyConfigUpdater bool, jxClient versioned.Interface, ...) (*config.Config, *plugins.Configuration, error)
- func GetOrCreateSourceRepository(jxClient versioned.Interface, ns string, ...) (*v1.SourceRepository, error)
- func GetOrCreateSourceRepositoryCallback(jxClient versioned.Interface, ns string, ...) (*v1.SourceRepository, error)
- func GetRepositoryGitURL(s *v1.SourceRepository) (string, error)
- func IsIncludedInTheGivenEnvs(environments map[string]*v1.Environment, repository *v1.SourceRepository) bool
- func IsRemoteEnvironmentRepository(environments map[string]*v1.Environment, repository *v1.SourceRepository) bool
- func ToProviderName(gitURL string) string
- type DefaultOwnersDirBlacklist
- type GarbageCollection
- type Heart
- type Owners
- type ProwConfig
- type Reviewers
- type SchedulerLeaf
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplyDirectly ¶
func ApplyDirectly(kubeClient kubernetes.Interface, namespace string, cfg *config.Config, plugs *plugins.Configuration) error
ApplyDirectly directly applies the prow config to the cluster
func Build ¶
func Build(schedulers []*schedulerapi.SchedulerSpec) (*schedulerapi.SchedulerSpec, error)
Build combines the slice of schedulers into one, with the most specific schedule config defined last
func BuildProwConfig ¶
func BuildProwConfig(schedulers []*SchedulerLeaf) (*config.Config, *plugins.Configuration, error)
BuildProwConfig takes a list of schedulers and creates a Prow Config from it
func FindSourceRepository ¶
func FindSourceRepository(jxClient versioned.Interface, ns string, owner string, name string, providerName string) (*v1.SourceRepository, error)
FindSourceRepository returns a SourceRepository for the given namespace, owner, repo name, and (optional) provider name. If no SourceRepository is found, return nil.
func FindSourceRepositoryWithoutProvider ¶
func FindSourceRepositoryWithoutProvider(jxClient versioned.Interface, ns string, owner string, name string) (*v1.SourceRepository, error)
FindSourceRepositoryWithoutProvider returns a SourceRepository for the given namespace, owner and repo name. If no SourceRepository is found, return nil.
func GenerateProw ¶
func GenerateProw(gitOps bool, autoApplyConfigUpdater bool, jxClient versioned.Interface, namespace string, teamSchedulerName string, devEnv *jenkinsv1.Environment, loadSchedulerResourcesFunc func(versioned.Interface, string) (map[string]*schedulerapi.Scheduler, *jenkinsv1.SourceRepositoryList, error)) (*config.Config, *plugins.Configuration, error)
GenerateProw will generate the prow config for the namespace
func GetOrCreateSourceRepository ¶
func GetOrCreateSourceRepository(jxClient versioned.Interface, ns string, name, organisation, providerURL string) (*v1.SourceRepository, error)
GetOrCreateSourceRepository gets or creates the SourceRepository for the given repository name and organisation
func GetOrCreateSourceRepositoryCallback ¶
func GetOrCreateSourceRepositoryCallback(jxClient versioned.Interface, ns string, name, organisation, providerURL string, callback func(*v1.SourceRepository)) (*v1.SourceRepository, error)
GetOrCreateSourceRepositoryCallback gets or creates the SourceRepository for the given repository name and organisation invoking the given callback to modify the resource before create/udpate
func GetRepositoryGitURL ¶
func GetRepositoryGitURL(s *v1.SourceRepository) (string, error)
GetRepositoryGitURL returns the git repository clone URL
func IsIncludedInTheGivenEnvs ¶
func IsIncludedInTheGivenEnvs(environments map[string]*v1.Environment, repository *v1.SourceRepository) bool
IsIncludedInTheGivenEnvs returns true if the given repository is an environment repository
func IsRemoteEnvironmentRepository ¶
func IsRemoteEnvironmentRepository(environments map[string]*v1.Environment, repository *v1.SourceRepository) bool
IsRemoteEnvironmentRepository returns true if the given repository is a remote environment
func ToProviderName ¶
ToProviderName takes the git URL and converts it to a provider name which can be used as a label selector
Types ¶
type DefaultOwnersDirBlacklist ¶
type DefaultOwnersDirBlacklist struct {
// Blacklist configures a default blacklist for repos (or orgs) not
// specifically configured
Blacklist []string `json:"default"`
}
DefaultOwnersDirBlacklist is the default blacklist
type GarbageCollection ¶
type GarbageCollection struct {
// Interval is how often a Garbage Collection will be performed. Defaults to one hour.
Interval time.Duration `json:"-"`
// PipelineAge is how old a Pipeline can be before it is garbage-collected.
// Defaults to one week.
PipelineAge time.Duration `json:"-"`
// PodAge is how old a Pod can be before it is garbage-collected.
// Defaults to one day.
PodAge time.Duration `json:"-"`
}
GarbageCollection defines the configuration for cleaning up pipeline related resources
type Heart ¶
type Heart struct {
// Adorees is a list of GitHub logins for members
// for whom we will add emojis to comments
Adorees []string `json:"adorees,omitempty"`
// CommentRegexp is the regular expression for comments
// made by adorees that the plugin adds emojis to.
// If not specified, the plugin will not add emojis to
// any comments.
// Compiles into CommentRe during config load.
CommentRegexp string `json:"commentregexp,omitempty"`
}
Heart contains the configuration for adding emojis
type Owners ¶
type Owners struct {
// SkipCollaborators disables collaborator cross-checks and forces both
// the approve and lgtm plugins to use solely OWNERS files for access
// control in the provided repos.
SkipCollaborators []string `json:"skip_collaborators,omitempty"`
// LabelsBlackList holds a list of labels that should not be present in any
// OWNERS file, preventing their automatic addition by the owners-label plugin.
// This check is performed by the verify-owners plugin.
LabelsBlackList []string `json:"labels_blacklist,omitempty"`
}
Owners contains configuration related to handling OWNERS files.
type ProwConfig ¶
type ProwConfig struct {
Reviewers Reviewers `yaml:"blunderbuss,omitempty"`
Owners Owners `json:"owners,omitempty"`
// DefaultNamespace defines the namespace to run the jobs, by default the team namespace
DefaultNamespace string `yaml:"jobNamespace,omitempty"`
// TODO PushGateway
DefaultOwnersDirBlacklist DefaultOwnersDirBlacklist `yaml:"defaultOwnersDirBlacklist,omitempty"`
GarbageCollection GarbageCollection `yaml:"garbageCollection,omitempty"`
Heart Heart `yaml:"heart,omitempty"`
}
ProwConfig is the SchedulerSpec config that relates explicitly to Prow
type Reviewers ¶
type Reviewers struct {
// ReviewerCount is the minimum number of reviewers to request
// reviews from. Defaults to requesting reviews from 2 reviewers
// if FileWeightCount is not set.
ReviewerCount *int `json:"request_count,omitempty"`
// MaxReviewerCount is the maximum number of reviewers to request
// reviews from. Defaults to 0 meaning no limit.
MaxReviewerCount int `json:"max_request_count,omitempty"`
// FileWeightCount is the maximum number of reviewers to request
// reviews from. Selects reviewers based on file weighting.
// This and request_count are mutually exclusive options.
FileWeightCount *int `json:"file_weight_count,omitempty"`
// ExcludeApprovers controls whether approvers are considered to be
// reviewers. By default, approvers are considered as reviewers if
// insufficient reviewers are available. If ExcludeApprovers is true,
// approvers will never be considered as reviewers.
ExcludeApprovers bool `json:"exclude_approvers,omitempty"`
}
Reviewers defines configuration for PR review
type SchedulerLeaf ¶
type SchedulerLeaf struct {
*schedulerapi.SchedulerSpec
Org string
Repo string
}
SchedulerLeaf defines a pipeline scheduler leaf