grokify/mogo

View on GitHub

Showing 159 of 159 total issues

Consider simplifying this complex logical expression.
Open

        if !(inclExists && inclNotExists) &&
            ((!inclExists && exists) || (!inclNotExists && !exists)) {
Severity: Major
Found in path/filepathutil/filepathutil.go - About 40 mins to fix

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

    func GetRSAPublicKeyForPKCS8PublicKeyPath(pubKeyPkcs8Path string) (*rsa.PublicKey, error) {
        var pubKey *rsa.PublicKey
    
        isFile, err := osutil.IsFile(pubKeyPkcs8Path, true)
        if err != nil {
    Severity: Major
    Found in crypto/x509util/x509util.go - About 40 mins to fix

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

      func AddFileToZip(zipWriter *zip.Writer, filename string, removePaths bool) error {
          fileToZip, err := os.Open(filename)
          if err != nil {
              return err
          }
      Severity: Major
      Found in compress/ziputil/create_achive.go - About 40 mins to fix

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

        func ValidAlphabets(a1, a2 string, a2optional bool) error {
            if a1 == "" {
                return errors.New("alphabet 1 cannot be empty")
            } else if !stringsutil.UniqueRunes(a1) {
                return errors.New("alphabet 1 chars are not unique")
        Severity: Major
        Found in encoding/basex/encoding.go - About 40 mins to fix

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

          func ParseEndpoint(s string) (*Endpoint, error) {
              parts := strings.Fields(s)
              if len(parts) == 0 {
                  return nil, errors.New("empty string cannot be parsed as RUL")
              } else if len(parts) == 1 {
          Severity: Major
          Found in net/http/httputilmore/endpoint.go - About 40 mins to fix

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

            func AbsFilepath(path string) (string, error) {
                path = strings.TrimSpace(path)
                if len(path) == 0 {
                    return path, nil
                } else if filepath.IsAbs(path) {
            Severity: Major
            Found in os/osutil/osutil.go - About 40 mins to fix

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

              func LogOrNot(ctx context.Context, logger *slog.Logger, level slog.Level, msg string, attrs ...slog.Attr) {
              Severity: Minor
              Found in log/slogutil/slogutil.go - About 35 mins to fix

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

                func JoinInterface(arr []any, sep string, stripRepeatedSep bool, stripEmbeddedSep bool, altSep string) string {
                Severity: Minor
                Found in type/stringsutil/stringsutil.go - About 35 mins to fix

                  Method RegexpSet.FindAllString has 5 arguments (exceeds 4 allowed). Consider refactoring.
                  Open

                  func (set *RegexpSet) FindAllString(pattern string, s string, n int, useStore bool, key string) []string {
                  Severity: Minor
                  Found in regexp/regexputil/regexputil.go - About 35 mins to fix

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

                    func BuildGifAnimationSimpleRead(src *gif.GIF, delay int, names []string, f ToPalettedFunc, consistentSize bool) (*gif.GIF, error) {
                    Severity: Minor
                    Found in image/imageutil/animate.go - About 35 mins to fix

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

                      func TimeDeltaDowString(base time.Time, wantDowS string, deltaUnits int, wantInclusive bool, wantStartOfDay bool) (time.Time, error) {
                      Severity: Minor
                      Found in time/timeutil/timeutil_delta.go - About 35 mins to fix

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

                        func LogOrNotAny(ctx context.Context, logger *slog.Logger, level slog.Level, msg string, args ...any) {
                        Severity: Minor
                        Found in log/slogutil/slogutil.go - About 35 mins to fix

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

                          func TimeDeltaDow(base time.Time, wantDow time.Weekday, deltaUnits int, wantInclusive bool, wantStartOfDay bool) (time.Time, error) {
                          Severity: Minor
                          Found in time/timeutil/timeutil_delta.go - About 35 mins to fix

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

                            func TimeDeltaDowInt(base time.Time, wantDow time.Weekday, deltaUnits int, wantInclusive bool, wantStartOfDay bool) (time.Time, error) {
                            Severity: Minor
                            Found in time/timeutil/timeutil_delta.go - About 35 mins to fix

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

                              func ReadCSVFilesSingleColumnValuesString(files []string, sep rune, hasHeader, trimSpace bool, colIdx uint, condenseUniqueSort bool) ([]string, error) {
                              Severity: Minor
                              Found in encoding/csvutil/single_column.go - About 35 mins to fix

                                Method RegexpSet.FindAllStringSubmatch has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                Open

                                func (set *RegexpSet) FindAllStringSubmatch(pattern string, s string, n int, useStore bool, key string) [][]string {
                                Severity: Minor
                                Found in regexp/regexputil/regexputil.go - About 35 mins to fix

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

                                  func ReadCSVFileSingleColumnValuesString(filename string, sep rune, hasHeader, trimSpace bool, colIdx uint, condenseUniqueSort bool) ([]string, error) {
                                  Severity: Minor
                                  Found in encoding/csvutil/single_column.go - About 35 mins to fix

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

                                    func MergeFilterCSVFiles(inPaths []string, outPath string, inComma rune, inStripBom bool, andFilter map[string]stringsutil.MatchInfo) error {
                                    Severity: Minor
                                    Found in encoding/csvutil/csvutil.go - About 35 mins to fix

                                      Similar blocks of code found in 2 locations. Consider refactoring.
                                      Open

                                      func URLToMarkdownLinkHostname(url string) string {
                                          rx := regexp.MustCompile(`(?i)^https?://([^/]+)(/[^/])`)
                                          m := rx.FindStringSubmatch(url)
                                          if len(m) > 1 {
                                              suffix := ""
                                      Severity: Minor
                                      Found in text/markdown/markdown.go and 1 other location - About 35 mins to fix
                                      type/stringsutil/markdown.go on lines 8..19

                                      Duplicated Code

                                      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                      Tuning

                                      This issue has a mass of 107.

                                      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                      Refactorings

                                      Further Reading

                                      Similar blocks of code found in 2 locations. Consider refactoring.
                                      Open

                                      func URLToMarkdownLinkHostname(url string) string {
                                          rx := regexp.MustCompile(`(?i)^https?://([^/]+)(/[^/])`)
                                          m := rx.FindStringSubmatch(url)
                                          if len(m) > 1 {
                                              suffix := ""
                                      Severity: Minor
                                      Found in type/stringsutil/markdown.go and 1 other location - About 35 mins to fix
                                      text/markdown/markdown.go on lines 20..31

                                      Duplicated Code

                                      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                      Tuning

                                      This issue has a mass of 107.

                                      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                      Refactorings

                                      Further Reading

                                      Severity
                                      Category
                                      Status
                                      Source
                                      Language