@@ -73,6 +73,7 @@ type alias ResultItemSource =
73
73
, longDescription : Maybe String
74
74
, licenses : List ResultPackageLicense
75
75
, maintainers : List ResultPackageMaintainer
76
+ , teams: List ResultPackageTeam
76
77
, platforms : List String
77
78
, position : Maybe String
78
79
, homepage : List String
@@ -97,6 +98,14 @@ type alias ResultPackageMaintainer =
97
98
}
98
99
99
100
101
+ type alias ResultPackageTeam =
102
+ { members : Maybe ( List ResultPackageMaintainer )
103
+ , scope : Maybe String
104
+ , shortName: Maybe String
105
+ , githubTeams : Maybe ( List String )
106
+ }
107
+
108
+
100
109
type alias ResultPackageHydra =
101
110
{ build_id : Int
102
111
, build_status : Int
@@ -120,6 +129,7 @@ type alias ResultAggregations =
120
129
, package_platforms : Search . Aggregation
121
130
, package_attr_set : Search . Aggregation
122
131
, package_maintainers_set : Search . Aggregation
132
+ , package_teams_set : Search . Aggregation
123
133
, package_license_set : Search . Aggregation
124
134
}
125
135
@@ -129,6 +139,7 @@ type alias Aggregations =
129
139
, package_platforms : Search . Aggregation
130
140
, package_attr_set : Search . Aggregation
131
141
, package_maintainers_set : Search . Aggregation
142
+ , package_teams_set : Search . Aggregation
132
143
, package_license_set : Search . Aggregation
133
144
}
134
145
@@ -137,6 +148,7 @@ type alias Buckets =
137
148
{ packageSets : List String
138
149
, licenses : List String
139
150
, maintainers : List String
151
+ , teams : List String
140
152
, platforms : List String
141
153
}
142
154
@@ -146,6 +158,7 @@ emptyBuckets =
146
158
{ packageSets = []
147
159
, licenses = []
148
160
, maintainers = []
161
+ , teams = []
149
162
, platforms = []
150
163
}
151
164
@@ -278,6 +291,11 @@ viewBuckets bucketsAsString result =
278
291
( result. aggregations. package_maintainers_set. buckets |> sortBuckets)
279
292
( createBucketsMsg . maintainers ( \ s v -> { s | maintainers = v } ))
280
293
selectedBucket. maintainers
294
+ |> viewBucket
295
+ " Teams"
296
+ ( result. aggregations. package_teams_set. buckets |> sortBuckets)
297
+ ( createBucketsMsg . teams ( \ s v -> { s | teams = v } ))
298
+ selectedBucket. teams
281
299
|> viewBucket
282
300
" Platforms"
283
301
( result. aggregations. package_platforms. buckets |> sortBuckets |> filterPlatformsBucket)
@@ -462,6 +480,17 @@ viewResultItem nixosChannels channel showInstallDetails show item =
462
480
)
463
481
]
464
482
483
+ showTeam team =
484
+ let
485
+ maybe m d =
486
+ Maybe . withDefault d m
487
+
488
+ showTeamEntry githubTeam =
489
+ ( a [ href (( String . append " https://github.com/orgs/NixOS/teams/" ) githubTeam) ] [ text githubTeam ] )
490
+ in
491
+ li []
492
+ ( List . map showTeamEntry ( maybe team. githubTeams [] ))
493
+
465
494
mailtoAllMaintainers maintainers =
466
495
let
467
496
maintainerMails =
@@ -487,7 +516,7 @@ viewResultItem nixosChannels channel showInstallDetails show item =
487
516
Nothing ->
488
517
li [] [ text platform ]
489
518
490
- maintainersAndPlatforms =
519
+ maintainersTeamsAndPlatforms =
491
520
div []
492
521
[ div []
493
522
( List . append [ h4 [] [ text " Maintainers" ] ]
@@ -503,6 +532,16 @@ viewResultItem nixosChannels channel showInstallDetails show item =
503
532
]
504
533
)
505
534
)
535
+ , div []
536
+ ( if not ( List . isEmpty item. source. teams) then
537
+ ( List . append [ h4 [] [ text " Teams" ] ]
538
+ [ ul []
539
+ ( List . map showTeam item. source. teams)
540
+ ]
541
+ )
542
+ else
543
+ []
544
+ )
506
545
, div []
507
546
( List . append [ h4 [] [ text " Platforms" ] ]
508
547
( if List . isEmpty item. source. platforms then
@@ -748,7 +787,7 @@ viewResultItem nixosChannels channel showInstallDetails show item =
748
787
Maybe . map Tuple . first item. source. flakeUrl
749
788
]
750
789
:: programs
751
- :: maintainersAndPlatforms
790
+ :: maintainersTeamsAndPlatforms
752
791
:: []
753
792
)
754
793
]
@@ -878,6 +917,7 @@ makeRequestBody query from size maybeBuckets sort =
878
917
[ ( " package_attr_set" , currentBuckets. packageSets )
879
918
, ( " package_license_set" , currentBuckets. licenses )
880
919
, ( " package_maintainers_set" , currentBuckets. maintainers )
920
+ , ( " package_teams_set" , currentBuckets. teams )
881
921
, ( " package_platforms" , currentBuckets. platforms )
882
922
]
883
923
@@ -931,6 +971,7 @@ makeRequestBody query from size maybeBuckets sort =
931
971
[ " package_attr_set"
932
972
, " package_license_set"
933
973
, " package_maintainers_set"
974
+ , " package_teams_set"
934
975
, " package_platforms"
935
976
]
936
977
filterByBuckets
@@ -954,16 +995,18 @@ encodeBuckets options =
954
995
[ ( " package_attr_set" , Json . Encode . list Json . Encode . string options. packageSets )
955
996
, ( " package_license_set" , Json . Encode . list Json . Encode . string options. licenses )
956
997
, ( " package_maintainers_set" , Json . Encode . list Json . Encode . string options. maintainers )
998
+ , ( " package_teams_set" , Json . Encode . list Json . Encode . string options. teams )
957
999
, ( " package_platforms" , Json . Encode . list Json . Encode . string options. platforms )
958
1000
]
959
1001
960
1002
961
1003
decodeBuckets : Json .Decode .Decoder Buckets
962
1004
decodeBuckets =
963
- Json . Decode . map4 Buckets
1005
+ Json . Decode . map5 Buckets
964
1006
( Json . Decode . field " package_attr_set" ( Json . Decode . list Json . Decode . string))
965
1007
( Json . Decode . field " package_license_set" ( Json . Decode . list Json . Decode . string))
966
1008
( Json . Decode . field " package_maintainers_set" ( Json . Decode . list Json . Decode . string))
1009
+ ( Json . Decode . field " package_teams_set" ( Json . Decode . list Json . Decode . string))
967
1010
( Json . Decode . field " package_platforms" ( Json . Decode . list Json . Decode . string))
968
1011
969
1012
@@ -980,6 +1023,7 @@ decodeResultItemSource =
980
1023
|> Json . Decode . Pipeline . required " package_longDescription" ( Json . Decode . nullable Json . Decode . string)
981
1024
|> Json . Decode . Pipeline . required " package_license" ( Json . Decode . list decodeResultPackageLicense)
982
1025
|> Json . Decode . Pipeline . required " package_maintainers" ( Json . Decode . list decodeResultPackageMaintainer)
1026
+ |> Json . Decode . Pipeline . required " package_teams" ( Json . Decode . list decodeResultPackageTeam)
983
1027
|> Json . Decode . Pipeline . required " package_platforms" ( Json . Decode . map filterPlatforms ( Json . Decode . list Json . Decode . string))
984
1028
|> Json . Decode . Pipeline . required " package_position" ( Json . Decode . nullable Json . Decode . string)
985
1029
|> Json . Decode . Pipeline . required " package_homepage" decodeHomepage
@@ -1089,6 +1133,15 @@ decodeResultPackageMaintainer =
1089
1133
( Json . Decode . field " github" ( Json . Decode . nullable Json . Decode . string))
1090
1134
1091
1135
1136
+ decodeResultPackageTeam : Json .Decode .Decoder ResultPackageTeam
1137
+ decodeResultPackageTeam =
1138
+ Json . Decode . map4 ResultPackageTeam
1139
+ ( Json . Decode . field " members" ( Json . Decode . nullable ( Json . Decode . list decodeResultPackageMaintainer)))
1140
+ ( Json . Decode . field " scope" ( Json . Decode . nullable Json . Decode . string))
1141
+ ( Json . Decode . field " shortName" ( Json . Decode . nullable Json . Decode . string))
1142
+ ( Json . Decode . field " githubTeams" ( Json . Decode . nullable ( Json . Decode . list Json . Decode . string)))
1143
+
1144
+
1092
1145
decodeResultPackageHydra : Json .Decode .Decoder ResultPackageHydra
1093
1146
decodeResultPackageHydra =
1094
1147
Json . Decode . succeed ResultPackageHydra
@@ -1111,19 +1164,21 @@ decodeResultPackageHydraPath =
1111
1164
1112
1165
decodeResultAggregations : Json .Decode .Decoder ResultAggregations
1113
1166
decodeResultAggregations =
1114
- Json . Decode . map5 ResultAggregations
1167
+ Json . Decode . map6 ResultAggregations
1115
1168
( Json . Decode . field " all" decodeAggregations)
1116
1169
( Json . Decode . field " package_platforms" Search . decodeAggregation)
1117
1170
( Json . Decode . field " package_attr_set" Search . decodeAggregation)
1118
1171
( Json . Decode . field " package_maintainers_set" Search . decodeAggregation)
1172
+ ( Json . Decode . field " package_teams_set" Search . decodeAggregation)
1119
1173
( Json . Decode . field " package_license_set" Search . decodeAggregation)
1120
1174
1121
1175
1122
1176
decodeAggregations : Json .Decode .Decoder Aggregations
1123
1177
decodeAggregations =
1124
- Json . Decode . map5 Aggregations
1178
+ Json . Decode . map6 Aggregations
1125
1179
( Json . Decode . field " doc_count" Json . Decode . int)
1126
1180
( Json . Decode . field " package_platforms" Search . decodeAggregation)
1127
1181
( Json . Decode . field " package_attr_set" Search . decodeAggregation)
1128
1182
( Json . Decode . field " package_maintainers_set" Search . decodeAggregation)
1183
+ ( Json . Decode . field " package_teams_set" Search . decodeAggregation)
1129
1184
( Json . Decode . field " package_license_set" Search . decodeAggregation)
0 commit comments