Skip to content

Commit 1065a3c

Browse files
dannylongeuaychristophwitzko
authored andcommitted
refactor(*): ♻️ more robust log order config
1 parent 26c0901 commit 1065a3c

File tree

3 files changed

+24
-14
lines changed

3 files changed

+24
-14
lines changed

pkg/provider/git.go

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,17 @@ import (
2222
var PVERSION = "dev"
2323

2424
type Repository struct {
25-
defaultBranch string
26-
taggerName string
27-
taggerEmail string
28-
remoteName string
29-
auth transport.AuthMethod
30-
repo *git.Repository
31-
pushOptions map[string]string
32-
orderLogsByCommitTime bool
25+
defaultBranch string
26+
taggerName string
27+
taggerEmail string
28+
remoteName string
29+
auth transport.AuthMethod
30+
repo *git.Repository
31+
pushOptions map[string]string
32+
logOrder git.LogOrder
3333
}
3434

35+
//gocyclo:ignore
3536
func (repo *Repository) Init(config map[string]string) error {
3637
repo.defaultBranch = config["default_branch"]
3738
if repo.defaultBranch == "" {
@@ -79,6 +80,19 @@ func (repo *Repository) Init(config map[string]string) error {
7980
}
8081
}
8182

83+
switch config["log_order"] {
84+
case "ctime":
85+
repo.logOrder = git.LogOrderCommitterTime
86+
case "dfs":
87+
repo.logOrder = git.LogOrderDFS
88+
case "dfs_post":
89+
repo.logOrder = git.LogOrderDFSPost
90+
case "bfs": // intentionally correcting to bfs instead of the bsf typo
91+
repo.logOrder = git.LogOrderBSF
92+
default:
93+
repo.logOrder = git.LogOrderDefault
94+
}
95+
8296
gitPath := config["git_path"]
8397
if gitPath == "" {
8498
gitPath = "."
@@ -108,13 +122,9 @@ func (repo *Repository) GetCommits(fromSha, toSha string) ([]*semrel.RawCommit,
108122
return nil, err
109123
}
110124

111-
logOrder := git.LogOrderDefault
112-
if repo.orderLogsByCommitTime {
113-
logOrder = git.LogOrderCommitterTime
114-
}
115125
commits, err := repo.repo.Log(&git.LogOptions{
116126
From: *toHash,
117-
Order: logOrder,
127+
Order: repo.logOrder,
118128
})
119129
if err != nil {
120130
return nil, err

pkg/provider/git_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ func getCommitsNoFFMergeCTime(t *testing.T) {
226226
dir, err := os.MkdirTemp("", "provider-git")
227227
require.NoError(err)
228228
repo, err := cloneRepo(dir, "http://localhost:3000/test/no_ff_merge.git")
229-
repo.orderLogsByCommitTime = true
229+
repo.logOrder = git.LogOrderCommitterTime
230230
require.NoError(err)
231231
releases, err := repo.GetReleases("")
232232
require.NoError(err)

test/gitea/gitea.db

104 KB
Binary file not shown.

0 commit comments

Comments
 (0)