public void refreshVersionCandidates()

in ddm-rrm-scheduled-jobs/src/main/java/com/epam/digital/data/platform/management/scheduled/RepositoryRefreshScheduler.java [45:75]


  public void refreshVersionCandidates() {
    log.debug("Refreshing version-candidates' repositories started");
    var mrList = gerritService.getMRList();

    for (var changeInfo : mrList) {
      try {
        var change = gerritService.getMRByNumber(changeInfo.getNumber());
        if (change.getMergeable()) {
          continue;
        }
        var changeId = change.getChangeId();
        var versionId = change.getNumber();
        log.debug("Refreshing repository {}", change.getNumber());
        gerritService.rebase(changeId);
        jGitService.cloneRepoIfNotExist(versionId);
        jGitService.fetch(versionId, change.getRefs());

        Cache conflictCache = cacheManager.getCache(CONFLICTS_CACHE_NAME);
        conflictCache.evictIfPresent(versionId);
        conflictCache.put(versionId, jGitService.getConflicts(versionId));

        Cache rebaseCache = cacheManager.getCache(LATEST_REBASE_CACHE_NAME);
        rebaseCache.evictIfPresent(versionId);
        rebaseCache.put(versionId, LocalDateTime.now());
      } catch (Exception e) {
        log.warn("Error during repository refresh: {}", e.getMessage(), e);
      }
    }

    log.debug("Refreshing version-candidates' repositories finished");
  }