anchor.diff:    }
     return CloneResult(result.exitCode, cloneDir, msg: result.stderr as String);
   }
  -
  -Future<String> _getBody(String url) async => (await _getResponse(url)).body;
  -
  -Future<http.Response> _getResponse(String url) async =>
  -    _client.get(Uri.parse(url),
  -        headers: const {'User-Agent': 'dart.pkg.completion_metrics'});
   
   bool _hasPubspec(FileSystemEntity f) =>
       f is Directory &&
  
positive.code:   final String msg;
    CloneResult(this.exitCode, this.directory, {this.msg = ''});
  }
  
  class RepoList {
    static const itsallwidgetsRssFeed = 'https://itsallwidgets.com/app/feed';
  
    // (Re) generate the list of github repos on itsallwidgets.com
    static Future<List<String>> fromItsAllWidgetsRssFeed() async {
      final repos = <String>{};
  
      final body = await _getBody(itsallwidgetsRssFeed);
      final doc = parse(body);
      final entries = doc.querySelectorAll('entry');
      for (var entry in entries) {
        final link = entry.querySelector('link');
        if (link == null) {
          continue;
        }
        final href = link.attributes['href'];
        if (href == null) {
          continue;
        }
        final body = await _getBody(href);
        final doc = parse(body);
        final links = doc.querySelectorAll('a');
        for (var link in links) {
          final href = link.attributes['href'];
          if (href != null && href.startsWith('https://github.com/')) {
            print(href);
            repos.add(href);
            continue;
          }
        }
      }
      return repos.toList();
    }
  }
  
negative.code: import 'dart:io';
  
  import 'package:analyzer/src/util/file_paths.dart' as file_paths;
  import 'package:path/path.dart' as path;
  
  /// Generate or update corpus data.
  