Skip to content
Snippets Groups Projects
Commit 47a18e5a authored by dannylongeuay's avatar dannylongeuay Committed by Christoph Witzko
Browse files

feat(*): :sparkles: allow optional ordering by commit time

parent 20c70644
Branches
Tags
No related merge requests found
......@@ -29,6 +29,7 @@ type Repository struct {
auth transport.AuthMethod
repo *git.Repository
pushOptions map[string]string
orderLogsByCommitTime bool
}
func (repo *Repository) Init(config map[string]string) error {
......@@ -107,9 +108,13 @@ 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: git.LogOrderCommitterTime,
Order: logOrder,
})
if err != nil {
return nil, err
......
......@@ -27,6 +27,7 @@ func TestGit(t *testing.T) {
t.Run("GetReleases", getReleases)
t.Run("GetCommits", getCommits)
t.Run("GetCommitsNoFFMerge", getCommitsNoFFMerge)
t.Run("GetCommitsNoFFMergeCTime", getCommitsNoFFMergeCTime)
t.Run("CreateRelease", createRelease)
}
......@@ -217,6 +218,22 @@ func getCommitsNoFFMerge(t *testing.T) {
initialCommitSha := releases[0].GetSHA()
commits, err := repo.GetCommits(initialCommitSha, "master")
require.NoError(err)
require.Len(commits, 1)
}
func getCommitsNoFFMergeCTime(t *testing.T) {
require := require.New(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
require.NoError(err)
releases, err := repo.GetReleases("")
require.NoError(err)
require.Len(releases, 1)
initialCommitSha := releases[0].GetSHA()
commits, err := repo.GetCommits(initialCommitSha, "master")
require.NoError(err)
require.Len(commits, 2)
}
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment