Example #1
0
        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);
        }