diff options
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 |
