Skip to content

Commit

Permalink
Merge pull request #59 from Songmu/semv-next
Browse files Browse the repository at this point in the history
define semv.GuessNext to clarify access scope
  • Loading branch information
Songmu authored Aug 25, 2022
2 parents b3f9012 + 7f8d361 commit 973836c
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 31 deletions.
30 changes: 1 addition & 29 deletions rcpr.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import (
"strings"
"time"

"github.com/Masterminds/semver/v3"
"github.com/Songmu/gitsemvers"
"github.com/google/go-github/v45/github"
)
Expand Down Expand Up @@ -211,7 +210,7 @@ func Run(ctx context.Context, argv []string, outStream, errStream io.Writer) err
currRcpr = pulls[0]
labels = currRcpr.Labels
}
nextVer := guessNextSemver(currVer, labels)
nextVer := currVer.GuessNext(labels)

var vfile string
if rp.cfg.versionFile == nil {
Expand Down Expand Up @@ -433,30 +432,3 @@ func (rp *rcpr) detectRemote() (string, error) {
// the last output is the first added remote
return remotes[len(remotes)-1], nil
}

func guessNextSemver(ver *semv, labels []*github.Label) *semv {
var isMajor, isMinor bool
for _, l := range labels {
switch l.GetName() {
case autoLableName + ":major", autoLableName + "/major":
isMajor = true
case autoLableName + ":minor", autoLableName + "/minor":
isMinor = true
}
}

var nextv semver.Version
switch {
case isMajor:
nextv = ver.v.IncMajor()
case isMinor:
nextv = ver.v.IncMinor()
default:
nextv = ver.v.IncPatch()
}

return &semv{
v: &nextv,
vPrefix: ver.vPrefix,
}
}
32 changes: 31 additions & 1 deletion semver.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package rcpr

import "github.com/Masterminds/semver/v3"
import (
"github.com/Masterminds/semver/v3"
"github.com/google/go-github/v45/github"
)

type semv struct {
v *semver.Version
Expand Down Expand Up @@ -29,3 +32,30 @@ func (sv *semv) Tag() string {
}
return sv.Naked()
}

func (sv *semv) GuessNext(labels []*github.Label) *semv {
var isMajor, isMinor bool
for _, l := range labels {
switch l.GetName() {
case autoLableName + ":major", autoLableName + "/major":
isMajor = true
case autoLableName + ":minor", autoLableName + "/minor":
isMinor = true
}
}

var nextv semver.Version
switch {
case isMajor:
nextv = sv.v.IncMajor()
case isMinor:
nextv = sv.v.IncMinor()
default:
nextv = sv.v.IncPatch()
}

return &semv{
v: &nextv,
vPrefix: sv.vPrefix,
}
}
2 changes: 1 addition & 1 deletion tag.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func (rp *rcpr) tagRelease(ctx context.Context, pr *github.PullRequest, currVer
}
nextTag = nextVer.Tag()
} else {
nextTag = guessNextSemver(currVer, pr.Labels).Tag()
nextTag = currVer.GuessNext(pr.Labels).Tag()
}
previousTag := &latestSemverTag
if *previousTag == "" {
Expand Down

0 comments on commit 973836c

Please sign in to comment.