diff options
| author | Kubernetes Prow Robot <k8s-ci-robot@users.noreply.github.com> | 2020-01-23 00:14:49 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-01-23 00:14:49 -0800 |
| commit | 9acff1ee9f3556a98b82818db8d99fdec0a2142c (patch) | |
| tree | a7ddddc20e95d7f2c8178197d421c90234aceee2 /generator | |
| parent | ba5dd2e8c24715691ba21af956436df6d182e0b4 (diff) | |
| parent | 0d52e7b449bbbf6e1fe885069740b5a40fb97bbc (diff) | |
Merge pull request #4436 from neolit123/1.18-owners-aliases-gen-sort
generator/app: add means for sorted and de-duped OWNERS_ALIASES
Diffstat (limited to 'generator')
| -rw-r--r-- | generator/aliases.tmpl | 11 | ||||
| -rw-r--r-- | generator/app.go | 23 |
2 files changed, 27 insertions, 7 deletions
diff --git a/generator/aliases.tmpl b/generator/aliases.tmpl index 52a7176e..cfef01ce 100644 --- a/generator/aliases.tmpl +++ b/generator/aliases.tmpl @@ -1,28 +1,25 @@ aliases: {{- range .Sigs}} {{.Dir}}-leads: - {{- range .Leadership.Chairs}} - - {{.GitHub}} - {{- end}} - {{- range .Leadership.TechnicalLeads}} + {{- range .Leadership.Owners}} - {{.GitHub}} {{- end}} {{- end}} {{- range .WorkingGroups}} {{.Dir}}-leads: - {{- range .Leadership.Chairs}} + {{- range .Leadership.Owners}} - {{.GitHub}} {{- end}} {{- end}} {{- range .UserGroups}} {{.Dir}}-leads: - {{- range .Leadership.Chairs}} + {{- range .Leadership.Owners}} - {{.GitHub}} {{- end}} {{- end}} {{- range .Committees}} {{.Dir}}: - {{- range .Leadership.Chairs}} + {{- range .Leadership.Owners}} - {{.GitHub}} {{- end}} {{- end}} diff --git a/generator/app.go b/generator/app.go index 5171df2f..8a4d6fd2 100644 --- a/generator/app.go +++ b/generator/app.go @@ -122,6 +122,29 @@ func (g *LeadershipGroup) PrefixToPersonMap() map[string][]Person { } } +// Owners returns a sorted and de-duped list of owners for a LeadershipGroup +func (g *LeadershipGroup) Owners() []Person { + o := append(g.Chairs, g.TechnicalLeads...) + + // Sort + sort.Slice(o, func(i, j int) bool { + return o[i].GitHub < o[j].GitHub + }) + + // De-dupe + seen := make(map[string]struct{}, len(o)) + i := 0 + for _, p := range o { + if _, ok := seen[p.GitHub]; ok { + continue + } + seen[p.GitHub] = struct{}{} + o[i] = p + i++ + } + return o[:i] +} + // Group represents either a Special Interest Group (SIG) or a Working Group (WG) type Group struct { Dir string |
