From 360928b7cda8c06e37c97873f0b120ae4e047d1b Mon Sep 17 00:00:00 2001
From: Johannes Feichtner <343448+Churro@users.noreply.github.com>
Date: Sun, 21 Jan 2024 10:07:37 +0100
Subject: [PATCH] feat(manager/pipenv): set currentVersion field for exact
 dependency versions (#26769)

---
 lib/modules/manager/pipenv/extract.spec.ts | 10 ++++++++++
 lib/modules/manager/pipenv/extract.ts      |  3 +++
 2 files changed, 13 insertions(+)

diff --git a/lib/modules/manager/pipenv/extract.spec.ts b/lib/modules/manager/pipenv/extract.spec.ts
index ea0895cfbe..fc90ecc042 100644
--- a/lib/modules/manager/pipenv/extract.spec.ts
+++ b/lib/modules/manager/pipenv/extract.spec.ts
@@ -30,12 +30,14 @@ describe('modules/manager/pipenv/extract', () => {
             depType: 'packages',
             depName: 'some-package',
             currentValue: '==0.3.1',
+            currentVersion: '0.3.1',
             datasource: 'pypi',
           },
           {
             depType: 'packages',
             depName: 'some-other-package',
             currentValue: '==1.0.0',
+            currentVersion: '1.0.0',
             datasource: 'pypi',
           },
           {
@@ -54,6 +56,7 @@ describe('modules/manager/pipenv/extract', () => {
             depType: 'packages',
             depName: 'pytest-benchmark',
             currentValue: '==1.0.0',
+            currentVersion: '1.0.0',
             datasource: 'pypi',
             managerData: {
               nestedVersion: true,
@@ -63,6 +66,7 @@ describe('modules/manager/pipenv/extract', () => {
             depType: 'dev-packages',
             depName: 'dev-package',
             currentValue: '==0.1.0',
+            currentVersion: '0.1.0',
             datasource: 'pypi',
           },
         ],
@@ -94,30 +98,35 @@ describe('modules/manager/pipenv/extract', () => {
             depType: 'packages',
             depName: 'Django',
             currentValue: '==1',
+            currentVersion: '1',
             datasource: 'pypi',
           },
           {
             depType: 'packages',
             depName: 'distribute',
             currentValue: '==0.6.27',
+            currentVersion: '0.6.27',
             datasource: 'pypi',
           },
           {
             depType: 'packages',
             depName: 'dj-database-url',
             currentValue: '==0.2',
+            currentVersion: '0.2',
             datasource: 'pypi',
           },
           {
             depType: 'packages',
             depName: 'psycopg2',
             currentValue: '==2.4.5',
+            currentVersion: '2.4.5',
             datasource: 'pypi',
           },
           {
             depType: 'packages',
             depName: 'wsgiref',
             currentValue: '==0.1.2',
+            currentVersion: '0.1.2',
             datasource: 'pypi',
           },
         ],
@@ -258,6 +267,7 @@ describe('modules/manager/pipenv/extract', () => {
             depType: 'packages',
             depName: 'requests',
             currentValue: '==0.21.0',
+            currentVersion: '0.21.0',
             datasource: 'pypi',
             managerData: {
               nestedVersion: true,
diff --git a/lib/modules/manager/pipenv/extract.ts b/lib/modules/manager/pipenv/extract.ts
index 8490400399..bfe2a9fa62 100644
--- a/lib/modules/manager/pipenv/extract.ts
+++ b/lib/modules/manager/pipenv/extract.ts
@@ -81,6 +81,9 @@ function extractFromSection(
       } else {
         dep.datasource = PypiDatasource.id;
       }
+      if (!skipReason && currentValue?.startsWith('==')) {
+        dep.currentVersion = currentValue.replace(regEx(/^==\s*/), '');
+      }
       if (nestedVersion) {
         // TODO #22198
         dep.managerData!.nestedVersion = nestedVersion;
-- 
GitLab