Skip to content

Commit 76a2116

Browse files
authored
Migrate HTTP retry GET for SDK version utils. (#8722)
1 parent 036b4de commit 76a2116

File tree

2 files changed

+22
-33
lines changed

2 files changed

+22
-33
lines changed

pkg/_pub_shared/lib/utils/dart_sdk_version.dart

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,19 @@ final _logger = Logger('tool.sdk_version');
1515
Future<CachedSdkVersion?> fetchLatestDartSdkVersion({
1616
required String channel,
1717
}) async {
18-
for (var i = 0; i < 3; i++) {
19-
final client = httpRetryClient();
20-
try {
21-
final rs = await client.get(Uri.parse(
22-
'https://storage.googleapis.com/dart-archive/channels/$channel/release/latest/VERSION'));
23-
if (rs.statusCode != 200) {
24-
_logger.warning(
25-
'Unable to fetch the Dart SDK version, status code: ${rs.statusCode}');
26-
continue;
27-
}
28-
final map = json.decode(rs.body) as Map<String, dynamic>;
29-
final version = map['version'] as String;
30-
final date = DateTime.parse(map['date'] as String);
31-
return CachedSdkVersion(version, date);
32-
} catch (e, st) {
33-
_logger.warning('Unable to fetch the Dart SDK version', e, st);
34-
continue;
35-
} finally {
36-
client.close();
37-
}
18+
try {
19+
return await httpGetWithRetry(
20+
Uri.parse(
21+
'https://storage.googleapis.com/dart-archive/channels/$channel/release/latest/VERSION'),
22+
responseFn: (rs) {
23+
final map = json.decode(rs.body) as Map<String, dynamic>;
24+
final version = map['version'] as String;
25+
final date = DateTime.parse(map['date'] as String);
26+
return CachedSdkVersion(version, date);
27+
},
28+
);
29+
} catch (e, st) {
30+
_logger.warning('Unable to fetch the Dart SDK version', e, st);
3831
}
3932
return null;
4033
}

pkg/_pub_shared/lib/utils/flutter_archive.dart

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,15 @@ final _logger = Logger('flutter_archive');
2121
///
2222
/// Returns `null` if the archive cannot be fetched.
2323
Future<FlutterArchive?> fetchFlutterArchive() async {
24-
for (var i = 0; i < 3; i++) {
25-
final client = httpRetryClient();
26-
try {
27-
final rs = await client.get(Uri.parse(
28-
'https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json'));
29-
return FlutterArchive.fromJson(
30-
json.decode(rs.body) as Map<String, Object?>);
31-
} catch (e, st) {
32-
_logger.warning('Unable to fetch the Flutter SDK archive', e, st);
33-
continue;
34-
} finally {
35-
client.close();
36-
}
24+
try {
25+
return await httpGetWithRetry(
26+
Uri.parse(
27+
'https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json'),
28+
responseFn: (rs) =>
29+
FlutterArchive.fromJson(json.decode(rs.body) as Map<String, Object?>),
30+
);
31+
} catch (e, st) {
32+
_logger.warning('Unable to fetch the Flutter SDK archive', e, st);
3733
}
3834
return null;
3935
}

0 commit comments

Comments
 (0)