bergerx/kubectl-status

View on GitHub

Showing 47 of 47 total issues

Function hasMapListAMatchingItem has a Cognitive Complexity of 25 (exceeds 20 allowed). Consider refactoring.
Open

func hasMapListAMatchingItem(searchFor map[string]interface{}, typedMapListItem map[string]interface{}) bool {
    klog.V(5).InfoS("hasMapListAMatchingItem will search", "searchFor", searchFor, "typedMapListItem", typedMapListItem)
    if len(searchFor) == 0 {
        return false
    }
Severity: Minor
Found in pkg/plugin/template_functions_static.go - About 1 hr to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Function isStatusConditionHealthy has 51 lines of code (exceeds 50 allowed). Consider refactoring.
Open

func isStatusConditionHealthy(condition map[string]interface{}) bool {
    switch {
    /*
        From https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties:

Severity: Minor
Found in pkg/plugin/template_functions_static.go - About 1 hr to fix

    Function hasMapListAMatchingItem has 9 return statements (exceeds 4 allowed).
    Open

    func hasMapListAMatchingItem(searchFor map[string]interface{}, typedMapListItem map[string]interface{}) bool {
        klog.V(5).InfoS("hasMapListAMatchingItem will search", "searchFor", searchFor, "typedMapListItem", typedMapListItem)
        if len(searchFor) == 0 {
            return false
        }
    Severity: Major
    Found in pkg/plugin/template_functions_static.go - About 55 mins to fix

      Function Run has 7 return statements (exceeds 4 allowed).
      Open

      func Run(f util.Factory, streams genericiooptions.IOStreams, args []string) error {
          klog.V(5).InfoS("All config settings", "settings", viper.AllSettings())
          if viper.Get("color") == "always" {
              color.NoColor = false
          } else if viper.Get("color") == "never" {
      Severity: Major
      Found in pkg/plugin/plugin.go - About 45 mins to fix

        Method ResourceRepo.mappingFor has 6 return statements (exceeds 4 allowed).
        Open

        func (r *ResourceRepo) mappingFor(resourceOrKindArg string) (*meta.RESTMapping, error) {
            fullySpecifiedGVR, groupResource := schema.ParseResourceArg(resourceOrKindArg)
            gvk := schema.GroupVersionKind{}
            restMapper, err := r.f.ToRESTMapper()
            if err != nil {
        Severity: Major
        Found in pkg/input/input.go - About 40 mins to fix

          Function runWatch has 6 return statements (exceeds 4 allowed).
          Open

          func runWatch(results *resource.Result, engine *renderEngine, repo *input.ResourceRepo) error {
              color.HiYellow("\nPrinted all existing resource statuses, starting to watch. Switching to shallow mode during watch!\n\n")
              viper.Set("shallow", true)
              viper.Set("watching", true)
              klog.V(5).InfoS("Will run watch")
          Severity: Major
          Found in pkg/plugin/plugin.go - About 40 mins to fix

            Method ResourceRepo.Owners has a Cognitive Complexity of 22 (exceeds 20 allowed). Consider refactoring.
            Open

            func (r *ResourceRepo) Owners(obj Object) (out Objects, err error) {
                uobj := obj.Unstructured()
                namespace := uobj.GetNamespace()
                owners := uobj.GetOwnerReferences()
                if len(owners) == 0 {
            Severity: Minor
            Found in pkg/input/input.go - About 35 mins to fix

            Cognitive Complexity

            Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

            A method's cognitive complexity is based on a few simple rules:

            • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
            • Code is considered more complex for each "break in the linear flow of the code"
            • Code is considered more complex when "flow breaking structures are nested"

            Further reading

            exported method RenderableObject.Annotations should have comment or be unexported
            Open

            func (r RenderableObject) Annotations() (annotations map[string]interface{}) {
            Severity: Minor
            Found in pkg/plugin/renderable.go by golint

            exported method RenderableObject.KubeGetNodeStatsSummary should have comment or be unexported
            Open

            func (r RenderableObject) KubeGetNodeStatsSummary(nodeName string) map[string]interface{} {

            exported method Object.Unstructured should have comment or be unexported
            Open

            func (u Object) Unstructured() *unstructured.Unstructured {
            Severity: Minor
            Found in pkg/input/input.go by golint

            exported function NewResourceRepo should have comment or be unexported
            Open

            func NewResourceRepo(factory util.Factory) (*ResourceRepo, error) {
            Severity: Minor
            Found in pkg/input/input.go by golint

            exported method ResourceRepo.Ingresses should have comment or be unexported
            Open

            func (r *ResourceRepo) Ingresses(namespace string) (*netv1.IngressList, error) {
            Severity: Minor
            Found in pkg/input/input.go by golint

            exported function Run should have comment or be unexported
            Open

            func Run(f util.Factory, streams genericiooptions.IOStreams, args []string) error {
            Severity: Minor
            Found in pkg/plugin/plugin.go by golint

            exported method RenderableObject.Labels should have comment or be unexported
            Open

            func (r RenderableObject) Labels() (labels map[string]interface{}) {
            Severity: Minor
            Found in pkg/plugin/renderable.go by golint

            exported method RenderableObject.StatusConditions should have comment or be unexported
            Open

            func (r RenderableObject) StatusConditions() (conditions []interface{}) {
            Severity: Minor
            Found in pkg/plugin/renderable.go by golint

            exported method ResourceRepo.DynamicObjects should have comment or be unexported
            Open

            func (r *ResourceRepo) DynamicObjects(gvr schema.GroupVersionResource, namespace string) (Objects, error) {
            Severity: Minor
            Found in pkg/input/input.go by golint

            exported method ResourceRepo.Objects should have comment or be unexported
            Open

            func (r *ResourceRepo) Objects(namespace string, args []string, labelSelector string) (Objects, error) {
            Severity: Minor
            Found in pkg/input/input.go by golint

            exported method RenderableObject.IncludeRenderableObject should have comment or be unexported
            Open

            func (r RenderableObject) IncludeRenderableObject(obj RenderableObject) (output string) {

            2: cannot find package "github.com/bergerx/kubectl-status/pkg/plugin" in any of:
            Open

                "github.com/bergerx/kubectl-status/pkg/plugin"
            Severity: Minor
            Found in cmd/main.go by govet

            exported method RenderableObject.KubeGetEvents should have comment or be unexported
            Open

            func (r RenderableObject) KubeGetEvents() RenderableObject {
            Severity
            Category
            Status
            Source
            Language