wisedog/ladybug

View on GitHub

Showing 112 of 112 total issues

Function SectionDelete has 13 return statements (exceeds 4 allowed).
Open

func SectionDelete(c *interfacer.AppContext, w http.ResponseWriter, r *http.Request) error {
    // get "section_id" from post form
    if err := r.ParseForm(); err != nil {
        return logAndRenderJSONWithStatus(w, Resp{Msg: "Parse form is not valid"}, http.StatusBadRequest,
            logTypeErr, "Section", "app", err.Error())
Severity: Major
Found in controllers/sections.go - About 1 hr to fix

    Function ExecUpdateResult has a Cognitive Complexity of 26 (exceeds 20 allowed). Consider refactoring.
    Open

    func ExecUpdateResult(c *interfacer.AppContext, w http.ResponseWriter, r *http.Request) error {
        var rv models.TestCaseResult
    
        if err := r.ParseForm(); err != nil {
            log.Error("TestExec", "type", "http", "msg ", err)
    Severity: Minor
    Found in controllers/testexecs.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 getPeriodReqTestCaseCoverage has 56 lines of code (exceeds 50 allowed). Consider refactoring.
    Open

    func getPeriodReqTestCaseCoverage(c *interfacer.AppContext, projectID, currentCov int) (string, error) {
        // req-testcase coverage is calculated by dealing with TcReqRelationHistory, Requirement table
        // This is pretty complex, if you have good idea to solve it : VERY WELCOME : )
    
        // first get all requirements in this project
    Severity: Minor
    Found in controllers/projects.go - About 1 hr to fix

      Function SaveUser has 55 lines of code (exceeds 50 allowed). Consider refactoring.
      Open

      func SaveUser(c *interfacer.AppContext, w http.ResponseWriter, r *http.Request) error {
          // First parse form value
          if err := r.ParseForm(); err != nil {
              log.Error("User", "type", "http", "msg ", err)
          }
      Severity: Minor
      Found in controllers/app.go - About 1 hr to fix

        Identical blocks of code found in 3 locations. Consider refactoring.
        Open

            for _, n := range sections {
                var nodeType string
                var parent string
                if n.RootNode == true {
                    nodeType = "root"
        Severity: Major
        Found in controllers/testdesign.go and 2 other locations - About 1 hr to fix
        controllers/requirements.go on lines 31..43
        controllers/testplans.go on lines 54..66

        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 135.

        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

        Identical blocks of code found in 3 locations. Consider refactoring.
        Open

            for _, n := range sections {
                var nodeType string
                var parent string
                if n.RootNode == true {
                    nodeType = "root"
        Severity: Major
        Found in controllers/requirements.go and 2 other locations - About 1 hr to fix
        controllers/testdesign.go on lines 45..57
        controllers/testplans.go on lines 54..66

        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 135.

        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

        Identical blocks of code found in 3 locations. Consider refactoring.
        Open

            for _, n := range sections {
                var nodeType string
                var parent string
                if n.RootNode == true {
                    nodeType = "root"
        Severity: Major
        Found in controllers/testplans.go and 2 other locations - About 1 hr to fix
        controllers/requirements.go on lines 31..43
        controllers/testdesign.go on lines 45..57

        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 135.

        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

        Function saveUpdateRequirement has 52 lines of code (exceeds 50 allowed). Consider refactoring.
        Open

        func saveUpdateRequirement(c *interfacer.AppContext, w http.ResponseWriter, r *http.Request, isUpdate bool) error {
            var req models.Requirement
            vars := mux.Vars(r)
            idStr := vars["id"]
        
        
        Severity: Minor
        Found in controllers/requirements.go - About 1 hr to fix

          Function saveUpdateRequirement has 10 return statements (exceeds 4 allowed).
          Open

          func saveUpdateRequirement(c *interfacer.AppContext, w http.ResponseWriter, r *http.Request, isUpdate bool) error {
              var req models.Requirement
              vars := mux.Vars(r)
              idStr := vars["id"]
          
          
          Severity: Major
          Found in controllers/requirements.go - About 1 hr to fix

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

            func TestUserValidateInformalEmail(t *testing.T) {
                user := User{Name: "Brünhild", Email: "asdadsasda", Password: "Destory_Rome"}
                errorMap := user.Validate()
                if len(errorMap) == 0 {
                    t.Error(`User{Name : "Brünhild", Email:"asdasdad"})`)
            Severity: Major
            Found in models/user_test.go and 2 other locations - About 45 mins to fix
            models/user_test.go on lines 8..19
            models/user_test.go on lines 22..34

            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 116.

            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 3 locations. Consider refactoring.
            Open

            func TestUserValidateAbsenseName(t *testing.T) {
                user := User{Name: "", Email: "aaa@bbb.com", Password: "Destory_Rome"}
                errorMap := user.Validate()
            
                if len(errorMap) == 0 {
            Severity: Major
            Found in models/user_test.go and 2 other locations - About 45 mins to fix
            models/user_test.go on lines 22..34
            models/user_test.go on lines 37..48

            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 116.

            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 3 locations. Consider refactoring.
            Open

            func TestUserValidateAbsenseEmail(t *testing.T) {
                user := User{Name: "Brünhild", Email: "", Password: "Destory_Rome"}
                errorMap := user.Validate()
            
                if len(errorMap) == 0 {
            Severity: Major
            Found in models/user_test.go and 2 other locations - About 45 mins to fix
            models/user_test.go on lines 8..19
            models/user_test.go on lines 37..48

            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 116.

            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

            Function ValidationFailAndRedirect has 6 arguments (exceeds 4 allowed). Consider refactoring.
            Open

            func ValidationFailAndRedirect(c *interfacer.AppContext, w http.ResponseWriter,
                r *http.Request, errorMap map[string]string, url string, value interface{}) {
            Severity: Minor
            Found in controllers/util.go - About 45 mins to fix

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

              func AddTool(c *interfacer.AppContext, w http.ResponseWriter, r *http.Request) error {
              
                  if err := r.ParseForm(); err != nil {
                      log.Error("Build", "type", "http", "msg ", err)
                      return errors.HttpError{Status: http.StatusInternalServerError, Desc: "ParseForm failed"}
              Severity: Major
              Found in controllers/builds.go - About 45 mins to fix

                Method Jenkins.AddJenkinsBuilds has a Cognitive Complexity of 23 (exceeds 20 allowed). Consider refactoring.
                Open

                func (j Jenkins) AddJenkinsBuilds(url string, projectID int, db *gorm.DB) error {
                    if db == nil {
                        return errors.New("Wrong database handler!")
                    }
                
                
                Severity: Minor
                Found in controllers/buildtools/jenkins.go - About 45 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

                Method Jenkins.AddJenkinsBuilds has 7 return statements (exceeds 4 allowed).
                Open

                func (j Jenkins) AddJenkinsBuilds(url string, projectID int, db *gorm.DB) error {
                    if db == nil {
                        return errors.New("Wrong database handler!")
                    }
                
                
                Severity: Major
                Found in controllers/buildtools/jenkins.go - About 45 mins to fix

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

                  func ExecDone(c *interfacer.AppContext, w http.ResponseWriter, r *http.Request) error {
                  
                      if err := r.ParseForm(); err != nil {
                          log.Error("TestExec", "type", "http", "msg ", err)
                          return errors.HttpError{Status: http.StatusInternalServerError, Desc: "ParseForm failed"}
                  Severity: Major
                  Found in controllers/testexecs.go - About 45 mins to fix

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

                    func ExecUpdateResult(c *interfacer.AppContext, w http.ResponseWriter, r *http.Request) error {
                        var rv models.TestCaseResult
                    
                        if err := r.ParseForm(); err != nil {
                            log.Error("TestExec", "type", "http", "msg ", err)
                    Severity: Major
                    Found in controllers/testexecs.go - About 45 mins to fix

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

                      func SectionAdd(c *interfacer.AppContext, w http.ResponseWriter, r *http.Request) error {
                          // get "section_id" from post form
                          if err := r.ParseForm(); err != nil {
                              log.Error("Section", "type", "app", "msg ", err.Error())
                              return RenderJSONWithStatus(w, Resp{Msg: "Parse form is not valid"}, http.StatusBadRequest)
                      Severity: Major
                      Found in controllers/sections.go - About 45 mins to fix

                        Method Travis.AddTravisBuilds has 7 return statements (exceeds 4 allowed).
                        Open

                        func (t Travis) AddTravisBuilds(url string, projectID int, db *gorm.DB) error {
                        
                            repo, u, err := t.ConnectionTest(url)
                            if err != nil {
                                return errors.New("Fail to get Travis repo information")
                        Severity: Major
                        Found in controllers/buildtools/travis.go - About 45 mins to fix
                          Severity
                          Category
                          Status
                          Source
                          Language