Gitnuro/src/main/kotlin/app/git/remote_operations/FetchAllBranchesUseCase.kt
Abdelilah El Aissaoui 270951fe66 Started arch refactor
2022-08-24 04:43:31 +02:00

24 lines
804 B
Kotlin

package app.git.remote_operations
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.eclipse.jgit.api.Git
import org.eclipse.jgit.transport.CredentialsProvider
import javax.inject.Inject
class FetchAllBranchesUseCase @Inject constructor(
private val handleTransportUseCase: HandleTransportUseCase,
) {
suspend operator fun invoke(git: Git) = withContext(Dispatchers.IO) {
val remotes = git.remoteList().call()
for (remote in remotes) {
git.fetch()
.setRemote(remote.name)
.setRefSpecs(remote.fetchRefSpecs)
.setTransportConfigCallback { handleTransportUseCase(it) }
.setCredentialsProvider(CredentialsProvider.getDefault())
.call()
}
}
}