koraktor/mavanagaiata

View on GitHub
src/main/java/com/github/koraktor/mavanagaiata/mojo/ChangelogMojo.java

Summary

Maintainability
A
1 hr
Test Coverage
A
93%

Method run has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
Open

        protected void run() throws GitRepositoryException {
            if (skipCommitsPattern != null && skipCommitsPattern.matcher(currentCommit.getMessage()).find()) {
                return;
            }

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 initConfiguration has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
Open

    @Override
    protected void initConfiguration() {
        super.initConfiguration();

        format = formatTemplate.getFormat().apply(format);
Severity: Minor
Found in src/main/java/com/github/koraktor/mavanagaiata/mojo/ChangelogMojo.java - 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

Avoid excessively long variable names like skipCommitsMatching
Open

    String skipCommitsMatching;

LongVariable

Since: PMD 0.3

Priority: Medium

Categories: Style

Remediation Points: 50000

Fields, formal arguments, or local variable names that are too long can make the code difficult to follow.

Example:

public class Something {
 int reallyLongIntName = -3; // VIOLATION - Field
 public static void main( String argumentsList[] ) { // VIOLATION - Formal
 int otherReallyLongName = -5; // VIOLATION - Local
 for (int interestingIntIndex = 0; // VIOLATION - For
 interestingIntIndex < 10;
 interestingIntIndex ++ ) {
 }
}

Avoid excessively long variable names like skipCommitsPattern
Open

    private Pattern skipCommitsPattern;

LongVariable

Since: PMD 0.3

Priority: Medium

Categories: Style

Remediation Points: 50000

Fields, formal arguments, or local variable names that are too long can make the code difficult to follow.

Example:

public class Something {
 int reallyLongIntName = -3; // VIOLATION - Field
 public static void main( String argumentsList[] ) { // VIOLATION - Formal
 int otherReallyLongName = -5; // VIOLATION - Local
 for (int interestingIntIndex = 0; // VIOLATION - For
 interestingIntIndex < 10;
 interestingIntIndex ++ ) {
 }
}

Private field 'repository' could be made final; it is only initialized in the declaration or constructor.
Open

        private GitRepository repository;

ImmutableField

Since: PMD 2.0

Priority: Medium

Categories: Style

Remediation Points: 50000

Identifies private fields whose values never change once they are initialized either in the declaration of the field or by a constructor. This helps in converting existing classes to becoming immutable ones.

Example:

public class Foo {
 private int x; // could be final
 public Foo() {
 x = 7;
 }
 public void foo() {
 int a = x + 2;
 }
}

Private field 'tags' could be made final; it is only initialized in the declaration or constructor.
Open

        private Map<String, GitTag> tags;

ImmutableField

Since: PMD 2.0

Priority: Medium

Categories: Style

Remediation Points: 50000

Identifies private fields whose values never change once they are initialized either in the declaration of the field or by a constructor. This helps in converting existing classes to becoming immutable ones.

Example:

public class Foo {
 private int x; // could be final
 public Foo() {
 x = 7;
 }
 public void foo() {
 int a = x + 2;
 }
}

There are no issues that match your filters.

Category
Status