diff --git a/workflow-pr/submodules.go b/bots-common/submodules.go similarity index 99% rename from workflow-pr/submodules.go rename to bots-common/submodules.go index 841c7f9..06bf910 100644 --- a/workflow-pr/submodules.go +++ b/bots-common/submodules.go @@ -1,4 +1,4 @@ -package main +package common import ( "bytes" diff --git a/workflow-pr/submodules_test.go b/bots-common/submodules_test.go similarity index 87% rename from workflow-pr/submodules_test.go rename to bots-common/submodules_test.go index b9cc44b..2281e1b 100644 --- a/workflow-pr/submodules_test.go +++ b/bots-common/submodules_test.go @@ -1,28 +1,30 @@ -package main +package common_test import ( "bytes" "slices" "strings" "testing" + + "src.opensuse.org/autogits/common" ) func TestSubmodulesParsing(t *testing.T) { tests := []struct { name string file string - subs []Submodule + subs []common.Submodule has_error bool }{ { name: "Empty submodules file", file: "", - subs: []Submodule{}, + subs: []common.Submodule{}, }, { name: "Empty single submodule", file: "[submodule \"Foo\"]", - subs: []Submodule{ + subs: []common.Submodule{ {Name: "Foo"}, }, }, @@ -59,7 +61,7 @@ func TestSubmodulesParsing(t *testing.T) { { name: "Submodule with one entry", file: "[submodule \"libfoo\"]\npath = foo\n\n", - subs: []Submodule{ + subs: []common.Submodule{ { Name: "libfoo", Path: "foo", @@ -69,7 +71,7 @@ func TestSubmodulesParsing(t *testing.T) { { name: "Submodules with funny entries entries", file: "[submodule \"libfoo\"]\npath = foo [ bar \n\n [ submodule \"test \" ]\npath=ma ma\nurl= safe", - subs: []Submodule{ + subs: []common.Submodule{ { Name: "libfoo", Path: "foo [ bar", @@ -84,7 +86,7 @@ func TestSubmodulesParsing(t *testing.T) { { name: "Submodule with valid entries", file: "[submodule \"libfoo\"]\npath=foo\nurl=goo\nupdate=none\nbranch=test\nignore=all\nshallow=true", - subs: []Submodule{ + subs: []common.Submodule{ { Name: "libfoo", Path: "foo", @@ -105,7 +107,7 @@ func TestSubmodulesParsing(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { - mods, err := ParseSubmodulesFile(strings.NewReader(test.file)) + mods, err := common.ParseSubmodulesFile(strings.NewReader(test.file)) if test.has_error { if err == nil { t.Error("Expected an error") @@ -123,7 +125,7 @@ func TestSubmodulesParsing(t *testing.T) { func TestSubmodulesWriting(t *testing.T) { tests := []struct { name string - subs []Submodule + subs []common.Submodule output []byte has_error bool }{ @@ -133,7 +135,7 @@ func TestSubmodulesWriting(t *testing.T) { }, { name: "single submodule", - subs: []Submodule{ + subs: []common.Submodule{ { Name: "foo", Url: "bar", @@ -143,7 +145,7 @@ func TestSubmodulesWriting(t *testing.T) { }, { name: "empty name submodule", - subs: []Submodule{ + subs: []common.Submodule{ { Name: "foo", Url: "bar", @@ -154,7 +156,7 @@ func TestSubmodulesWriting(t *testing.T) { }, { name: "submodule with all the things", - subs: []Submodule{ + subs: []common.Submodule{ { Name: "foo", Url: "bar", @@ -176,7 +178,7 @@ func TestSubmodulesWriting(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { out := bytes.Buffer{} - if err := WriteSubmodules(test.subs, &out); err != nil { + if err := common.WriteSubmodules(test.subs, &out); err != nil { if !test.has_error { t.Error(err) } diff --git a/workflow-pr/pr.go b/workflow-pr/pr.go index bcb1ffd..a9921ed 100644 --- a/workflow-pr/pr.go +++ b/workflow-pr/pr.go @@ -262,15 +262,15 @@ func (rs *PRSet) Merge() error { return fmt.Errorf("Failed fetching data during .gitmodules merge resoulution: %w", err) } - subs1, err := ParseSubmodulesFile(strings.NewReader(s1)) + subs1, err := common.ParseSubmodulesFile(strings.NewReader(s1)) if err != nil { return fmt.Errorf("Failed parsing submodule file [%s] in merge: %w", s.States[0], err) } - subs2, err := ParseSubmodulesFile(strings.NewReader(s2)) + subs2, err := common.ParseSubmodulesFile(strings.NewReader(s2)) if err != nil { return fmt.Errorf("Failed parsing submodule file [%s] in merge: %w", s.States[0], err) } - subs3, err := ParseSubmodulesFile(strings.NewReader(s3)) + subs3, err := common.ParseSubmodulesFile(strings.NewReader(s3)) if err != nil { return fmt.Errorf("Failed parsing submodule file [%s] in merge: %w", s.States[0], err) } @@ -279,7 +279,7 @@ func (rs *PRSet) Merge() error { // this will update submodules mergedSubs := slices.Concat(subs1, subs2, subs3) - var filteredSubs []Submodule = make([]Submodule, 0, max(len(subs1), len(subs2), len(subs3))) + var filteredSubs []common.Submodule = make([]common.Submodule, 0, max(len(subs1), len(subs2), len(subs3))) nextSub: for subName := range submodules { @@ -296,7 +296,7 @@ func (rs *PRSet) Merge() error { if err != nil { return fmt.Errorf("Can't open .gitmodules for writing: %w", err) } - if err = WriteSubmodules(filteredSubs, out); err != nil { + if err = common.WriteSubmodules(filteredSubs, out); err != nil { return fmt.Errorf("Can't write .gitmodules: %w", err) } if out.Close(); err != nil {