Skip to content

Commit 4517df1

Browse files
feat: move register methods to internal
* move Version, FullVersion to internal * rename DefaultConfig to GetDefaultConfig * rename RuleFailures to Failures * rename Messages to Message, RuleName to Name
1 parent 3a8924a commit 4517df1

24 files changed

+128
-104
lines changed

.goreleaser.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ builds:
1111
- windows
1212
- darwin
1313
ldflags:
14-
- -s -w -X github.com/conventionalcommit/commitlint/config.version={{.Version}} -X github.com/conventionalcommit/commitlint/config.commit={{.FullCommit}} -X github.com/conventionalcommit/commitlint/config.buildTime={{.Date}}
14+
- -s -w -X github.com/conventionalcommit/commitlint/internal.version={{.Version}} -X github.com/conventionalcommit/commitlint/internal.commit={{.FullCommit}} -X github.com/conventionalcommit/commitlint/internal.buildTime={{.Date}}
1515
ignore:
1616
- goos: darwin
1717
goarch: arm64

config/config.go

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@ import (
99
"path/filepath"
1010

1111
"golang.org/x/mod/semver"
12-
"gopkg.in/yaml.v3"
12+
yaml "gopkg.in/yaml.v3"
1313

14+
"github.com/conventionalcommit/commitlint/internal"
15+
"github.com/conventionalcommit/commitlint/internal/registry"
1416
"github.com/conventionalcommit/commitlint/lint"
1517
)
1618

