resolves #200 rewrite main loop in aggregateContent to operate on unique URLs
- rename openOrCloneRepository to loadRepo; don't propogate unnecessary data
- group content sources by URL
- iterate over unique URLs
- extract repository processing logic into function (collectComponentVersions)
- extract ref processing logic into function (populateComponentVersion)
- add test for multiple content sources with same URL
- isolate preparation of cache dir into an await call
- remove superfluous async keyword in certain tests
- rearrange functions in content aggregator
- interpret string branches and tags pattern defined in playbook as CSV
- use pattern -.git for name of cloned folder
- use consistent style for requiring path.posix
Edited by Dan Allen