2
1
forked from adamm/autogits
Files
autogits/common/reviewers.go
Adam Majer 568a2f3df8 PR: Add ability to parse optional reviewers
Document reviewer syntax in the Readme.md
2025-06-10 17:20:33 +02:00

46 lines
742 B
Go

package common
import (
"slices"
)
type Reviewers struct {
Prj []string
Pkg []string
PrjOptional []string
PkgOptional []string
}
func ParseReviewers(input []string) *Reviewers {
r := &Reviewers{}
for _, reviewer := range input {
pkg := &r.Pkg
prj := &r.Prj
if reviewer[0] == '~' {
pkg = &r.PkgOptional
prj = &r.PrjOptional
reviewer = reviewer[1:]
}
switch reviewer[0] {
case '*':
*prj = append(*prj, reviewer[1:])
*pkg = append(*pkg, reviewer[1:])
case '-':
*prj = append(*prj, reviewer[1:])
case '+':
*pkg = append(*pkg, reviewer[1:])
default:
*pkg = append(*pkg, reviewer)
}
}
if !slices.Contains(r.Prj, Bot_BuildReview) {
r.Prj = append(r.Prj, Bot_BuildReview)
}
return r
}