From 20698c9679ee838d81da87c4883271fb6ea37180 Mon Sep 17 00:00:00 2001 From: Nightapes Date: Tue, 14 May 2019 20:19:36 +0200 Subject: [PATCH] style(lint): fix lint issues --- .golangci.yml | 11 +++++++++++ .travis.yml | 2 +- cmd/go-semantic-release/main.go | 1 + internal/analyzer/analyzer.go | 20 ++++++++++++------- internal/analyzer/angular.go | 11 ++++++----- internal/gitutil/gitutil.go | 26 ++++++++++++++++--------- internal/storage/storage.go | 1 + pkg/semanticrelease/semantic-release.go | 21 ++++++++++++-------- 8 files changed, 63 insertions(+), 30 deletions(-) create mode 100644 .golangci.yml diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000..0e24022 --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,11 @@ +run: + tests: true + +linters-settings: + golint: + min-confidence: 0 +issues: + exclude-use-default: false +linters: + enable: + - golint \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 94ecd57..18bbec3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ before_script: - curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.16.0 script: - - golangci-lint run + - golangci-lint run --golint.min-confidence 0 --exclude-use-default=no - go test -v ./... - go build -o build/go-semantic-release ./cmd/go-semantic-release/ - GOOS=windows GOARCH=386 go build -o build/go-semantic-release.exe ./cmd/go-semantic-release/ diff --git a/cmd/go-semantic-release/main.go b/cmd/go-semantic-release/main.go index 73241e2..c81523a 100644 --- a/cmd/go-semantic-release/main.go +++ b/cmd/go-semantic-release/main.go @@ -1,3 +1,4 @@ +// Package main as start point for go build package main import ( diff --git a/internal/analyzer/analyzer.go b/internal/analyzer/analyzer.go index 3e32c64..93b4578 100644 --- a/internal/analyzer/analyzer.go +++ b/internal/analyzer/analyzer.go @@ -1,3 +1,4 @@ +// Package analyzer provides different commit analyzer package analyzer import ( @@ -5,20 +6,23 @@ import ( log "github.com/sirupsen/logrus" ) +//Analyzer struct type Analyzer struct { CommitFormat string } +//Rules for commits type Rules struct { Tag string Release string } -type AnalyzeCommit interface { - Analyze(commit gitutil.Commit, tag string) (AnalyzedCommit, bool) - GetRules() []Rules +type analyzeCommit interface { + analyze(commit gitutil.Commit, tag string) (AnalyzedCommit, bool) + getRules() []Rules } +//AnalyzedCommit struct type AnalyzedCommit struct { Commit gitutil.Commit ParsedMessage string @@ -26,6 +30,7 @@ type AnalyzedCommit struct { ParsedBreakingChangeMessage string } +//New Analyzer struct for given commit format func New(format string) *Analyzer { return &Analyzer{ CommitFormat: format, @@ -33,13 +38,14 @@ func New(format string) *Analyzer { } +// Analyze commits and return commits splitted by major,minor,patch func (a *Analyzer) Analyze(commits []gitutil.Commit) map[string][]AnalyzedCommit { - var commitAnalayzer AnalyzeCommit + var commitAnalayzer analyzeCommit switch a.CommitFormat { case "angular": log.Infof("analyze angular format") - commitAnalayzer = NewAngular() + commitAnalayzer = newAngular() } analyzedCommits := make(map[string][]AnalyzedCommit) @@ -48,8 +54,8 @@ func (a *Analyzer) Analyze(commits []gitutil.Commit) map[string][]AnalyzedCommit analyzedCommits["patch"] = make([]AnalyzedCommit, 0) for _, commit := range commits { - for _, rule := range commitAnalayzer.GetRules() { - analyzedCommit, hasBreakingChange := commitAnalayzer.Analyze(commit, rule.Tag) + for _, rule := range commitAnalayzer.getRules() { + analyzedCommit, hasBreakingChange := commitAnalayzer.analyze(commit, rule.Tag) if hasBreakingChange { analyzedCommits["major"] = append(analyzedCommits["major"], analyzedCommit) } else { diff --git a/internal/analyzer/angular.go b/internal/analyzer/angular.go index 936e42e..178fc7e 100644 --- a/internal/analyzer/angular.go +++ b/internal/analyzer/angular.go @@ -1,3 +1,4 @@ +// Package analyzer provides different commit analyzer package analyzer import ( @@ -7,13 +8,13 @@ import ( "github.com/Nightapes/go-semantic-release/internal/gitutil" ) -type Angular struct { +type angular struct { rules []Rules regex string } -func NewAngular() *Angular { - return &Angular{ +func newAngular() *angular { + return &angular{ regex: `(TAG)(?:\((.*)\))?: (.*)`, rules: []Rules{ { @@ -31,11 +32,11 @@ func NewAngular() *Angular { } } -func (a *Angular) GetRules() []Rules { +func (a *angular) getRules() []Rules { return a.rules } -func (a *Angular) Analyze(commit gitutil.Commit, tag string) (AnalyzedCommit, bool) { +func (a *angular) analyze(commit gitutil.Commit, tag string) (AnalyzedCommit, bool) { analyzed := AnalyzedCommit{ Commit: commit, diff --git a/internal/gitutil/gitutil.go b/internal/gitutil/gitutil.go index f68f7eb..fff3b7b 100644 --- a/internal/gitutil/gitutil.go +++ b/internal/gitutil/gitutil.go @@ -1,3 +1,4 @@ +// Package gitutil provides helper methods for git package gitutil import ( @@ -10,29 +11,33 @@ import ( "gopkg.in/src-d/go-git.v4/plumbing/object" ) +// Commit struct type Commit struct { Message string Author string Hash string } -type GitUtils struct { +// GitUtil struct +type GitUtil struct { Repository *git.Repository } -func New(folder string) (*GitUtils, error) { +// New GitUtil struct and open git repository +func New(folder string) (*GitUtil, error) { r, err := git.PlainOpen(folder) if err != nil { return nil, err } - utils := &GitUtils{ + utils := &GitUtil{ Repository: r, } return utils, nil } -func (g *GitUtils) GetHash() (string, error) { +// GetHash from git HEAD +func (g *GitUtil) GetHash() (string, error) { ref, err := g.Repository.Head() if err != nil { return "", err @@ -40,20 +45,22 @@ func (g *GitUtils) GetHash() (string, error) { return ref.Hash().String(), nil } -func (g *GitUtils) GetBranch() (string, error) { +// GetBranch from git HEAD +func (g *GitUtil) GetBranch() (string, error) { ref, err := g.Repository.Head() if err != nil { return "", err } if !ref.Name().IsBranch() { - return "", fmt.Errorf("No branch found, found %s, please checkout a branch (git checkout )", ref.Name().String()) + return "", fmt.Errorf("no branch found, found %s, please checkout a branch (git checkout )", ref.Name().String()) } return ref.Name().Short(), nil } -func (g *GitUtils) GetLastVersion() (*semver.Version, string, error) { +// GetLastVersion from git tags +func (g *GitUtil) GetLastVersion() (*semver.Version, string, error) { log.Debugf("GetLastVersion") @@ -103,7 +110,8 @@ func (g *GitUtils) GetLastVersion() (*semver.Version, string, error) { return tags[0], tagObject.Target.String(), nil } -func (g *GitUtils) GetCommits(lastTagHash string) ([]Commit, error) { +// GetCommits from git hash to HEAD +func (g *GitUtil) GetCommits(lastTagHash string) ([]Commit, error) { log.Printf("Read head") ref, err := g.Repository.Head() @@ -136,5 +144,5 @@ func (g *GitUtils) GetCommits(lastTagHash string) ([]Commit, error) { return nil }) - return commits, nil + return commits, err } diff --git a/internal/storage/storage.go b/internal/storage/storage.go index 76787cc..fc2bb91 100644 --- a/internal/storage/storage.go +++ b/internal/storage/storage.go @@ -1,3 +1,4 @@ +// Package storage helper for saving/reading version file package storage import ( diff --git a/pkg/semanticrelease/semantic-release.go b/pkg/semanticrelease/semantic-release.go index 5d97007..291d5db 100644 --- a/pkg/semanticrelease/semantic-release.go +++ b/pkg/semanticrelease/semantic-release.go @@ -1,3 +1,4 @@ +// Package semanticrelease provides public methods to include in own code package semanticrelease import ( @@ -10,7 +11,7 @@ import ( log "github.com/sirupsen/logrus" ) -// GetNextVersion from .version or calculate new +// GetNextVersion from .version or calculate new from commits func GetNextVersion(repro string) error { util, err := gitutil.New(repro) if err != nil { @@ -38,8 +39,11 @@ func GetNextVersion(repro string) error { if lastVersion == nil { defaultVersion, _ := semver.NewVersion("1.0.0") - SetVersion(defaultVersion.String(), repro) - fmt.Printf(defaultVersion.String()) + err := SetVersion(defaultVersion.String(), repro) + if err != nil { + return err + } + fmt.Printf("%s", defaultVersion.String()) return nil } @@ -64,12 +68,16 @@ func GetNextVersion(repro string) error { newVersion = lastVersion.IncPatch() } - SetVersion(newVersion.String(), repro) - fmt.Printf(newVersion.String()) + err = SetVersion(newVersion.String(), repro) + if err != nil { + return err + } + fmt.Printf("%s", newVersion.String()) return err } +//SetVersion for git repository func SetVersion(version string, repro string) error { util, err := gitutil.New(repro) @@ -109,6 +117,3 @@ func SetVersion(version string, repro string) error { return storage.Write(newVersionContent) } - -func Release() { -}