private async Task <List <PackageUpdateSet> > ApplyFilters(
            ForkData pushFork, IEnumerable <PackageUpdateSet> all)
        {
            var filteredLocally = all
                                  .Where(MatchesIncludeExclude)
                                  .Where(MatchesMinAge);

            var filtered = await _existingBranchFilter.CanMakeBranchFor(pushFork, filteredLocally);

            return(filtered.ToList());
        }
        public async Task <IReadOnlyCollection <PackageUpdateSet> > SelectTargets(
            ForkData pushFork,
            IReadOnlyCollection <PackageUpdateSet> potentialUpdates)
        {
            var sorted = _sort.Sort(potentialUpdates)
                         .ToList();

            var filtered = await _updateSelection.Filter(sorted,
                                                         p => _existingBranchFilter.CanMakeBranchFor(p, pushFork));

            foreach (var updateSet in filtered)
            {
                _logger.Normal($"Selected package update of {updateSet.SelectedId} to {updateSet.SelectedVersion}");
            }

            return(filtered);
        }