Preparing report...

Report for github.com/fe3dback/go-arch-lint

A+    Excellent!    Found 92 issues across 142 files

Tweet

gofmt100%

Gofmt formats Go programs. We run gofmt -s on your code, where -s is for the "simplify" command

No problems detected. Good job!


go_vet100%

go vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string.

No problems detected. Good job!


gocyclo100%

Gocyclo calculates cyclomatic complexities of functions in Go source code. The cyclomatic complexity of a function is calculated according to the following rules: 1 is the base complexity of a function +1 for each 'if', 'for', 'case', '&&' or '||' Go Report Card warns on functions with cyclomatic complexity > 15.

No problems detected. Good job!


golint35%

Golint is a linter for Go source code.

    • go-arch-lint/internal/models/resolved_file.go
    • Line 4: warning: exported const ImportTypeStdLib should have comment (or a comment on this block) or be unexported (golint)
    • Line 10: warning: exported type ImportType should have comment or be unexported (golint)
    • Line 12: warning: exported type ResolvedImport should have comment or be unexported (golint)
    • Line 17: warning: exported type ProjectFile should have comment or be unexported (golint)
    • Line 22: warning: exported type FileHold should have comment or be unexported (golint)
    • go-arch-lint/internal/models/speca/referable_regexp.go
    • Line 10: warning: exported type ReferableRegExp should have comment or be unexported (golint)
    • Line 16: warning: exported function NewReferableRegExp should have comment or be unexported (golint)
    • Line 20: warning: exported function NewEmptyReferableRegExp should have comment or be unexported (golint)
    • Line 24: warning: exported method ReferableRegExp.Reference should have comment or be unexported (golint)
    • Line 28: warning: exported method ReferableRegExp.Value should have comment or be unexported (golint)
    • go-arch-lint/internal/models/arch/arch.go
    • Line 9: warning: comment on exported type ComponentName should be of the form "ComponentName ..." (with optional leading article) (golint)
    • Line 12: warning: comment on exported type VendorName should be of the form "VendorName ..." (with optional leading article) (golint)
    • Line 15: warning: exported type Document should have comment or be unexported (golint)
    • Line 49: warning: exported type Options should have comment or be unexported (golint)
    • Line 57: warning: exported type ExcludedDirectories should have comment or be unexported (golint)
    • Line 68: warning: exported type ExcludedFilesRegExp should have comment or be unexported (golint)
    • Line 77: warning: exported type Vendors should have comment or be unexported (golint)
    • Line 84: warning: exported type Vendor should have comment or be unexported (golint)
    • Line 94: warning: exported type CommonVendors should have comment or be unexported (golint)
    • Line 101: warning: exported type Components should have comment or be unexported (golint)
    • Line 108: warning: exported type Component should have comment or be unexported (golint)
    • Line 119: warning: exported type CommonComponents should have comment or be unexported (golint)
    • Line 126: warning: exported type Dependencies should have comment or be unexported (golint)
    • Line 133: warning: exported type DependencyRule should have comment or be unexported (golint)
    • go-arch-lint/internal/schema/provider.go
    • Line 7: warning: exported type Provider should have comment or be unexported (golint)
    • Line 10: warning: exported function NewProvider should have comment or be unexported (golint)
    • Line 14: warning: exported method Provider.Provide should have comment or be unexported (golint)
    • go-arch-lint/internal/glue/yaml/spec/spec_v0_common.go
    • Line 21: warning: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) (golint)
    • Line 31: warning: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) (golint)
    • go-arch-lint/internal/glue/code/render.go
    • Line 19: warning: exported type Render should have comment or be unexported (golint)
    • Line 23: warning: exported function NewRender should have comment or be unexported (golint)
    • Line 29: warning: exported method Render.SourceCode should have comment or be unexported (golint)
    • go-arch-lint/internal/models/errors.go
    • Line 3: warning: exported type UserSpaceError should have comment or be unexported (golint)
    • Line 11: warning: exported method UserSpaceError.Is should have comment or be unexported (golint)
    • Line 23: warning: exported function NewUserSpaceError should have comment or be unexported (golint)
    • go-arch-lint/internal/models/speca/referable_bool.go
    • Line 8: warning: exported type ReferableBool should have comment or be unexported (golint)
    • Line 14: warning: exported function NewReferableBool should have comment or be unexported (golint)
    • Line 18: warning: exported function NewEmptyReferableBool should have comment or be unexported (golint)
    • Line 22: warning: exported method ReferableBool.Reference should have comment or be unexported (golint)
    • Line 26: warning: exported method ReferableBool.Value should have comment or be unexported (golint)
    • go-arch-lint/internal/models/model_check.go
    • Line 4: warning: exported type Check should have comment or be unexported (golint)
    • Line 12: warning: exported type CheckNotice should have comment or be unexported (golint)
    • Line 20: warning: exported type CheckArchWarningDependency should have comment or be unexported (golint)
    • Line 29: warning: exported type CheckArchWarningMatch should have comment or be unexported (golint)
    • Line 36: warning: exported type CheckResult should have comment or be unexported (golint)
    • go-arch-lint/internal/models/model_mapping.go
    • Line 4: warning: exported const MappingSchemeGrouped should have comment (or a comment on this block) or be unexported (golint)
    • Line 9: warning: exported type MappingScheme should have comment or be unexported (golint)
    • Line 11: warning: exported type Mapping should have comment or be unexported (golint)
    • Line 19: warning: exported type MappingGrouped should have comment or be unexported (golint)
    • Line 24: warning: exported type MappingList should have comment or be unexported (golint)
    • go-arch-lint/internal/models/speca/arch.go
    • Line 8: warning: exported type Spec should have comment or be unexported (golint)
    • Line 19: warning: exported type Allow should have comment or be unexported (golint)
    • Line 23: warning: exported type Component should have comment or be unexported (golint)
    • Line 32: warning: exported type SpecialFlags should have comment or be unexported (golint)
    • Line 37: warning: exported type Integrity should have comment or be unexported (golint)
    • Line 42: warning: exported type Notice should have comment or be unexported (golint)
    • go-arch-lint/internal/models/speca/referable_str.go
    • Line 8: warning: exported type ReferableString should have comment or be unexported (golint)
    • Line 14: warning: exported function NewReferableString should have comment or be unexported (golint)
    • Line 18: warning: exported function NewEmptyReferableString should have comment or be unexported (golint)
    • Line 22: warning: exported method ReferableString.Reference should have comment or be unexported (golint)
    • Line 26: warning: exported method ReferableString.Value should have comment or be unexported (golint)
    • go-arch-lint/internal/models/speca/referable_int.go
    • Line 8: warning: exported type ReferableInt should have comment or be unexported (golint)
    • Line 14: warning: exported function NewReferableInt should have comment or be unexported (golint)
    • Line 18: warning: exported function NewEmptyReferableInt should have comment or be unexported (golint)
    • Line 22: warning: exported method ReferableInt.Reference should have comment or be unexported (golint)
    • Line 26: warning: exported method ReferableInt.Value should have comment or be unexported (golint)
    • go-arch-lint/internal/glue/yaml/spec/spec_v1.go
    • Line 12: warning: exported type ArchV1Document should have comment or be unexported (golint)
    • Line 34: warning: exported type ArchV1Allow should have comment or be unexported (golint)
    • Line 41: warning: exported type ArchV1Vendor should have comment or be unexported (golint)
    • Line 48: warning: exported type ArchV1Component should have comment or be unexported (golint)
    • Line 55: warning: exported type ArchV1Rules should have comment or be unexported (golint)
    • Line 108: warning: exported method ArchV1Document.Reference should have comment or be unexported (golint)
    • Line 112: warning: exported method ArchV1Document.Version should have comment or be unexported (golint)
    • Line 116: warning: exported method ArchV1Document.WorkingDirectory should have comment or be unexported (golint)
    • Line 123: warning: exported method ArchV1Document.Options should have comment or be unexported (golint)
    • Line 127: warning: exported method ArchV1Document.ExcludedDirectories should have comment or be unexported (golint)
    • Line 131: warning: exported method ArchV1Document.ExcludedFilesRegExp should have comment or be unexported (golint)
    • Line 135: warning: exported method ArchV1Document.Vendors should have comment or be unexported (golint)
    • Line 139: warning: exported method ArchV1Document.Components should have comment or be unexported (golint)
    • Line 143: warning: exported method ArchV1Document.CommonComponents should have comment or be unexported (golint)
    • Line 147: warning: exported method ArchV1Document.CommonVendors should have comment or be unexported (golint)
    • Line 151: warning: exported method ArchV1Document.Dependencies should have comment or be unexported (golint)
    • Line 256: warning: exported method ArchV1Allow.Reference should have comment or be unexported (golint)
    • Line 260: warning: exported method ArchV1Allow.IsDependOnAnyVendor should have comment or be unexported (golint)
    • Line 277: warning: exported method ArchV1Vendor.Reference should have comment or be unexported (golint)
    • Line 281: warning: exported method ArchV1Vendor.ImportPaths should have comment or be unexported (golint)
    • Line 299: warning: exported method ArchV1Component.Reference should have comment or be unexported (golint)
    • Line 303: warning: exported method ArchV1Component.RelativePaths should have comment or be unexported (golint)
    • Line 321: warning: exported method ArchV1Rules.Reference should have comment or be unexported (golint)
    • Line 325: warning: exported method ArchV1Rules.MayDependOn should have comment or be unexported (golint)
    • Line 329: warning: exported method ArchV1Rules.CanUse should have comment or be unexported (golint)
    • Line 333: warning: exported method ArchV1Rules.AnyProjectDeps should have comment or be unexported (golint)
    • Line 337: warning: exported method ArchV1Rules.AnyVendorDeps should have comment or be unexported (golint)
    • go-arch-lint/internal/commands/root/command.go
    • Line 19: warning: exported type CommandAssembler should have comment or be unexported (golint)
    • Line 26: warning: exported function NewRootCommandAssembler should have comment or be unexported (golint)
    • Line 41: warning: exported method CommandAssembler.Assemble should have comment or be unexported (golint)
    • go-arch-lint/internal/commands/mapping/command.go
    • Line 26: warning: exported type CommandAssembler should have comment or be unexported (golint)
    • Line 39: warning: exported function NewMappingCommandAssembler should have comment or be unexported (golint)
    • Line 54: warning: exported method CommandAssembler.Assemble should have comment or be unexported (golint)
    • go-arch-lint/internal/commands/schema/command.go
    • Line 18: warning: exported type CommandAssembler should have comment or be unexported (golint)
    • Line 29: warning: exported function NewSchemaCommandAssembler should have comment or be unexported (golint)
    • Line 42: warning: exported method CommandAssembler.Assemble should have comment or be unexported (golint)
    • go-arch-lint/internal/commands/version/command.go
    • Line 10: warning: exported type CommandAssembler should have comment or be unexported (golint)
    • Line 15: warning: exported function NewVersionCommandAssembler should have comment or be unexported (golint)
    • Line 21: warning: exported method CommandAssembler.Assemble should have comment or be unexported (golint)
    • go-arch-lint/internal/glue/path/resolver.go
    • Line 10: warning: exported type Resolver should have comment or be unexported (golint)
    • Line 14: warning: exported function NewResolver should have comment or be unexported (golint)
    • Line 18: warning: exported method Resolver.Resolve should have comment or be unexported (golint)
    • go-arch-lint/internal/glue/printer/color_printer.go
    • Line 7: warning: exported type ColorPrinter should have comment or be unexported (golint)
    • Line 11: warning: exported function NewColorPrinter should have comment or be unexported (golint)
    • Line 17: warning: exported method ColorPrinter.Red should have comment or be unexported (golint)
    • Line 21: warning: exported method ColorPrinter.Green should have comment or be unexported (golint)
    • Line 25: warning: exported method ColorPrinter.Yellow should have comment or be unexported (golint)
    • Line 29: warning: exported method ColorPrinter.Blue should have comment or be unexported (golint)
    • Line 33: warning: exported method ColorPrinter.Magenta should have comment or be unexported (golint)
    • Line 37: warning: exported method ColorPrinter.Cyan should have comment or be unexported (golint)
    • Line 41: warning: exported method ColorPrinter.White should have comment or be unexported (golint)
    • Line 45: warning: exported method ColorPrinter.Gray should have comment or be unexported (golint)
    • go-arch-lint/internal/models/speca/referable_path.go
    • Line 8: warning: exported type ReferableResolvedPath should have comment or be unexported (golint)
    • Line 14: warning: exported function NewReferableResolvedPath should have comment or be unexported (golint)
    • Line 18: warning: exported function NewEmptyReferableResolvedPath should have comment or be unexported (golint)
    • Line 22: warning: exported method ReferableResolvedPath.Reference should have comment or be unexported (golint)
    • Line 26: warning: exported method ReferableResolvedPath.Value should have comment or be unexported (golint)
    • go-arch-lint/internal/glue/yaml/spec/spec_v2.go
    • Line 13: warning: exported type ArchV2Document should have comment or be unexported (golint)
    • Line 37: warning: exported type ArchV2Allow should have comment or be unexported (golint)
    • Line 44: warning: exported type ArchV2Vendor should have comment or be unexported (golint)
    • Line 51: warning: exported type ArchV2Component should have comment or be unexported (golint)
    • Line 58: warning: exported type ArchV2Rules should have comment or be unexported (golint)
    • Line 111: warning: exported method ArchV2Document.Reference should have comment or be unexported (golint)
    • Line 115: warning: exported method ArchV2Document.Version should have comment or be unexported (golint)
    • Line 119: warning: exported method ArchV2Document.WorkingDirectory should have comment or be unexported (golint)
    • Line 123: warning: exported method ArchV2Document.Options should have comment or be unexported (golint)
    • Line 127: warning: exported method ArchV2Document.ExcludedDirectories should have comment or be unexported (golint)
    • Line 131: warning: exported method ArchV2Document.ExcludedFilesRegExp should have comment or be unexported (golint)
    • Line 135: warning: exported method ArchV2Document.Vendors should have comment or be unexported (golint)
    • Line 139: warning: exported method ArchV2Document.Components should have comment or be unexported (golint)
    • Line 143: warning: exported method ArchV2Document.CommonComponents should have comment or be unexported (golint)
    • Line 147: warning: exported method ArchV2Document.CommonVendors should have comment or be unexported (golint)
    • Line 151: warning: exported method ArchV2Document.Dependencies should have comment or be unexported (golint)
    • Line 267: warning: exported method ArchV2Allow.Reference should have comment or be unexported (golint)
    • Line 271: warning: exported method ArchV2Allow.IsDependOnAnyVendor should have comment or be unexported (golint)
    • Line 288: warning: exported method ArchV2Vendor.Reference should have comment or be unexported (golint)
    • Line 292: warning: exported method ArchV2Vendor.ImportPaths should have comment or be unexported (golint)
    • Line 316: warning: exported method ArchV2Component.Reference should have comment or be unexported (golint)
    • Line 320: warning: exported method ArchV2Component.RelativePaths should have comment or be unexported (golint)
    • Line 351: warning: exported method ArchV2Rules.Reference should have comment or be unexported (golint)
    • Line 355: warning: exported method ArchV2Rules.MayDependOn should have comment or be unexported (golint)
    • Line 359: warning: exported method ArchV2Rules.CanUse should have comment or be unexported (golint)
    • Line 363: warning: exported method ArchV2Rules.AnyProjectDeps should have comment or be unexported (golint)
    • Line 367: warning: exported method ArchV2Rules.AnyVendorDeps should have comment or be unexported (golint)
    • go-arch-lint/internal/commands/check/command.go
    • Line 20: warning: exported type CommandAssembler should have comment or be unexported (golint)
    • Line 33: warning: exported function NewCheckCommandAssembler should have comment or be unexported (golint)
    • Line 48: warning: exported method CommandAssembler.Assemble should have comment or be unexported (golint)
    • go-arch-lint/internal/models/flags_root.go
    • Line 4: warning: exported type OutputType should have comment or be unexported (golint)
    • Line 6: warning: exported type FlagsRoot should have comment or be unexported (golint)
    • Line 13: warning: exported var OutputTypeVariantsConst should have comment or be unexported (golint)
    • Line 19: warning: exported const OutputTypeDefault should have comment (or a comment on this block) or be unexported (golint)
    • go-arch-lint/internal/models/mixins.go
    • Line 4: warning: exported const ProjectInfoDefaultArchFileName should have comment (or a comment on this block) or be unexported (golint)
    • Line 9: warning: exported type ProjectInfo should have comment or be unexported (golint)

license100%

Checks whether your project has a LICENSE file.

No problems detected. Good job!


ineffassign100%

IneffAssign detects ineffectual assignments in Go code.

No problems detected. Good job!


misspell100%

Misspell Finds commonly misspelled English words

No problems detected. Good job!