From 3c98fc0f45303b3b2f44f3c0ed79072984bd48bf Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Mon, 16 Jan 2023 08:12:20 +0100
Subject: [PATCH] feat(manager/composer): extractedConstraints (#19853)

---
 .../manager/composer/__snapshots__/extract.spec.ts.snap     | 6 ++++++
 lib/modules/manager/composer/extract.spec.ts                | 3 +++
 lib/modules/manager/composer/extract.ts                     | 5 +++++
 3 files changed, 14 insertions(+)

diff --git a/lib/modules/manager/composer/__snapshots__/extract.spec.ts.snap b/lib/modules/manager/composer/__snapshots__/extract.spec.ts.snap
index 6d0cf6c59a..4f56f889a3 100644
--- a/lib/modules/manager/composer/__snapshots__/extract.spec.ts.snap
+++ b/lib/modules/manager/composer/__snapshots__/extract.spec.ts.snap
@@ -205,6 +205,9 @@ exports[`modules/manager/composer/extract extractPackageFile() extracts dependen
       "depType": "require-dev",
     },
   ],
+  "extractedConstraints": {
+    "php": ">=5.3.2",
+  },
   "lockFiles": [
     "composer.lock",
   ],
@@ -416,5 +419,8 @@ exports[`modules/manager/composer/extract extractPackageFile() extracts dependen
       "depType": "require-dev",
     },
   ],
+  "extractedConstraints": {
+    "php": ">=5.3.2",
+  },
 }
 `;
diff --git a/lib/modules/manager/composer/extract.spec.ts b/lib/modules/manager/composer/extract.spec.ts
index 991939fa5f..bee3f2ec6c 100644
--- a/lib/modules/manager/composer/extract.spec.ts
+++ b/lib/modules/manager/composer/extract.spec.ts
@@ -173,6 +173,9 @@ describe('modules/manager/composer/extract', () => {
             registryUrls: ['https://wpackagist.org'],
           },
         ],
+        extractedConstraints: {
+          php: '>=5.5',
+        },
         managerData: {
           composerJsonType: 'project',
         },
diff --git a/lib/modules/manager/composer/extract.ts b/lib/modules/manager/composer/extract.ts
index 58978d7af2..7cb7999c8a 100644
--- a/lib/modules/manager/composer/extract.ts
+++ b/lib/modules/manager/composer/extract.ts
@@ -197,5 +197,10 @@ export async function extractPackageFile(
     };
     res.managerData = managerData;
   }
+
+  if (composerJson.require?.php) {
+    res.extractedConstraints = { php: composerJson.require.php };
+  }
+
   return res;
 }
-- 
GitLab