diff --git a/pkg/provider/git.go b/pkg/provider/git.go index 873da07c74b9e16a5d086d90126ff16c40f9f4ad..d3adc04852adb5c7e1227410623424fbf8c34589 100644 --- a/pkg/provider/git.go +++ b/pkg/provider/git.go @@ -22,16 +22,17 @@ import ( var PVERSION = "dev" type Repository struct { - defaultBranch string - taggerName string - taggerEmail string - remoteName string - auth transport.AuthMethod - repo *git.Repository - pushOptions map[string]string - orderLogsByCommitTime bool + defaultBranch string + taggerName string + taggerEmail string + remoteName string + auth transport.AuthMethod + repo *git.Repository + pushOptions map[string]string + logOrder git.LogOrder } +//gocyclo:ignore func (repo *Repository) Init(config map[string]string) error { repo.defaultBranch = config["default_branch"] if repo.defaultBranch == "" { @@ -79,6 +80,19 @@ func (repo *Repository) Init(config map[string]string) error { } } + switch config["log_order"] { + case "ctime": + repo.logOrder = git.LogOrderCommitterTime + case "dfs": + repo.logOrder = git.LogOrderDFS + case "dfs_post": + repo.logOrder = git.LogOrderDFSPost + case "bfs": // intentionally correcting to bfs instead of the bsf typo + repo.logOrder = git.LogOrderBSF + default: + repo.logOrder = git.LogOrderDefault + } + gitPath := config["git_path"] if gitPath == "" { gitPath = "." @@ -108,13 +122,9 @@ func (repo *Repository) GetCommits(fromSha, toSha string) ([]*semrel.RawCommit, return nil, err } - logOrder := git.LogOrderDefault - if repo.orderLogsByCommitTime { - logOrder = git.LogOrderCommitterTime - } commits, err := repo.repo.Log(&git.LogOptions{ From: *toHash, - Order: logOrder, + Order: repo.logOrder, }) if err != nil { return nil, err diff --git a/pkg/provider/git_test.go b/pkg/provider/git_test.go index 8e9f66d77d585e02f71f8a59df9f1db91f4b4bf6..16ad0ef1f9e395f78bdd83a4f213a9189d1fdc91 100644 --- a/pkg/provider/git_test.go +++ b/pkg/provider/git_test.go @@ -226,7 +226,7 @@ func getCommitsNoFFMergeCTime(t *testing.T) { dir, err := os.MkdirTemp("", "provider-git") require.NoError(err) repo, err := cloneRepo(dir, "http://localhost:3000/test/no_ff_merge.git") - repo.orderLogsByCommitTime = true + repo.logOrder = git.LogOrderCommitterTime require.NoError(err) releases, err := repo.GetReleases("") require.NoError(err) diff --git a/test/gitea/gitea.db b/test/gitea/gitea.db index 8d64b0bfaf4c8abdff24e96735ddd259677ac6a0..3c7f933d3c86ee938e383fb5ddc905a25611fa0e 100644 Binary files a/test/gitea/gitea.db and b/test/gitea/gitea.db differ