24 lines
804 B
Kotlin
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()
|
|
}
|
|
}
|
|
} |