Commit 4066d64f3ea for woocommerce

commit 4066d64f3eaeb63be8b45592276941c7529931e9
Author: Taha Paksu <3295+tpaksu@users.noreply.github.com>
Date:   Mon Oct 5 18:19:26 2026 +0300

    Route order fulfillment file reviews to Escargot (#69375)

    * Route order fulfillment file reviews to Escargot

    * Route Admin Features reviews to feature owners

    ---------

    Co-authored-by: Ján Mikláš <neosinner@gmail.com>

diff --git a/.github/actions/assign-reviewers/test.js b/.github/actions/assign-reviewers/test.js
index 7c50e22d6b3..7c743151de8 100644
--- a/.github/actions/assign-reviewers/test.js
+++ b/.github/actions/assign-reviewers/test.js
@@ -83,6 +83,44 @@ check( 'the shipped configs still parse and name reviewers', () => {
 	}
 } );

+check( 'Admin Features files route to their feature owners', () => {
+	const community = path.join( __dirname, '../../project-community-pr-assigner.json' );
+	const config = JSON.parse( fs.readFileSync( community, 'utf8' ) );
+	const owners = ( file ) => {
+		const matched = Object.keys( config )
+			.filter( ( pattern ) => matches( pattern, file ) )
+			.flatMap( ( pattern ) => [].concat( config[ pattern ] ) );
+		return [ ...new Set( matched ) ];
+	};
+
+	const source = 'plugins/woocommerce/src/Admin/Features';
+	const tests = 'plugins/woocommerce/tests/php/src/Admin/Features';
+	const cases = [
+		[ `${ source }/Blueprint/Init.php`, 'somewherewarm' ],
+		[ `${ source }/MarketingRecommendations/Init.php`, 'ballade' ],
+		[ `${ source }/Navigation/RemovedDeprecated.php`, 'somewherewarm' ],
+		[ `${ source }/OnboardingTasks/Init.php`, 'rubik' ],
+		[ `${ source }/PaymentGatewaySuggestions/Init.php`, 'moltres' ],
+		[ `${ source }/ProductBlockEditor/ProductTemplates/SectionInterface.php`, 'kirigami' ],
+		[ `${ source }/ShippingPartnerSuggestions/ShippingPartnerSuggestions.php`, 'escargot' ],
+		[ `${ source }/Fulfillments/FulfillmentsController.php`, 'escargot' ],
+		[ `${ source }/Fulfillments/deep/Nested.php`, 'escargot' ],
+		[ `${ source }/Features.php`, 'rubik' ],
+		[ `${ source }/LaunchYourStore.php`, 'rubik' ],
+		[ `${ source }/Onboarding.php`, 'rubik' ],
+		[ `${ source }/TransientNotices.php`, 'somewherewarm' ],
+		[ `${ tests }/Analytics/FeatureEnabledTest.php`, 'ventures' ],
+		[ `${ tests }/Blueprint/InitTest.php`, 'somewherewarm' ],
+		[ `${ tests }/OnboardingTasks/DeprecatedExtendedTaskTest.php`, 'rubik' ],
+		[ `${ tests }/ShippingPartnerSuggestions/DefaultShippingPartnersTest.php`, 'escargot' ],
+		[ `${ tests }/Fulfillments/FulfillmentsControllerTest.php`, 'escargot' ],
+	];
+
+	for ( const [ file, owner ] of cases ) {
+		assert.deepStrictEqual( owners( file ), [ owner ], `${ file } should route only to ${ owner }` );
+	}
+} );
+
 /* Requesting the reviews. */

 const run = async ( { config, mode = 'changed-files', changed = [], requestReviewers, membership = {} } ) => {
diff --git a/.github/project-community-pr-assigner.json b/.github/project-community-pr-assigner.json
index 4b939200f53..5ae8379bb10 100644
--- a/.github/project-community-pr-assigner.json
+++ b/.github/project-community-pr-assigner.json
@@ -18,6 +18,7 @@
 	"plugins/woocommerce/client/legacy/**/*{attribute,product,variation}*": "kirigami",
 	"plugins/woocommerce/src/{Blocks,LayoutTemplates}/**/*": "kirigami",
 	"plugins/woocommerce/src/Admin/BlockTemplates/**/*": "kirigami",
+	"plugins/woocommerce/src/Admin/Features/ProductBlockEditor/**/*": "kirigami",
 	"plugins/woocommerce/src/Internal/{CostOfGoodsSold,Customers,ProductAttributes,ProductAttributesLookup,ProductDownloads,ProductFeed,ProductFilters,ProductGallery,ProductImage,VariationGallery}/**/*": "kirigami",
 	"plugins/woocommerce/includes/{blocks,customizer,shortcodes,theme-support,walkers,widgets}/**/*": "kirigami",
 	"plugins/woocommerce/includes/{class-wc-customer*,class-wc-product*,wc-customer*,wc-product*,wc-stock-functions.php}": "kirigami",
@@ -34,6 +35,8 @@
 	"plugins/woocommerce/src/Internal/{Abilities,AbilitiesApi,Api,BatchProcessing,Caches,ComingSoon,CustomerEmailVerification,DataStores,DependencyManagement,Features,LegacyAssets,Logging,MCP,OrderReviews,Orders,OrderWithdrawal,PushNotifications,ReceiptRendering,RestApi,ShopperLists,StockNotifications,Traits,TransientFiles}/**/*": "rubik",
 	"plugins/woocommerce/src/Internal/{AddressProvider,POS}/**/*": "kirigami",
 	"plugins/woocommerce/src/Internal/Admin/{Logging,Onboarding,Orders,Schedulers}/**/*": "rubik",
+	"plugins/woocommerce/src/Admin/Features/{Features.php,LaunchYourStore.php,Onboarding.php}": "rubik",
+	"plugins/woocommerce/src/Admin/Features/OnboardingTasks/**/*": "rubik",
 	"plugins/woocommerce/src/Internal/Admin/*": "rubik",
 	"plugins/woocommerce/src/Internal/Admin/{ProductForm,ProductReviews}/**/*": "kirigami",
 	"plugins/woocommerce/includes/*": "rubik",
@@ -45,6 +48,7 @@
 	"plugins/woocommerce/tests/php/src/{Api,Caching,Database,Proxies,Utilities}/**/*": "rubik",
 	"plugins/woocommerce/tests/php/src/Internal/{Abilities,AbilitiesApi,Api,BatchProcessing,Caches,ComingSoon,CustomerEmailVerification,DataStores,DependencyManagement,Features,LegacyAssets,LegacyPhpApi,Logging,MCP,OrderReviews,Orders,OrderWithdrawal,PushNotifications,ReceiptRendering,RestApi,ShopperLists,StockNotifications,Telemetry,Traits,TransientFiles}/**/*": "rubik",
 	"plugins/woocommerce/tests/php/src/Internal/Admin/{Logging,Onboarding,Orders,Schedulers}/**/*": "rubik",
+	"plugins/woocommerce/tests/php/src/Admin/Features/OnboardingTasks/**/*": "rubik",
 	"plugins/woocommerce/tests/php/src/Internal/Admin/*": "rubik",
 	"plugins/woocommerce/tests/php/src/Internal/*": "rubik",
 	"plugins/woocommerce/tests/php/src/Admin/API/**/*": "rubik",
@@ -56,6 +60,7 @@
 	"packages/php/email-editor/**/*": "ballade",
 	"plugins/woocommerce/client/admin/client/{marketing,settings-email}/**/*": "ballade",
 	"plugins/woocommerce/src/Admin/Marketing/**/*": "ballade",
+	"plugins/woocommerce/src/Admin/Features/MarketingRecommendations/**/*": "ballade",
 	"plugins/woocommerce/src/Internal/{Email,EmailEditor}/**/*": "ballade",
 	"plugins/woocommerce/src/Internal/Admin/{EmailImprovements,EmailPreview,Emails,Marketing}/**/*": "ballade",
 	"plugins/woocommerce/includes/{emails,react-admin/emails}/**/*": "ballade",
@@ -73,6 +78,7 @@
 	"plugins/woocommerce/client/admin/client/{payments,payments-welcome,settings,settings-payments,settings-recommendations}/**/*": "moltres",
 	"plugins/woocommerce/src/Gateways/**/*": "moltres",
 	"plugins/woocommerce/src/Admin/Settings/**/*": "moltres",
+	"plugins/woocommerce/src/Admin/Features/PaymentGatewaySuggestions/**/*": "moltres",
 	"plugins/woocommerce/src/Internal/Settings/**/*": "moltres",
 	"plugins/woocommerce/includes/{gateways,payment-tokens}/**/*": "moltres",
 	"plugins/woocommerce/includes/admin/settings/**/*": "moltres",
@@ -96,6 +102,8 @@
 	"plugins/woocommerce/tests/php/includes/shipping/**/*": "escargot",
 	"plugins/woocommerce/tests/legacy/unit-tests/{countries,shipping,tax}/**/*": "escargot",
 	"plugins/woocommerce/assets/images/{shipping_partners,shipping_providers}/**/*": "escargot",
+	"plugins/woocommerce/src/Admin/Features/{Fulfillments,ShippingPartnerSuggestions}/**/*": "escargot",
+	"plugins/woocommerce/tests/php/src/Admin/Features/{Fulfillments,ShippingPartnerSuggestions}/**/*": "escargot",
 	"packages/js/{data,explat,tracks}/**/*": "ventures",
 	"packages/php/woocommerce-analytics/**/*": "ventures",
 	"plugins/woocommerce/client/admin/client/{analytics,order-attribution-install-banner}/**/*": "ventures",
@@ -106,13 +114,16 @@
 	"plugins/woocommerce/src/Internal/Admin/Reports/**/*": "ventures",
 	"plugins/woocommerce/tests/php/src/Internal/Admin/Reports/**/*": "ventures",
 	"plugins/woocommerce/tests/php/src/Admin/API/Reports/**/*": "ventures",
+	"plugins/woocommerce/tests/php/src/Admin/Features/Analytics/**/*": "ventures",
 	"plugins/woocommerce/tests/php/src/Admin/*Report*": "ventures",
 	"plugins/woocommerce/tests/php/src/Internal/McStatsTest.php": "ventures",
 	"plugins/woocommerce/tests/php/includes/tracks/**/*": "ventures",
 	"packages/js/{admin-layout,csv-export,navigation,notices}/**/*": "somewherewarm",
 	"packages/php/blueprint/**/*": "somewherewarm",
 	"plugins/woocommerce/client/admin/client/{activity-panel,blueprint,dashboard,embedded-body-layout,guided-tours,header,homescreen,inbox-panel,layout,store-management-links}/**/*": "somewherewarm",
-	"plugins/woocommerce/src/Admin/{Composer,DateTimeProvider,Features,Notes,Overrides,RemoteInboxNotifications,Schedulers}/**/*": "somewherewarm",
+	"plugins/woocommerce/src/Admin/{Composer,DateTimeProvider,Notes,Overrides,RemoteInboxNotifications,Schedulers}/**/*": "somewherewarm",
+	"plugins/woocommerce/src/Admin/Features/TransientNotices.php": "somewherewarm",
+	"plugins/woocommerce/src/Admin/Features/{Blueprint,Navigation}/**/*": "somewherewarm",
 	"plugins/woocommerce/src/Internal/{CLI,Integrations,Jetpack,Utilities}/**/*": "somewherewarm",
 	"plugins/woocommerce/src/Internal/Admin/{ImportExport,Notes}/**/*": "somewherewarm",
 	"plugins/woocommerce/includes/{cli,export,import,integrations}/**/*": "somewherewarm",
@@ -121,7 +132,7 @@
 	"plugins/woocommerce/tests/**/*{export,import,navigation,notice,tool}*": "somewherewarm",
 	"plugins/woocommerce/tests/php/src/Internal/{CLI,Integration,Utilities}/**/*": "somewherewarm",
 	"plugins/woocommerce/tests/php/src/Internal/Admin/{ImportExport,Notes}/**/*": "somewherewarm",
-	"plugins/woocommerce/tests/php/src/Admin/Features/**/*": "somewherewarm",
+	"plugins/woocommerce/tests/php/src/Admin/Features/Blueprint/**/*": "somewherewarm",
 	"plugins/woocommerce/tests/php/src/Admin/*": "somewherewarm",
 	"plugins/woocommerce/tests/php/includes/{cli,exporter,importer}/**/*": "somewherewarm",
 	"plugins/woocommerce/tests/legacy/unit-tests/{exporter,geolocation,importer,integrations,util}/**/*": "somewherewarm",