execute method
Executes the method and returns a score between 0 and 100
Implementation
@override
Future<({double score, String? reason})> execute() async {
final info = await DeviceInfoPlugin().deviceInfo;
if (info is! AndroidDeviceInfo) return (score: 0.0, reason: null);
final fingerprint = info.fingerprint.toLowerCase();
final host = info.host.toLowerCase();
final hasJenkinsFingerprint = fingerprint.contains('jenkins');
final hasCiHost = host.contains('jenkins') || host.contains('build');
final ciSignals = <String>[
if (hasJenkinsFingerprint) 'fingerprint=$fingerprint',
if (hasCiHost) 'host=$host',
];
if (ciSignals.length >= 2) {
return (score: score, reason: '$reason (${ciSignals.join(", ")})');
}
return (score: 0.0, reason: null);
}