private async Task <List <GitChange> > GetChanges(Guid repoId, IPackageHandler handler, string packageVersion, GitVersionDescriptor versionRef, IEnumerable <GitItem> items) { var changes = new List <GitChange>(); foreach (var item in items) { var shouldUpdate = await handler.ShouldUpdate(item.Path).ConfigureAwait(false); if (shouldUpdate) { var itemRef = await _gitClient.GetItemContentAsync(repoId, item.Path, includeContent : true, versionDescriptor : versionRef).ConfigureAwait(false); var oldContent = await itemRef.GetContent().ConfigureAwait(false); var newContent = await handler.Update(oldContent, packageVersion).ConfigureAwait(false); if (!string.Equals(oldContent, newContent)) { changes.Add(CreateChange(item.Path, newContent)); Log($"Item content of {item.Path} received and changed."); } } } return(changes); }