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