From 6faefcdfa814935a65f1c0c24d24a5ace587e455 Mon Sep 17 00:00:00 2001
From: Seiya Kokushi <xxxx.xyzs.xxxx@gmail.com>
Date: Tue, 7 Mar 2023 14:17:53 +0900
Subject: [PATCH] feat(manager/asdf): support dart and flutter (#20786)

---
 lib/modules/manager/asdf/extract.spec.ts        | 12 ++++++++++++
 lib/modules/manager/asdf/index.ts               |  4 ++++
 lib/modules/manager/asdf/upgradeable-tooling.ts | 14 ++++++++++++++
 3 files changed, 30 insertions(+)

diff --git a/lib/modules/manager/asdf/extract.spec.ts b/lib/modules/manager/asdf/extract.spec.ts
index 67126828fd..28a1d057ae 100644
--- a/lib/modules/manager/asdf/extract.spec.ts
+++ b/lib/modules/manager/asdf/extract.spec.ts
@@ -49,12 +49,14 @@ bun 0.2.2
 cargo-make 0.36.2
 clojure 1.11.1.1182
 crystal 1.6.1
+dart 2.19.3
 deno 1.26.2
 direnv 2.32.1
 dprint 0.32.2
 elixir 1.14.1
 elm 0.19.1
 erlang 25.1.2
+flutter 3.7.6
 gauche 0.9.12
 gohugo extended_0.104.3
 golang 1.19.2
@@ -130,6 +132,11 @@ dummy 1.2.3
             packageName: 'crystal-lang/crystal',
             depName: 'crystal',
           },
+          {
+            currentValue: '2.19.3',
+            datasource: 'dart-version',
+            depName: 'dart',
+          },
           {
             currentValue: '1.26.2',
             datasource: 'github-releases',
@@ -170,6 +177,11 @@ dummy 1.2.3
               'regex:^(?<major>\\d+?)\\.(?<minor>\\d+?)(\\.(?<patch>\\d+))?$',
             depName: 'erlang',
           },
+          {
+            currentValue: '3.7.6',
+            datasource: 'flutter-version',
+            depName: 'flutter',
+          },
           {
             currentValue: '0.9.12',
             datasource: 'docker',
diff --git a/lib/modules/manager/asdf/index.ts b/lib/modules/manager/asdf/index.ts
index f488800413..134ac7e366 100644
--- a/lib/modules/manager/asdf/index.ts
+++ b/lib/modules/manager/asdf/index.ts
@@ -1,4 +1,6 @@
+import { DartVersionDatasource } from '../../datasource/dart-version';
 import { DockerDatasource } from '../../datasource/docker';
+import { FlutterVersionDatasource } from '../../datasource/flutter-version';
 import { GithubReleasesDatasource } from '../../datasource/github-releases';
 import { GithubTagsDatasource } from '../../datasource/github-tags';
 import { HexpmBobDatasource } from '../../datasource/hexpm-bob';
@@ -24,4 +26,6 @@ export const supportedDatasources = [
   NodeDatasource.id,
   NpmDatasource.id,
   RubyVersionDatasource.id,
+  DartVersionDatasource.id,
+  FlutterVersionDatasource.id,
 ];
diff --git a/lib/modules/manager/asdf/upgradeable-tooling.ts b/lib/modules/manager/asdf/upgradeable-tooling.ts
index 878f7d28a9..65960b4f58 100644
--- a/lib/modules/manager/asdf/upgradeable-tooling.ts
+++ b/lib/modules/manager/asdf/upgradeable-tooling.ts
@@ -1,4 +1,6 @@
+import { DartVersionDatasource } from '../../datasource/dart-version';
 import { DockerDatasource } from '../../datasource/docker';
+import { FlutterVersionDatasource } from '../../datasource/flutter-version';
 import { GithubReleasesDatasource } from '../../datasource/github-releases';
 import { GithubTagsDatasource } from '../../datasource/github-tags';
 import { HexpmBobDatasource } from '../../datasource/hexpm-bob';
@@ -80,6 +82,12 @@ export const upgradeableTooling: Record<string, ToolingDefinition> = {
       packageName: 'crystal-lang/crystal',
     },
   },
+  dart: {
+    asdfPluginUrl: 'https://github.com/PatOConnor43/asdf-dart',
+    config: {
+      datasource: DartVersionDatasource.id,
+    },
+  },
   deno: {
     asdfPluginUrl: 'https://github.com/asdf-community/asdf-deno',
     config: {
@@ -125,6 +133,12 @@ export const upgradeableTooling: Record<string, ToolingDefinition> = {
       versioning: `${regexVersioning.id}:^(?<major>\\d+?)\\.(?<minor>\\d+?)(\\.(?<patch>\\d+))?$`,
     },
   },
+  flutter: {
+    asdfPluginUrl: 'https://github.com/oae/asdf-flutter',
+    config: {
+      datasource: FlutterVersionDatasource.id,
+    },
+  },
   gauche: {
     asdfPluginUrl: 'https://github.com/sakuro/asdf-gauche',
     config: {
-- 
GitLab