This is an automated email from the ASF dual-hosted git repository. squakez pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 40c6bb4a86e115446544f5c95c4a747bfa913c9d Author: UchihaIthachi <[email protected]> AuthorDate: Fri Nov 6 14:29:47 2026 +0530 fix(ci): enable complexity linters at default thresholds, mark existing outliers with nolint Signed-off-by: UchihaIthachi <[email protected]> --- .golangci.yml | 9 +++------ pkg/apis/camel/v1/build_types_support.go | 2 ++ pkg/builder/s2i.go | 1 + pkg/cmd/bind.go | 1 + pkg/cmd/modeline.go | 1 + pkg/cmd/run.go | 1 + pkg/controller/build/monitor_pod.go | 2 ++ pkg/controller/build/monitor_routine.go | 2 +- pkg/controller/integration/build_kit.go | 1 + pkg/controller/integration/monitor.go | 2 +- pkg/controller/integrationkit/integrationkit_controller.go | 2 ++ pkg/controller/pipe/integration.go | 2 ++ pkg/trait/builder.go | 1 + pkg/trait/camel.go | 2 +- pkg/trait/gc.go | 2 ++ pkg/trait/init_containers.go | 1 + pkg/trait/jvm.go | 2 ++ pkg/trait/knative.go | 1 + pkg/trait/knative_service.go | 1 + pkg/trait/mount.go | 2 ++ pkg/util/bindings/knative_ref.go | 2 ++ pkg/util/digest/digest.go | 2 ++ pkg/util/kubernetes/log/pod_scraper.go | 2 +- pkg/util/kubernetes/portforward.go | 1 + pkg/util/source/inspector.go | 2 ++ pkg/util/source/inspector_xml.go | 2 ++ pkg/util/source/inspector_yaml.go | 2 +- 27 files changed, 40 insertions(+), 11 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 5c53106b3..ff455dd27 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -45,19 +45,16 @@ linters: - gomodguard settings: cyclop: - # Current maximum in non-generated code; lower it as the outliers get refactored. - max-complexity: 47 + max-complexity: 30 gocognit: - # Current maximum: source (YAMLInspector).parseStep. - min-complexity: 132 + min-complexity: 30 goconst: min-len: 4 min-occurrences: 10 ignore-calls: true numbers: false gocyclo: - # Current maximum: source (YAMLInspector).parseStep. - min-complexity: 46 + min-complexity: 30 lll: line-length: 170 mnd: diff --git a/pkg/apis/camel/v1/build_types_support.go b/pkg/apis/camel/v1/build_types_support.go index 0a7126876..e945de70a 100644 --- a/pkg/apis/camel/v1/build_types_support.go +++ b/pkg/apis/camel/v1/build_types_support.go @@ -270,6 +270,8 @@ func (bl *BuildList) HasScheduledBuildsBefore(build *Build) (bool, *Build) { // HasMatchingBuild visit all items in the list of builds and search for a scheduled build that matches the given build's dependencies. // It returns the first matching build found regardless it may have any one more appropriate. +// +//nolint:gocognit func (bl *BuildList) HasMatchingBuild(build *Build) (bool, *Build) { required := build.BuilderDependencies() if len(required) == 0 { diff --git a/pkg/builder/s2i.go b/pkg/builder/s2i.go index 8a01ced13..76db8a25f 100644 --- a/pkg/builder/s2i.go +++ b/pkg/builder/s2i.go @@ -58,6 +58,7 @@ type s2iTask struct { var _ Task = &s2iTask{} +//nolint:gocognit func (t *s2iTask) Do(ctx context.Context) v1.BuildStatus { log.Info("S2I publishing strategy is deprecated and may be removed in the future, use Jib strategy instead") status := initializeStatusFrom(t.build.Status, t.task.BaseImage) diff --git a/pkg/cmd/bind.go b/pkg/cmd/bind.go index 72165c432..d473da1b8 100644 --- a/pkg/cmd/bind.go +++ b/pkg/cmd/bind.go @@ -174,6 +174,7 @@ func (o *bindCmdOptions) validate(cmd *cobra.Command, args []string) error { return trait.ValidateTraits(catalog, extractTraitNames(o.Traits)) } +//nolint:gocognit func (o *bindCmdOptions) run(cmd *cobra.Command, args []string) error { client, err := o.GetCmdClient() if err != nil { diff --git a/pkg/cmd/modeline.go b/pkg/cmd/modeline.go index bd2704762..646f3a56e 100644 --- a/pkg/cmd/modeline.go +++ b/pkg/cmd/modeline.go @@ -90,6 +90,7 @@ func NewKamelWithModelineCommand(ctx context.Context, osArgs []string) (*cobra.C return rootCmd, flags, nil } +//nolint:gocognit func createKamelWithModelineCommand(ctx context.Context, args []string) (*cobra.Command, []string, error) { rootCmd, err := NewKamelCommand(ctx) if err != nil { diff --git a/pkg/cmd/run.go b/pkg/cmd/run.go index fb4f0188e..eda872792 100644 --- a/pkg/cmd/run.go +++ b/pkg/cmd/run.go @@ -421,6 +421,7 @@ func (o *runCmdOptions) waitForIntegrationPhase(cmd *cobra.Command, c client.Cli return watch.HandleIntegrationStateChanges(o.Context, c, integration, handler) } +//nolint:gocognit func (o *runCmdOptions) createOrUpdateIntegration(cmd *cobra.Command, c client.Client, sources []string) (*v1.Integration, error) { namespace := o.Namespace name, err := o.GetIntegrationName(sources) diff --git a/pkg/controller/build/monitor_pod.go b/pkg/controller/build/monitor_pod.go index 8fd167ad9..d5acc8055 100644 --- a/pkg/controller/build/monitor_pod.go +++ b/pkg/controller/build/monitor_pod.go @@ -62,6 +62,8 @@ func (action *monitorPodAction) CanHandle(build *v1.Build) bool { } // Handle handles the builds. +// +//nolint:gocognit func (action *monitorPodAction) Handle(ctx context.Context, build *v1.Build) (*v1.Build, error) { pod, err := getBuilderPod(ctx, action.reader, build) if err != nil { diff --git a/pkg/controller/build/monitor_routine.go b/pkg/controller/build/monitor_routine.go index 59c505560..72fc32f89 100644 --- a/pkg/controller/build/monitor_routine.go +++ b/pkg/controller/build/monitor_routine.go @@ -98,7 +98,7 @@ func (action *monitorRoutineAction) Handle(ctx context.Context, build *v1.Build) return nil, nil } -//nolint:nestif +//nolint:gocognit,nestif func (action *monitorRoutineAction) runBuild(ctx context.Context, build *v1.Build) { defer routines.Delete(build.Name) diff --git a/pkg/controller/integration/build_kit.go b/pkg/controller/integration/build_kit.go index dea015e97..ee5b9831a 100644 --- a/pkg/controller/integration/build_kit.go +++ b/pkg/controller/integration/build_kit.go @@ -43,6 +43,7 @@ func (action *buildKitAction) CanHandle(integration *v1.Integration) bool { return integration.Status.Phase == v1.IntegrationPhaseBuildingKit } +//nolint:gocognit func (action *buildKitAction) Handle(ctx context.Context, integration *v1.Integration) (*v1.Integration, error) { // TODO: we may need to add a timeout strategy, i.e give up after some time in case of an unrecoverable error. secrets, configmaps := getIntegrationSecretAndConfigmapResourceVersions(ctx, action.client, integration) diff --git a/pkg/controller/integration/monitor.go b/pkg/controller/integration/monitor.go index 48f7ac63b..186d46d77 100644 --- a/pkg/controller/integration/monitor.go +++ b/pkg/controller/integration/monitor.go @@ -496,7 +496,7 @@ func arePodsFailingStatuses(integration *v1.Integration, pendingPods []corev1.Po // probeReadiness calls the readiness probes of the non-ready Pods directly to retrieve insights from the Camel runtime. // The func return the number of readyPods, the success of the probe and any error may have happened during its execution. // -//nolint:staticcheck +//nolint:gocognit,staticcheck func (action *monitorAction) probeReadiness(ctx context.Context, environment *trait.Environment, integration *v1.Integration, pods []corev1.Pod) (int32, bool, error) { // as a default we assume the Integration is Ready readyCondition := v1.IntegrationCondition{ diff --git a/pkg/controller/integrationkit/integrationkit_controller.go b/pkg/controller/integrationkit/integrationkit_controller.go index b583648fb..909f828eb 100644 --- a/pkg/controller/integrationkit/integrationkit_controller.go +++ b/pkg/controller/integrationkit/integrationkit_controller.go @@ -197,6 +197,8 @@ type reconcileIntegrationKit struct { // Note: // The Controller will requeue the Request to be processed again if the returned error is non-nil or // Result.Requeue is true, otherwise upon completion it will remove the work from the queue. +// +//nolint:gocognit func (r *reconcileIntegrationKit) Reconcile(ctx context.Context, request reconcile.Request) (reconcile.Result, error) { rlog := Log.WithValues("request-namespace", request.Namespace, "request-name", request.Name) rlog.Debug("Reconciling IntegrationKit") diff --git a/pkg/controller/pipe/integration.go b/pkg/controller/pipe/integration.go index 8c6bc31f4..0d3999836 100644 --- a/pkg/controller/pipe/integration.go +++ b/pkg/controller/pipe/integration.go @@ -45,6 +45,8 @@ var ( ) // CreateIntegrationFor creates and Integration from a Pipe. +// +//nolint:cyclop,gocognit,gocyclo func CreateIntegrationFor(ctx context.Context, c client.Client, pipe *v1.Pipe) (*v1.Integration, error) { controller := true blockOwnerDeletion := true diff --git a/pkg/trait/builder.go b/pkg/trait/builder.go index e8e0eed39..e5c67a6b1 100644 --- a/pkg/trait/builder.go +++ b/pkg/trait/builder.go @@ -367,6 +367,7 @@ func failIntegrationKit(e *Environment, conditionType v1.IntegrationKitCondition return nil } +//nolint:gocognit func (t *builderTrait) builderTask(e *Environment, taskConf *v1.BuildConfiguration) (*v1.BuilderTask, error) { maven := e.Platform.Maven diff --git a/pkg/trait/camel.go b/pkg/trait/camel.go index 459490aa3..9ac0ce171 100644 --- a/pkg/trait/camel.go +++ b/pkg/trait/camel.go @@ -142,7 +142,7 @@ func (t *camelTrait) Apply(e *Environment) error { return nil } -//nolint:nestif +//nolint:gocognit,nestif func (t *camelTrait) loadOrCreateCatalog(e *Environment) error { catalogNamespace := e.DetermineCatalogNamespace() if catalogNamespace == "" { diff --git a/pkg/trait/gc.go b/pkg/trait/gc.go index ca4a9a1f6..69e6d0477 100644 --- a/pkg/trait/gc.go +++ b/pkg/trait/gc.go @@ -257,6 +257,8 @@ func canBeDeleted(it *v1.Integration, u unstructured.Unstructured) bool { // getDeletableTypes returns the list of deletable types resources, inspecting the rules for which the operator SA is allowed in the // Integration namespace. +// +//nolint:gocognit func (t *gcTrait) getDeletableTypes(e *Environment) (map[schema.GroupVersionKind]struct{}, error) { lock.Lock() defer lock.Unlock() diff --git a/pkg/trait/init_containers.go b/pkg/trait/init_containers.go index 687048268..e177d9cc3 100644 --- a/pkg/trait/init_containers.go +++ b/pkg/trait/init_containers.go @@ -62,6 +62,7 @@ func newInitContainersTrait() Trait { } } +//nolint:gocognit func (t *initContainersTrait) Configure(e *Environment) (bool, *TraitCondition, error) { if e.Integration == nil || !e.IntegrationInRunningPhases() { return false, nil, nil diff --git a/pkg/trait/jvm.go b/pkg/trait/jvm.go index ce3579426..e0dd6f8c9 100644 --- a/pkg/trait/jvm.go +++ b/pkg/trait/jvm.go @@ -318,6 +318,8 @@ func extractExistingClasspathItems(container *corev1.Container) []string { // Translate HTTP proxy environment variables, that are set by the environment trait, // into corresponding JVM system properties. +// +//nolint:gocognit func (t *jvmTrait) prepareHTTPProxy(container *corev1.Container) ([]string, error) { var args []string diff --git a/pkg/trait/knative.go b/pkg/trait/knative.go index 253047490..6a60378da 100644 --- a/pkg/trait/knative.go +++ b/pkg/trait/knative.go @@ -406,6 +406,7 @@ func (t *knativeTrait) isSinkBindingAllowed(e *Environment) bool { return true } +//nolint:gocognit func (t *knativeTrait) configureSinkBinding(e *Environment, env *knativeapi.CamelEnvironment) error { if !ptr.Deref(t.SinkBinding, false) { return nil diff --git a/pkg/trait/knative_service.go b/pkg/trait/knative_service.go index b376f6459..5897f7851 100644 --- a/pkg/trait/knative_service.go +++ b/pkg/trait/knative_service.go @@ -173,6 +173,7 @@ func (t *knativeServiceTrait) ControllerStrategySelectorOrder() int { return knativeServiceStrategySelectorOrder } +//nolint:gocognit func (t *knativeServiceTrait) getServiceFor(e *Environment) (*serving.Service, error) { serviceAnnotations := make(map[string]string) if e.Integration.Annotations != nil { diff --git a/pkg/trait/mount.go b/pkg/trait/mount.go index 3a5e5e450..56b7d83a4 100644 --- a/pkg/trait/mount.go +++ b/pkg/trait/mount.go @@ -141,6 +141,8 @@ func (t *mountTrait) Apply(e *Environment) error { // configureVolumesAndMounts is in charge to mount volumes and mounts coming from the trait configuration. // icnts holds the InitContainers which also require to be mounted with the shared volumes. +// +//nolint:gocognit func (t *mountTrait) configureVolumesAndMounts( e *Environment, vols *[]corev1.Volume, diff --git a/pkg/util/bindings/knative_ref.go b/pkg/util/bindings/knative_ref.go index d6131eaea..5edb7c08a 100644 --- a/pkg/util/bindings/knative_ref.go +++ b/pkg/util/bindings/knative_ref.go @@ -42,6 +42,8 @@ func (k KnativeRefBindingProvider) ID() string { } // Translate --. +// +//nolint:gocognit func (k KnativeRefBindingProvider) Translate(ctx BindingContext, endpointCtx EndpointContext, e v1.Endpoint) (*Binding, error) { if e.Ref == nil { // works only on refs diff --git a/pkg/util/digest/digest.go b/pkg/util/digest/digest.go index 14cc75b76..37cbfac17 100644 --- a/pkg/util/digest/digest.go +++ b/pkg/util/digest/digest.go @@ -46,6 +46,8 @@ const ( // ComputeForIntegration a digest of the fields that are relevant for the deployment // Produces a digest that can be used as docker image tag. +// +//nolint:cyclop,gocognit,gocyclo func ComputeForIntegration(integration *v1.Integration, configmapVersions []string, secretVersions []string) (string, error) { hash := sha256.New() // Integration version is relevant diff --git a/pkg/util/kubernetes/log/pod_scraper.go b/pkg/util/kubernetes/log/pod_scraper.go index 650b4cbaf..b561b30f5 100644 --- a/pkg/util/kubernetes/log/pod_scraper.go +++ b/pkg/util/kubernetes/log/pod_scraper.go @@ -153,7 +153,7 @@ func (s *PodScraper) handleAndRestart(ctx context.Context, err error, wait time. // waitForPodRunning waits for a given pod to reach the running state. // It may return the internal container to watch if present. // -//nolint:nestif +//nolint:gocognit,nestif func (s *PodScraper) waitForPodRunning(ctx context.Context, namespace string, podName string, defaultContainerName string) (string, error) { pod := corev1.Pod{ Kind: "Pod", diff --git a/pkg/util/kubernetes/portforward.go b/pkg/util/kubernetes/portforward.go index 7af004eb3..8c1983262 100644 --- a/pkg/util/kubernetes/portforward.go +++ b/pkg/util/kubernetes/portforward.go @@ -35,6 +35,7 @@ import ( "k8s.io/client-go/transport/spdy" ) +//nolint:gocognit func PortForward(ctx context.Context, c client.Client, ns, labelSelector string, localPort, remotePort uint, stdOut, stdErr io.Writer) error { log.InitForCmd() var forwardPod *corev1.Pod diff --git a/pkg/util/source/inspector.go b/pkg/util/source/inspector.go index 5212f6bfe..34f3004ab 100644 --- a/pkg/util/source/inspector.go +++ b/pkg/util/source/inspector.go @@ -285,6 +285,8 @@ func (i *baseInspector) discoverCapabilities(source v1.SourceSpec, meta *Metadat } // discoverDependencies returns a list of dependencies required by the given source code. +// +//nolint:gocognit func (i *baseInspector) discoverDependencies(source v1.SourceSpec, meta *Metadata) error { for _, uri := range meta.FromURIs { // consumer diff --git a/pkg/util/source/inspector_xml.go b/pkg/util/source/inspector_xml.go index ecbd38a2e..80667aba0 100644 --- a/pkg/util/source/inspector_xml.go +++ b/pkg/util/source/inspector_xml.go @@ -35,6 +35,8 @@ type XMLInspector struct { } // Extract extracts all metadata from source spec. +// +//nolint:cyclop,gocognit,gocyclo func (i XMLInspector) Extract(source v1.SourceSpec, meta *Metadata) error { content := strings.NewReader(source.Content) decoder := xml.NewDecoder(content) diff --git a/pkg/util/source/inspector_yaml.go b/pkg/util/source/inspector_yaml.go index b326626c5..8cdc5a839 100644 --- a/pkg/util/source/inspector_yaml.go +++ b/pkg/util/source/inspector_yaml.go @@ -85,7 +85,7 @@ func (i YAMLInspector) parseDefinition(def map[string]any, meta *Metadata) error return nil } -//nolint:nestif +//nolint:cyclop,gocognit,gocyclo,nestif func (i YAMLInspector) parseStep(key string, content any, meta *Metadata) error { switch key { case "bean":
