@@ -917,16 +917,26 @@ private string FindAllFromTypeEndPoint(bool includePrerelease, bool isSearchingM
917917 }
918918
919919 // JFrog/Artifactory requires an empty search term to enumerate all packages in the feed
920+ // It also deems 'IsLatestVersion eq true' and 'IsAbsoluteLatestVersion eq true' in the filter to be a bad request, so we use 'IsLatestVersion' or 'IsAbsoluteLatestVersion' only
920921 if ( _isJFrogRepo ) {
921922 queryBuilder . SearchTerm = "''" ;
922- }
923923
924- if ( includePrerelease ) {
925- queryBuilder . AdditionalParameters [ "includePrerelease" ] = "true" ;
926- filterBuilder . AddCriterion ( "IsAbsoluteLatestVersion eq true" ) ;
927- } else {
928- filterBuilder . AddCriterion ( "IsLatestVersion eq true" ) ;
924+ if ( includePrerelease ) {
925+ queryBuilder . AdditionalParameters [ "includePrerelease" ] = "true" ;
926+ filterBuilder . AddCriterion ( "IsAbsoluteLatestVersion eq true" ) ;
927+ } else {
928+ filterBuilder . AddCriterion ( "IsLatestVersion eq true" ) ;
929+ }
930+ }
931+ else {
932+ if ( includePrerelease ) {
933+ queryBuilder . AdditionalParameters [ "includePrerelease" ] = "true" ;
934+ filterBuilder . AddCriterion ( "IsAbsoluteLatestVersion" ) ;
935+ } else {
936+ filterBuilder . AddCriterion ( "IsLatestVersion" ) ;
937+ }
929938 }
939+
930940 var requestUrlV2 = $ "{ Repository . Uri } { typeEndpoint } /Search()?{ queryBuilder . BuildQueryString ( ) } ";
931941 return HttpRequestCall ( requestUrlV2 , out errRecord ) ;
932942 }
@@ -956,17 +966,33 @@ private string FindTagFromEndpoint(string[] tags, bool includePrerelease, bool i
956966 queryBuilder . AdditionalParameters [ "$orderby" ] = "Id desc" ;
957967 }
958968
959- // JFrog/Artifactory requires an empty search term to enumerate all packages in the feed
960- if ( _isJFrogRepo ) {
961- queryBuilder . SearchTerm = "''" ;
962- }
963-
964969 if ( includePrerelease ) {
965970 queryBuilder . AdditionalParameters [ "includePrerelease" ] = "true" ;
966- filterBuilder . AddCriterion ( "IsAbsoluteLatestVersion eq true " ) ;
971+ filterBuilder . AddCriterion ( "IsAbsoluteLatestVersion" ) ;
967972 } else {
968- filterBuilder . AddCriterion ( "IsLatestVersion eq true" ) ;
969- }
973+ filterBuilder . AddCriterion ( "IsLatestVersion" ) ;
974+ }
975+
976+ // // JFrog/Artifactory requires an empty search term to enumerate all packages in the feed
977+ // // It also deems 'IsLatestVersion eq true' and 'IsAbsoluteLatestVersion eq true' in the filter to be a bad request, so we use 'IsLatestVersion' or 'IsAbsoluteLatestVersion' only
978+ // if (_isJFrogRepo) {
979+ // queryBuilder.SearchTerm = "''";
980+
981+ // if (includePrerelease) {
982+ // queryBuilder.AdditionalParameters["includePrerelease"] = "true";
983+ // filterBuilder.AddCriterion("IsAbsoluteLatestVersion eq true");
984+ // } else {
985+ // filterBuilder.AddCriterion("IsLatestVersion eq true");
986+ // }
987+ // }
988+ // else {
989+ // if (includePrerelease) {
990+ // queryBuilder.AdditionalParameters["includePrerelease"] = "true";
991+ // filterBuilder.AddCriterion("IsAbsoluteLatestVersion");
992+ // } else {
993+ // filterBuilder.AddCriterion("IsLatestVersion");
994+ // }
995+ // }
970996
971997 filterBuilder . AddCriterion ( $ "substringof('PS{ ( isSearchingModule ? "Module" : "Script" ) } ', Tags) eq true") ;
972998
@@ -1040,11 +1066,23 @@ private string FindNameGlobbing(string packageName, ResourceType type, bool incl
10401066 queryBuilder . AdditionalParameters [ "$orderby" ] = "Id desc" ;
10411067 }
10421068
1069+ // JFrog/Artifactory requires an empty search term to enumerate all packages in the feed
1070+ // It also deems 'IsLatestVersion eq true' and 'IsAbsoluteLatestVersion eq true' in the filter to be a bad request, so we use 'IsLatestVersion' or 'IsAbsoluteLatestVersion' only
10431071 if ( includePrerelease ) {
10441072 queryBuilder . AdditionalParameters [ "includePrerelease" ] = "true" ;
1045- filterBuilder . AddCriterion ( "IsAbsoluteLatestVersion eq true" ) ;
1073+ if ( _isJFrogRepo ) {
1074+ filterBuilder . AddCriterion ( "IsAbsoluteLatestVersion eq true" ) ;
1075+ }
1076+ else {
1077+ filterBuilder . AddCriterion ( "IsAbsoluteLatestVersion" ) ;
1078+ }
10461079 } else {
1047- filterBuilder . AddCriterion ( "IsLatestVersion eq true" ) ;
1080+ if ( _isJFrogRepo ) {
1081+ filterBuilder . AddCriterion ( "IsLatestVersion eq true" ) ;
1082+ }
1083+ else {
1084+ filterBuilder . AddCriterion ( "IsLatestVersion" ) ;
1085+ }
10481086 }
10491087
10501088 var names = packageName . Split ( new char [ ] { '*' } , StringSplitOptions . RemoveEmptyEntries ) ;
@@ -1134,11 +1172,23 @@ private string FindNameGlobbingWithTag(string packageName, string[] tags, Resour
11341172 queryBuilder . AdditionalParameters [ "$orderby" ] = "Id desc" ;
11351173 }
11361174
1175+ // JFrog/Artifactory requires an empty search term to enumerate all packages in the feed
1176+ // It also deems 'IsLatestVersion eq true' and 'IsAbsoluteLatestVersion eq true' in the filter to be a bad request, so we use 'IsLatestVersion' or 'IsAbsoluteLatestVersion' only
11371177 if ( includePrerelease ) {
11381178 queryBuilder . AdditionalParameters [ "includePrerelease" ] = "true" ;
1139- filterBuilder . AddCriterion ( "IsAbsoluteLatestVersion eq true" ) ;
1179+ if ( _isJFrogRepo ) {
1180+ filterBuilder . AddCriterion ( "IsAbsoluteLatestVersion eq true" ) ;
1181+ }
1182+ else {
1183+ filterBuilder . AddCriterion ( "IsAbsoluteLatestVersion" ) ;
1184+ }
11401185 } else {
1141- filterBuilder . AddCriterion ( "IsLatestVersion eq true" ) ;
1186+ if ( _isJFrogRepo ) {
1187+ filterBuilder . AddCriterion ( "IsLatestVersion eq true" ) ;
1188+ }
1189+ else {
1190+ filterBuilder . AddCriterion ( "IsLatestVersion" ) ;
1191+ }
11421192 }
11431193
11441194 var names = packageName . Split ( new char [ ] { '*' } , StringSplitOptions . RemoveEmptyEntries ) ;
0 commit comments