@@ -75,6 +77,7 @@ func getConfigPath(confFilePath string) (confPath string, isDefault bool, retErr
7577

7678
// Parse parse given file in confPath, and return Config instance, error if any
7779
func Parse(confPath string) (*lint.Config, error) {
80+
confPath = filepath.Clean(confPath)
7881
confBytes, err := os.ReadFile(confPath)
7982
if err != nil {
8083
return nil, err
@@ -98,7 +101,7 @@ func Validate(conf *lint.Config) []error {
98101
if conf.Formatter == "" {
99102
errs = append(errs, errors.New("formatter is empty"))
100103
} else {
101-
_, ok := globalRegistry.GetFormatter(conf.Formatter)
104+
_, ok := registry.GetFormatter(conf.Formatter)
102105
if !ok {
103106
errs = append(errs, fmt.Errorf("unknown formatter '%s'", conf.Formatter))
104107
}
@@ -119,7 +122,7 @@ func Validate(conf *lint.Config) []error {
119122
}
120123

121124
// Check if rule is registered
122-
ruleData, ok := globalRegistry.GetRule(ruleName)
125+
ruleData, ok := registry.GetRule(ruleName)
123126
if !ok {
124127
errs = append(errs, fmt.Errorf("unknown rule '%s'", ruleName))
125128
continue
@@ -135,22 +138,22 @@ func Validate(conf *lint.Config) []error {
135138

136139
// WriteToFile util func to write config object to given file
137140
func WriteToFile(outFilePath string, conf *lint.Config) (retErr error) {
138-
file, err := os.Create(outFilePath)
141+
f, err := os.Create(outFilePath)
139142
if err != nil {
140143
return err
141144
}
142145
defer func() {
143-
err1 := file.Close()
144-
if retErr == nil && err1 != nil {
145-
retErr = err1
146+
err := f.Close()
147+
if retErr == nil && err != nil {
148+
retErr = err
146149
}
147150
}()
148151

149-
w := bufio.NewWriter(file)
152+
w := bufio.NewWriter(f)
150153
defer func() {
151-
err1 := w.Flush()
152-
if retErr == nil && err1 != nil {
153-
retErr = err1
154+
err := w.Flush()
155+
if retErr == nil && err != nil {
156+
retErr = err
154157
}
155158
}()
156159

@@ -169,9 +172,9 @@ func checkVersion(versionNo string) error {
169172
}
170173

171174
func checkIfMinVersion(versionNo string) error {
172-
cmp := semver.Compare(Version(), versionNo)
175+
cmp := semver.Compare(internal.Version(), versionNo)
173176
if cmp != -1 {
174177
return nil
175178
}
176-
return fmt.Errorf("min version required is %s. you have %s.\nupgrade commitlint", versionNo, Version())
179+
return fmt.Errorf("min version required is %s. you have %s.\nupgrade commitlint", versionNo, internal.Version())
177180
}

config/default.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@ package config
22

33
import (
44
"github.com/conventionalcommit/commitlint/formatter"
5+
"github.com/conventionalcommit/commitlint/internal"
56
"github.com/conventionalcommit/commitlint/lint"
67
"github.com/conventionalcommit/commitlint/rule"
78
)
89

910
var defConf = &lint.Config{
10-
Version: Version(),
11+
Version: internal.Version(),
1112

1213
Formatter: (&formatter.DefaultFormatter{}).Name(),
1314

@@ -148,8 +149,8 @@ var defRuleConf = map[string]lint.RuleConfig{
148149
},
149150
}
150151

151-
// DefaultConfig writes default config to given file
152-
func DefaultConfig(onlyEnabled bool) *lint.Config {
152+
// GetDefaultConfig writes default config to given file
153+
func GetDefaultConfig(onlyEnabled bool) *lint.Config {
153154
if !onlyEnabled {
154155
return defConf
155156
}

config/default_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package config
22

33
import (
44
"testing"
5+
6+
"github.com/conventionalcommit/commitlint/internal/registry"
57
)
68

79
func TestDefaultLint(t *testing.T) {
@@ -13,7 +15,7 @@ func TestDefaultLint(t *testing.T) {
1315
}
1416

1517
func TestDefaultConf(t *testing.T) {
16-
rules := globalRegistry.Rules()
18+
rules := registry.Rules()
1719
if len(rules) != len(defConf.Rules) {
1820
t.Error("default conf does not have all rules", len(rules), len(defConf.Rules))
1921
return

config/lint.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package config
33
import (
44
"fmt"
55

6+
"github.com/conventionalcommit/commitlint/internal/registry"
67
"github.com/conventionalcommit/commitlint/lint"
78
)
89

@@ -27,7 +28,7 @@ func GetFormatter(conf *lint.Config) (lint.Formatter, error) {
2728
return nil, err
2829
}
2930

30-
format, ok := globalRegistry.GetFormatter(conf.Formatter)
31+
format, ok := registry.GetFormatter(conf.Formatter)
3132
if !ok {
3233
return nil, fmt.Errorf("config error: '%s' formatter not found", conf.Formatter)
3334
}
@@ -41,7 +42,7 @@ func GetEnabledRules(conf *lint.Config) ([]lint.Rule, error) {
4142
for ruleName, ruleConfig := range conf.Rules {
4243
// Checking if rule is registered
4344
// before checking if rule is enabled
44-
r, ok := globalRegistry.GetRule(ruleName)
45+
r, ok := registry.GetRule(ruleName)
4546
if !ok {
4647
return nil, fmt.Errorf("config error: '%s' rule not found", ruleName)
4748
}

formatter/default.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ func writeRuleFailure(w *strings.Builder, sign, title string, resArr []*lint.Rul
5757
}
5858

5959
func writeMessages(w *strings.Builder, ruleRes *lint.RuleFailure, sign string) {
60-
msgs := ruleRes.Messages()
60+
msgs := ruleRes.Message()
6161

6262
if len(msgs) == 0 {
6363
return
@@ -68,15 +68,15 @@ func writeMessages(w *strings.Builder, ruleRes *lint.RuleFailure, sign string) {
6868
if len(msgs) == 1 {
6969
msg := msgs[0]
7070
// ❌ rule-name: message
71-
fmt.Fprintf(w, "\n%s %s: %s", space+sign, ruleRes.RuleName(), msg)
71+
fmt.Fprintf(w, "\n%s %s: %s", space+sign, ruleRes.Name(), msg)
7272
return
7373
}
7474

7575
// ❌ rule-name:
7676
// - message1
7777
// - message2
78-
fmt.Fprintf(w, "\n%s %s:", space+sign, ruleRes.RuleName())
79-
for _, msg := range ruleRes.Messages() {
78+
fmt.Fprintf(w, "\n%s %s:", space+sign, ruleRes.Name())
79+
for _, msg := range ruleRes.Message() {
8080
fmt.Fprintf(w, "\n%s - %s", space+space, msg)
8181
}
8282
}

formatter/json.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ func (f *JSONFormatter) formRuleFailure(res []*lint.RuleFailure, includeSev bool
3939
for _, r := range res {
4040
output := make(map[string]interface{})
4141

42-
output["name"] = r.RuleName()
43-
output["messages"] = r.Messages()
42+
output["name"] = r.Name()
43+
output["messages"] = r.Message()
4444

4545
if includeSev {
4646
output["severity"] = r.Severity()

formatter/util.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import "github.com/conventionalcommit/commitlint/lint"
44

55
// bySeverity returns all messages with given severity
66
func bySeverity(res *lint.Failure) (errs, warns, others []*lint.RuleFailure) {
7-
for _, r := range res.RuleFailures() {
7+
for _, r := range res.Failures() {
88
switch r.Severity() {
99
case lint.SeverityError:
1010
errs = append(errs, r)

cmd/callback.go renamed to internal/cmd/callback.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"os"
66
"path/filepath"
77

8-
"github.com/urfave/cli/v2"
8+
cli "github.com/urfave/cli/v2"
99

1010
"github.com/conventionalcommit/commitlint/config"
1111
)
@@ -48,7 +48,7 @@ func hookCreate(confPath string, isReplace bool) error {
4848

4949
// configCreate is the callback function for create config command
5050
func configCreate(onlyEnabled, isReplace bool) error {
51-
defConf := config.DefaultConfig(onlyEnabled)
51+
defConf := config.GetDefaultConfig(onlyEnabled)
5252
outPath := filepath.Join(".", config.ConfigFile)
5353
// if config file already exists skip creating or overwriting it
5454
if _, err := os.Stat(outPath); !os.IsNotExist(err) {

cmd/cmd.go renamed to internal/cmd/cmd.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ import (
55
"fmt"
66
"os"
77

8-
"github.com/conventionalcommit/commitlint/config"
9-
"github.com/urfave/cli/v2"
8+
cli "github.com/urfave/cli/v2"
9+
10+
"github.com/conventionalcommit/commitlint/internal"
1011
)
1112

12-
// Run runs the commandline with os.Args
13+
// Run runs commitlint cli with os.Args
1314
func Run() error {
1415
return newCmd().Run(os.Args)
1516
}
@@ -27,7 +28,7 @@ func newCmd() *cli.App {
2728
Name: "commitlint",
2829
Usage: "linter for conventional commits",
2930
Commands: cmds,
30-
Version: config.FullVersion(),
31+
Version: internal.FullVersion(),
3132
}
3233
return app
3334
}
File renamed without changes.
File renamed without changes.

cmd/lint.go renamed to internal/cmd/lint.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ func getCommitMsg(fileInput string) (string, error) {
7272
}
7373

7474
func hasErrorSeverity(res *lint.Failure) bool {
75-
for _, r := range res.RuleFailures() {
75+
for _, r := range res.Failures() {
7676
if r.Severity() == lint.SeverityError {
7777
return true
7878
}
File renamed without changes.

config/registry.go renamed to internal/registry/registry.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
package config
1+
// Package registry contains registered rules and formatters
2+
package registry
23

34
import (
45
"fmt"
@@ -23,6 +24,21 @@ func RegisterFormatter(format lint.Formatter) error {
2324
return globalRegistry.RegisterFormatter(format)
2425
}
2526

27+
// GetRule returns Rule with given name
28+
func GetRule(name string) (lint.Rule, bool) {
29+
return globalRegistry.GetRule(name)
30+
}
31+
32+
// GetFormatter returns Formatter with given name
33+
func GetFormatter(name string) (lint.Formatter, bool) {
34+
return globalRegistry.GetFormatter(name)
35+
}
36+
37+
// Rules returns all registered rules
38+
func Rules() []lint.Rule {
39+
return globalRegistry.Rules()
40+
}
41+
2642
type registry struct {
2743
mut *sync.Mutex
2844

config/config_test.go renamed to internal/registry/registry_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package config
1+
package registry
22

33
import "testing"
44

config/version.go renamed to internal/version.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package config
1+
package internal
22

33
import (
44
"fmt"
@@ -72,5 +72,6 @@ func formFullVersion() string {
7272
} else {
7373
versionInfo = unknownVersion
7474
}
75+
7576
return fmt.Sprintf(versionTmpl, versionInfo, commitInfo, unknownBuildTime)
7677
}

lint/constants.go

Lines changed: 0 additions & 21 deletions
This file was deleted.

lint/formatter.go

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)