interface for commit fetcher with cache