From 3e3342ad2624843e4dfc61d468dfa80345dc2aca Mon Sep 17 00:00:00 2001 From: dannylongeuay <dannylongeuay@yahoo.com> Date: Sat, 27 Apr 2024 14:33:30 -0700 Subject: [PATCH] chore(*): :wrench: update docs and add another test --- README.md | 12 ++++++++++++ pkg/provider/git_test.go | 21 +++++++++++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a0aafb2..09236ac 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,7 @@ To use this plugin you need to include the following block in your | auth_private_key | | The path to an SSH private key file. | | git_path | . | The path to the Git repository. | | push_options | | The push options for the git tag push. | +| log_order | dfs | The log order traversal algorithm. | ### Authentication @@ -70,6 +71,17 @@ For this method you'll need to set `auth_username` and `auth_private_key`. If your private key uses a password then you'll also need to set `auth_password`. +### Log Order Options + +log_order=dfs (Default) - Ordering by depth-first search in pre-order + +log_order=dfs_post - Ordering by depth-first search in post-order (useful to traverse +history in chronological order) + +log_order=bfs - Ordering by breadth-first search + +log_order=ctime - Ordering by committer time (more compatible with `git log`) + ## Licence The [MIT License (MIT)](http://opensource.org/licenses/MIT) diff --git a/pkg/provider/git_test.go b/pkg/provider/git_test.go index 16ad0ef..552740e 100644 --- a/pkg/provider/git_test.go +++ b/pkg/provider/git_test.go @@ -26,7 +26,8 @@ func TestGit(t *testing.T) { t.Run("GetInfo", getInfo) t.Run("GetReleases", getReleases) t.Run("GetCommits", getCommits) - t.Run("GetCommitsNoFFMerge", getCommitsNoFFMerge) + t.Run("GetCommitsNoFFMergeDFS", getCommitsNoFFMergeDFS) + t.Run("GetCommitsNoFFMergeDFSPost", getCommitsNoFFMergeDFSPost) t.Run("GetCommitsNoFFMergeCTime", getCommitsNoFFMergeCTime) t.Run("CreateRelease", createRelease) } @@ -206,7 +207,7 @@ func getCommits(t *testing.T) { } } -func getCommitsNoFFMerge(t *testing.T) { +func getCommitsNoFFMergeDFS(t *testing.T) { require := require.New(t) dir, err := os.MkdirTemp("", "provider-git") require.NoError(err) @@ -237,6 +238,22 @@ func getCommitsNoFFMergeCTime(t *testing.T) { require.Len(commits, 2) } +func getCommitsNoFFMergeDFSPost(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.logOrder = git.LogOrderCommitterTime + 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) +} + func createRelease(t *testing.T) { require := require.New(t) repo, err := createRepo() -- GitLab