@@ -1100,6 +1100,52 @@ func prepForAnnualReportGeneration() error {
1100
1100
return nil
1101
1101
}
1102
1102
1103
+ func generateCNCFMaintainersList (ctx * Context ) error {
1104
+ maintainers := map [string ]Person {}
1105
+ serviceDesk := map [string ]bool {}
1106
+ for _ , group := range ctx .Committees {
1107
+ if group .Name == "Steering" {
1108
+ for _ , member := range group .Leadership .Chairs {
1109
+ maintainers [member .GitHub ] = member
1110
+ serviceDesk [member .GitHub ] = true
1111
+ }
1112
+ }
1113
+ }
1114
+ for _ , sig := range ctx .Sigs {
1115
+ // these groups retain service desk access in addition to steering
1116
+ // as outlined in https://github.com/kubernetes/steering/issues/281
1117
+ isServiceDesk := sig .Name == "Contributor Experience" || sig .Name == "K8s Infra" || sig .Name == "Release"
1118
+ for _ , chair := range sig .Leadership .Chairs {
1119
+ maintainers [chair .GitHub ] = chair
1120
+ // only set service desk true as needed, do not override to false
1121
+ // in case of maintainers spanning groups
1122
+ if isServiceDesk {
1123
+ serviceDesk [chair .Name ] = true
1124
+ }
1125
+ }
1126
+ for _ , tl := range sig .Leadership .TechnicalLeads {
1127
+ maintainers [tl .GitHub ] = tl
1128
+ // only set service desk true as needed, do not override to false
1129
+ // in case of maintainers spanning groups
1130
+ if isServiceDesk {
1131
+ serviceDesk [tl .Name ] = true
1132
+ }
1133
+ }
1134
+ }
1135
+ outputPath := filepath .Join (baseGeneratorDir , "maintainers.txt" )
1136
+ f , err := os .Create (outputPath )
1137
+ if err != nil {
1138
+ return err
1139
+ }
1140
+ defer f .Close ()
1141
+ fmt .Fprintln (f , "name | company | github | email | service-desk?" )
1142
+ fmt .Fprintln (f , "===============================================" )
1143
+ for _ , m := range maintainers {
1144
+ fmt .Fprintf (f , "%s | %s | %s | %s | %t\n " , m .Name , m .Company , m .GitHub , m .Email , serviceDesk [m .GitHub ])
1145
+ }
1146
+ return nil
1147
+ }
1148
+
1103
1149
func main () {
1104
1150
yamlPath := filepath .Join (baseGeneratorDir , sigsYamlFile )
1105
1151
var ctx Context
@@ -1153,6 +1199,11 @@ func main() {
1153
1199
}
1154
1200
}
1155
1201
1202
+ if envVal , ok := os .LookupEnv ("MAINTAINERS_LIST" ); ok && envVal == "true" {
1203
+ fmt .Println ("Generating CNCF maintainers list" )
1204
+ generateCNCFMaintainersList (& ctx )
1205
+ }
1206
+
1156
1207
fmt .Println ("Generating sig-list.md" )
1157
1208
outputPath := filepath .Join (baseGeneratorDir , sigListOutput )
1158
1209
err = writeTemplate (filepath .Join (baseGeneratorDir , templateDir , listTemplate ), outputPath , "markdown" , ctx )
0 commit comments