From 1f060c5cdfc7ab7eae9bbdec68f87c52dec15cb7 Mon Sep 17 00:00:00 2001
From: Liora Milbaum <liora@lmb.co.il>
Date: Wed, 15 Feb 2023 13:52:29 +0200
Subject: [PATCH] feat(manager/asdf): support pnpm plugin (#20139)

Co-authored-by: Rhys Arkins <rhys@arkins.net>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
---
 lib/modules/manager/asdf/extract.spec.ts        | 8 ++++++++
 lib/modules/manager/asdf/index.ts               | 2 ++
 lib/modules/manager/asdf/upgradeable-tooling.ts | 9 +++++++++
 3 files changed, 19 insertions(+)

diff --git a/lib/modules/manager/asdf/extract.spec.ts b/lib/modules/manager/asdf/extract.spec.ts
index 4db8ccc25a..322bfe3594 100644
--- a/lib/modules/manager/asdf/extract.spec.ts
+++ b/lib/modules/manager/asdf/extract.spec.ts
@@ -74,6 +74,7 @@ nodejs 18.12.0
 ocaml 4.14.0
 perl 5.37.5
 php 8.1.12
+pnpm 7.26.2
 python 3.11.0
 ruby 3.1.2
 rust 1.64.0
@@ -295,6 +296,13 @@ dummy 1.2.3
             depName: 'php',
             extractVersion: '^php-(?<version>\\S+)',
           },
+          {
+            currentValue: '7.26.2',
+            datasource: 'npm',
+            packageName: 'pnpm',
+            depName: 'pnpm',
+            versioning: 'semver',
+          },
           {
             currentValue: '3.11.0',
             datasource: 'github-tags',
diff --git a/lib/modules/manager/asdf/index.ts b/lib/modules/manager/asdf/index.ts
index b8e647affd..f488800413 100644
--- a/lib/modules/manager/asdf/index.ts
+++ b/lib/modules/manager/asdf/index.ts
@@ -4,6 +4,7 @@ import { GithubTagsDatasource } from '../../datasource/github-tags';
 import { HexpmBobDatasource } from '../../datasource/hexpm-bob';
 import { JavaVersionDatasource } from '../../datasource/java-version';
 import { NodeDatasource } from '../../datasource/node';
+import { NpmDatasource } from '../../datasource/npm';
 import { RubyVersionDatasource } from '../../datasource/ruby-version';
 
 export { extractPackageFile } from './extract';
@@ -21,5 +22,6 @@ export const supportedDatasources = [
   GithubTagsDatasource.id,
   HexpmBobDatasource.id,
   NodeDatasource.id,
+  NpmDatasource.id,
   RubyVersionDatasource.id,
 ];
diff --git a/lib/modules/manager/asdf/upgradeable-tooling.ts b/lib/modules/manager/asdf/upgradeable-tooling.ts
index 3d85626c9f..78051363c5 100644
--- a/lib/modules/manager/asdf/upgradeable-tooling.ts
+++ b/lib/modules/manager/asdf/upgradeable-tooling.ts
@@ -4,6 +4,7 @@ import { GithubTagsDatasource } from '../../datasource/github-tags';
 import { HexpmBobDatasource } from '../../datasource/hexpm-bob';
 import { JavaVersionDatasource } from '../../datasource/java-version';
 import { NodeDatasource } from '../../datasource/node';
+import { NpmDatasource } from '../../datasource/npm';
 import { RubyVersionDatasource } from '../../datasource/ruby-version';
 import * as regexVersioning from '../../versioning/regex';
 import * as semverVersioning from '../../versioning/semver';
@@ -277,6 +278,14 @@ export const upgradeableTooling: Record<string, ToolingDefinition> = {
       extractVersion: '^php-(?<version>\\S+)',
     },
   },
+  pnpm: {
+    asdfPluginUrl: 'https://github.com/jonathanmorley/asdf-pnpm',
+    config: {
+      datasource: NpmDatasource.id,
+      packageName: 'pnpm',
+      versioning: semverVersioning.id,
+    },
+  },
   python: {
     asdfPluginUrl: 'https://github.com/danhper/asdf-python',
     config: {
-- 
GitLab