Fix: Issue with sorting commits after specifying hash.

This commit is contained in:
2021-05-09 20:20:04 +01:00
parent dc22f7c281
commit af71c23260
5 changed files with 69 additions and 26 deletions
+8 -8
View File
@@ -75,14 +75,14 @@ jobs:
- name: Run unit tests
run: |
make test CI_RUN=${CI}
- name: Codeclimate
uses: paambaati/codeclimate-action@v2.7.5
with:
coverageCommand: go test -race -coverprofile=cover.out -covermode=atomic -v -bench=. ./...
coverageLocations:
"${{github.workspace}}/cover.out:gocov"
env:
CC_TEST_REPORTER_ID: ${{ secrets.CODECLIMATE_KEY }}
# - name: Codeclimate
# uses: paambaati/codeclimate-action@v2.7.5
# with:
# coverageCommand: go test -race -coverprofile=cover.out -covermode=atomic -v -bench=. ./...
# coverageLocations:
# "${{github.workspace}}/cover.out:gocov"
# env:
# CC_TEST_REPORTER_ID: ${{ secrets.CODECLIMATE_KEY }}
code_scans:
needs: [ prepare ]
+50 -8
View File
@@ -88,18 +88,30 @@ func checkMatches(content []string, targets []string) bool {
func (s *Setup) CalculateSemver() SemVer {
for _, commit := range s.Commits {
s.Semver.Patch++
if varDebug {
fmt.Println("DEBUG: Incrementing patch (DEFAULT) on ", commit.Message)
}
commitSlice := strings.Split(commit.Message, " ")
matchPatch := checkMatches(commitSlice, s.Wording.Patch)
matchMinor := checkMatches(commitSlice, s.Wording.Minor)
matchMajor := checkMatches(commitSlice, s.Wording.Major)
if matchPatch {
if varDebug {
fmt.Println("DEBUG: Incrementing patch (WORDING) on ", commit.Message)
}
s.Semver.Patch++
}
if matchMinor {
if varDebug {
fmt.Println("DEBUG: Incrementing minor (WORDING) on ", commit.Message)
}
s.Semver.Minor++
s.Semver.Patch = 1
}
if matchMajor {
if varDebug {
fmt.Println("DEBUG: Incrementing major (WORDING) on ", commit.Message)
}
s.Semver.Major++
s.Semver.Minor = 0
s.Semver.Patch = 1
@@ -111,23 +123,44 @@ func (s *Setup) CalculateSemver() SemVer {
func (s *Setup) ListCommits() ([]CommitDetails, error) {
var ref *plumbing.Reference
var err error
if zero.IsZero(s.Force.Commit) {
ref, err = s.RepositoryHandler.Head()
} else {
ref = plumbing.NewHashReference("start_commit", plumbing.NewHash(s.Force.Commit))
}
// if zero.IsZero(s.Force.Commit) {
ref, err = s.RepositoryHandler.Head()
// } else {
// if varDebug {
// fmt.Println("DEBUG: Forced start from commit", s.Force.Commit)
// }
// ref = plumbing.NewHashReference("start_commit", plumbing.NewHash(s.Force.Commit))
// }
if err != nil {
return []CommitDetails{}, err
}
commitsList, err := s.RepositoryHandler.Log(&git.LogOptions{From: ref.Hash(), Order: git.LogOrderBSF})
commitsList, err := s.RepositoryHandler.Log(&git.LogOptions{From: ref.Hash()})
if err != nil {
return []CommitDetails{}, err
}
var tmpResults []CommitDetails
commitsList.ForEach(func(c *object.Commit) error {
s.Commits = append(s.Commits, CommitDetails{Hash: c.Hash.String(), Author: c.Author.String(), Message: c.Message, Timestamp: c.Author.When})
sort.Slice(s.Commits, func(i, j int) bool { return s.Commits[i].Timestamp.Unix() < s.Commits[j].Timestamp.Unix() })
tmpResults = append(tmpResults, CommitDetails{Hash: c.Hash.String(), Author: c.Author.String(), Message: c.Message, Timestamp: c.Author.When})
sort.Slice(tmpResults, func(i, j int) bool { return tmpResults[i].Timestamp.Unix() < tmpResults[j].Timestamp.Unix() })
return nil
})
if varDebug {
fmt.Println("\n---COMMITS BEFORE CUT---\n", tmpResults)
}
for commitId, cmt := range tmpResults {
if zero.IsZero(s.Force.Commit) || (!zero.IsZero(s.Force.Commit) && cmt.Hash == s.Force.Commit) {
s.Commits = tmpResults[commitId:]
}
}
if varDebug {
fmt.Println("\n---COMMITS AFTER CUT---\n", s.Commits)
}
return s.Commits, err
}
@@ -159,12 +192,21 @@ func (s *Setup) Prepare() error {
func (s *Setup) ForcedVersioning() {
if !zero.IsZero(s.Force.Major) {
if varDebug {
fmt.Println("DEBUG: Forced versioning (MAJOR)", s.Force.Major)
}
s.Semver.Major = s.Force.Major
}
if !zero.IsZero(s.Force.Minor) {
if varDebug {
fmt.Println("DEBUG: Forced versioning (MINOR)", s.Force.Minor)
}
s.Semver.Minor = s.Force.Minor
}
if !zero.IsZero(s.Force.Patch) {
if varDebug {
fmt.Println("DEBUG: Forced versioning (PATCH)", s.Force.Patch)
}
s.Semver.Patch = s.Force.Patch
}
}
+7 -7
View File
@@ -290,7 +290,7 @@ func (suite *Tests) TestSetup_ListCommits() {
fields: fields{
RepositoryName: "https://github.com/lukaszraczylo/simple-gql-client",
Force: Force{
Commit: "69fbe2df696f40281b9104ff073d26186cde1024",
Commit: "97d3682ed94168600926f9ff6da650403d1f3317",
},
},
noCommits: false,
@@ -336,8 +336,8 @@ func (suite *Tests) TestSetup_CalculateSemver() {
RepositoryName: "https://github.com/lukaszraczylo/simple-gql-client",
},
wantSemver: wantSemver{
Major: 5,
Minor: 1,
Major: 1,
Minor: 2,
Patch: 1,
},
},
@@ -346,13 +346,13 @@ func (suite *Tests) TestSetup_CalculateSemver() {
fields: fields{
RepositoryName: "https://github.com/lukaszraczylo/simple-gql-client",
Force: Force{
Commit: "69fbe2df696f40281b9104ff073d26186cde1024",
Commit: "97d3682ed94168600926f9ff6da650403d1f3317",
},
},
wantSemver: wantSemver{
Major: 3,
Minor: 0,
Patch: 5,
Major: 1,
Minor: 2,
Patch: 1,
},
},
{
+2
View File
@@ -58,6 +58,7 @@ var (
varRepoName, varLocalCfg string
varUseLocal bool
varShowVersion bool
varDebug bool
)
func init() {
@@ -68,5 +69,6 @@ func init() {
rootCmd.PersistentFlags().StringVarP(&varLocalCfg, "config", "c", "config.yaml", "Path to config file")
rootCmd.PersistentFlags().BoolVarP(&varUseLocal, "local", "l", false, "Use local repository")
rootCmd.PersistentFlags().BoolVarP(&varShowVersion, "version", "v", false, "Display version")
rootCmd.PersistentFlags().BoolVarP(&varDebug, "debug", "d", false, "Enable debug mode")
}
}
+2 -3
View File
@@ -1,7 +1,7 @@
version: 1
force:
major: 1
# commit: 69fbe2df696f40281b9104ff073d26186cde1024
commit: 97d3682ed94168600926f9ff6da650403d1f3317
wording:
patch:
- update
@@ -12,5 +12,4 @@ wording:
- change
- improve
major:
- breaking
- the # For testing purposes
- breaking