This commit is contained in:
2025-03-07 17:40:59 +01:00
parent c63a56bc4e
commit debbee17eb
3 changed files with 166 additions and 5 deletions

View File

@@ -1,6 +1,57 @@
package workflowdirect
package main
import (
"encoding/json"
"fmt"
"slices"
"strings"
"src.opensuse.org/autogits/common"
)
type OrgLinks struct {
Source string // org/pkg
Target string // pkg
SOid, TOid string // source and target oids
}
func FetchProjectLinksFile(org, prj string) ([]byte, error) {
return nil, nil
}
func ParseProjectLinks(data []byte) ([]*OrgLinks, error) {
values := make([]*OrgLinks, 0, 100)
if len(data) == 0 {
return values, nil
}
if err := json.Unmarshal(data, &values); err != nil {
return nil, err
}
slices.SortFunc(values, func(a, b *OrgLinks) int {
return strings.Compare(a.Target, b.Target)
})
for _, link := range values {
if len(link.Source) < 3 {
return nil, fmt.Errorf("Invalid Source: %s", link.Source)
}
source_link := strings.Split(link.Source, "/")
if len(source_link) != 2 || len(source_link[0]) < 1 || len(source_link[1]) < 1 {
return nil, fmt.Errorf("Invalid Source: %s", link.Source)
}
if len(link.Target) < 1 {
return nil, fmt.Errorf("Missing Target for Source link: %s", link.Source)
}
}
return values, nil
}
func (link *OrgLinks) StateUpdater(git common.Git) {
}