Luzilla/dnsbl_exporter

View on GitHub

Showing 9 of 9 total issues

Method DNSBLApp.Bootstrap has 99 lines of code (exceeds 50 allowed). Consider refactoring.
Open

func (a *DNSBLApp) Bootstrap() {
    a.App.Action = func(cCtx *cli.Context) error {
        // setup logging
        handler := &slog.HandlerOptions{}
        var writer io.Writer
Severity: Major
Found in app/app.go - About 2 hrs to fix

    Method RblCollector.Collect has 87 lines of code (exceeds 50 allowed). Consider refactoring.
    Open

    func (c *RblCollector) Collect(ch chan<- prometheus.Metric) {
        // these are our targets to check
        hosts := c.targets
    
        ch <- prometheus.MustNewConstMetric(
    Severity: Major
    Found in collector/collector.go - About 2 hrs to fix

      Method DNSBLApp.Bootstrap has a Cognitive Complexity of 33 (exceeds 20 allowed). Consider refactoring.
      Open

      func (a *DNSBLApp) Bootstrap() {
          a.App.Action = func(cCtx *cli.Context) error {
              // setup logging
              handler := &slog.HandlerOptions{}
              var writer io.Writer
      Severity: Minor
      Found in app/app.go - About 2 hrs 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 NewApp has 84 lines of code (exceeds 50 allowed). Consider refactoring.
      Open

      func NewApp(name string, version string) DNSBLApp {
          appName = name
          appVersion = version
      
          a := cli.NewApp()
      Severity: Major
      Found in app/app.go - About 2 hrs to fix

        Method RBL.lookup has 57 lines of code (exceeds 50 allowed). Consider refactoring.
        Open

        func (r *RBL) lookup(blocklist string, target Target, c chan<- Result, logger *slog.Logger) {
            logger.Debug("next up")
        
            result := Result{
                Target: target,
        Severity: Minor
        Found in pkg/rbl/rbl.go - About 1 hr to fix

          Method DNSBLApp.Bootstrap has 9 return statements (exceeds 4 allowed).
          Open

          func (a *DNSBLApp) Bootstrap() {
              a.App.Action = func(cCtx *cli.Context) error {
                  // setup logging
                  handler := &slog.HandlerOptions{}
                  var writer io.Writer
          Severity: Major
          Found in app/app.go - About 55 mins to fix

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

            func NewApp(name string, version string) DNSBLApp {
                appName = name
                appVersion = version
            
                a := cli.NewApp()
            Severity: Major
            Found in app/app.go - About 45 mins to fix

              Function CreateCollector has 5 arguments (exceeds 4 allowed). Consider refactoring.
              Open

              func CreateCollector(rbls []string, targets []string, domainBased bool, dnsUtil *dns.DNSUtil, logger *slog.Logger) *collector.RblCollector {
              Severity: Minor
              Found in internal/setup/setup.go - About 35 mins to fix

                Function NewRblCollector has 5 arguments (exceeds 4 allowed). Consider refactoring.
                Open

                func NewRblCollector(rbls []string, targets []string, domainBased bool, util *dns.DNSUtil, logger *slog.Logger) *RblCollector {
                Severity: Minor
                Found in collector/collector.go - About 35 mins to fix
                  Severity
                  Category
                  Status
                  Source
                  Language