in app/src/main/kotlin/io/klibs/app/job/GitHubRepositoryUpdatingJob.kt [38:56]
fun syncRepositoryWithGitHub() {
val reposToUpdate = scmRepositoryRepository.findMultipleForUpdate(reposUpdatedPerCall)
if (reposToUpdate.isEmpty()) {
logger.info("Unable to find a repo to update. Skipping.")
}
reposToUpdate.forEach { repoToUpdate ->
try {
if (repoBackoffProvider.isBackedOff(repoToUpdate.idNotNull)) {
logger.debug("Selected repoId=${repoToUpdate.id} ${repoToUpdate.ownerLogin}/${repoToUpdate.name} is in backoff; skipping this run")
return@forEach
}
githubIndexingService.updateRepo(repoToUpdate)
repoBackoffProvider.onSuccess(repoToUpdate.idNotNull)
} catch (e: Exception) {
logger.error("Error while updating a repo", e)
repoBackoffProvider.onFailure(repoToUpdate.idNotNull)
}
}
}