Implement periodic fetch for source
When `remote.NAME.fetchEvery` is configured to value greater than `0`
for a source then all its projects are fetched using a dedicated (called
`PeriodicallyFetchFromSources`) pool (with a single thread).
Notes:
* dedicated pool is created only when at least single resource is
configured to fetch periodically from the remote
* the check is performed on pull-replication plugin start therefore
plugin should be restarted in case when configuration is modified
* all refs (according to `remote.NAME.fetch` spec) are fetched for each
repository
Bug: Issue 322146240
Change-Id: I4ff6ca67ec4005710c28f6b9cee08d584da03936
7 files changed