@@ -73,6 +73,7 @@ type alias ResultItemSource =
7373 , longDescription : Maybe String
7474 , licenses : List ResultPackageLicense
7575 , maintainers : List ResultPackageMaintainer
76+ , teams: List ResultPackageTeam
7677 , platforms : List String
7778 , position : Maybe String
7879 , homepage : List String
@@ -97,6 +98,14 @@ type alias ResultPackageMaintainer =
9798 }
9899
99100
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+
100109type alias ResultPackageHydra =
101110 { build_id : Int
102111 , build_status : Int
@@ -120,6 +129,7 @@ type alias ResultAggregations =
120129 , package_platforms : Search . Aggregation
121130 , package_attr_set : Search . Aggregation
122131 , package_maintainers_set : Search . Aggregation
132+ , package_teams_set : Search . Aggregation
123133 , package_license_set : Search . Aggregation
124134 }
125135
@@ -129,6 +139,7 @@ type alias Aggregations =
129139 , package_platforms : Search . Aggregation
130140 , package_attr_set : Search . Aggregation
131141 , package_maintainers_set : Search . Aggregation
142+ , package_teams_set : Search . Aggregation
132143 , package_license_set : Search . Aggregation
133144 }
134145
@@ -137,6 +148,7 @@ type alias Buckets =
137148 { packageSets : List String
138149 , licenses : List String
139150 , maintainers : List String
151+ , teams : List String
140152 , platforms : List String
141153 }
142154
@@ -146,6 +158,7 @@ emptyBuckets =
146158 { packageSets = []
147159 , licenses = []
148160 , maintainers = []
161+ , teams = []
149162 , platforms = []
150163 }
151164
@@ -278,6 +291,11 @@ viewBuckets bucketsAsString result =
278291 ( result. aggregations. package_maintainers_set. buckets |> sortBuckets)
279292 ( createBucketsMsg . maintainers ( \ s v -> { s | maintainers = v } ))
280293 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
281299 |> viewBucket
282300 " Platforms"
283301 ( result. aggregations. package_platforms. buckets |> sortBuckets |> filterPlatformsBucket)
@@ -462,6 +480,17 @@ viewResultItem nixosChannels channel showInstallDetails show item =
462480 )
463481 ]
464482
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+
465494 mailtoAllMaintainers maintainers =
466495 let
467496 maintainerMails =
@@ -487,7 +516,7 @@ viewResultItem nixosChannels channel showInstallDetails show item =
487516 Nothing ->
488517 li [] [ text platform ]
489518
490- maintainersAndPlatforms =
519+ maintainersTeamsAndPlatforms =
491520 div []
492521 [ div []
493522 ( List . append [ h4 [] [ text " Maintainers" ] ]
@@ -503,6 +532,16 @@ viewResultItem nixosChannels channel showInstallDetails show item =
503532 ]
504533 )
505534 )
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+ )
506545 , div []
507546 ( List . append [ h4 [] [ text " Platforms" ] ]
508547 ( if List . isEmpty item. source. platforms then
@@ -748,7 +787,7 @@ viewResultItem nixosChannels channel showInstallDetails show item =
748787 Maybe . map Tuple . first item. source. flakeUrl
749788 ]
750789 :: programs
751- :: maintainersAndPlatforms
790+ :: maintainersTeamsAndPlatforms
752791 :: []
753792 )
754793 ]
@@ -878,6 +917,7 @@ makeRequestBody query from size maybeBuckets sort =
878917 [ ( " package_attr_set" , currentBuckets. packageSets )
879918 , ( " package_license_set" , currentBuckets. licenses )
880919 , ( " package_maintainers_set" , currentBuckets. maintainers )
920+ , ( " package_teams_set" , currentBuckets. teams )
881921 , ( " package_platforms" , currentBuckets. platforms )
882922 ]
883923
@@ -931,6 +971,7 @@ makeRequestBody query from size maybeBuckets sort =
931971 [ " package_attr_set"
932972 , " package_license_set"
933973 , " package_maintainers_set"
974+ , " package_teams_set"
934975 , " package_platforms"
935976 ]
936977 filterByBuckets
@@ -954,16 +995,18 @@ encodeBuckets options =
954995 [ ( " package_attr_set" , Json . Encode . list Json . Encode . string options. packageSets )
955996 , ( " package_license_set" , Json . Encode . list Json . Encode . string options. licenses )
956997 , ( " package_maintainers_set" , Json . Encode . list Json . Encode . string options. maintainers )
998+ , ( " package_teams_set" , Json . Encode . list Json . Encode . string options. teams )
957999 , ( " package_platforms" , Json . Encode . list Json . Encode . string options. platforms )
9581000 ]
9591001
9601002
9611003decodeBuckets : Json .Decode .Decoder Buckets
9621004decodeBuckets =
963- Json . Decode . map4 Buckets
1005+ Json . Decode . map5 Buckets
9641006 ( Json . Decode . field " package_attr_set" ( Json . Decode . list Json . Decode . string))
9651007 ( Json . Decode . field " package_license_set" ( Json . Decode . list Json . Decode . string))
9661008 ( 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))
9671010 ( Json . Decode . field " package_platforms" ( Json . Decode . list Json . Decode . string))
9681011
9691012
@@ -980,6 +1023,7 @@ decodeResultItemSource =
9801023 |> Json . Decode . Pipeline . required " package_longDescription" ( Json . Decode . nullable Json . Decode . string)
9811024 |> Json . Decode . Pipeline . required " package_license" ( Json . Decode . list decodeResultPackageLicense)
9821025 |> Json . Decode . Pipeline . required " package_maintainers" ( Json . Decode . list decodeResultPackageMaintainer)
1026+ |> Json . Decode . Pipeline . required " package_teams" ( Json . Decode . list decodeResultPackageTeam)
9831027 |> Json . Decode . Pipeline . required " package_platforms" ( Json . Decode . map filterPlatforms ( Json . Decode . list Json . Decode . string))
9841028 |> Json . Decode . Pipeline . required " package_position" ( Json . Decode . nullable Json . Decode . string)
9851029 |> Json . Decode . Pipeline . required " package_homepage" decodeHomepage
@@ -1089,6 +1133,15 @@ decodeResultPackageMaintainer =
10891133 ( Json . Decode . field " github" ( Json . Decode . nullable Json . Decode . string))
10901134
10911135
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+
10921145decodeResultPackageHydra : Json .Decode .Decoder ResultPackageHydra
10931146decodeResultPackageHydra =
10941147 Json . Decode . succeed ResultPackageHydra
@@ -1111,19 +1164,21 @@ decodeResultPackageHydraPath =
11111164
11121165decodeResultAggregations : Json .Decode .Decoder ResultAggregations
11131166decodeResultAggregations =
1114- Json . Decode . map5 ResultAggregations
1167+ Json . Decode . map6 ResultAggregations
11151168 ( Json . Decode . field " all" decodeAggregations)
11161169 ( Json . Decode . field " package_platforms" Search . decodeAggregation)
11171170 ( Json . Decode . field " package_attr_set" Search . decodeAggregation)
11181171 ( Json . Decode . field " package_maintainers_set" Search . decodeAggregation)
1172+ ( Json . Decode . field " package_teams_set" Search . decodeAggregation)
11191173 ( Json . Decode . field " package_license_set" Search . decodeAggregation)
11201174
11211175
11221176decodeAggregations : Json .Decode .Decoder Aggregations
11231177decodeAggregations =
1124- Json . Decode . map5 Aggregations
1178+ Json . Decode . map6 Aggregations
11251179 ( Json . Decode . field " doc_count" Json . Decode . int)
11261180 ( Json . Decode . field " package_platforms" Search . decodeAggregation)
11271181 ( Json . Decode . field " package_attr_set" Search . decodeAggregation)
11281182 ( Json . Decode . field " package_maintainers_set" Search . decodeAggregation)
1183+ ( Json . Decode . field " package_teams_set" Search . decodeAggregation)
11291184 ( Json . Decode . field " package_license_set" Search . decodeAggregation)
0 commit comments