diff --git a/pom.xml b/pom.xml
index 32fdc14a..cda117e2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -85,6 +85,12 @@
4.10.0
test
+
+ io.netty
+ netty-resolver-dns-native-macos
+ 4.1.85.Final
+ osx-aarch_64
+
diff --git a/src/main/java/io/pakland/mdas/githubstats/application/SaveAllCommits.java b/src/main/java/io/pakland/mdas/githubstats/application/SaveAllCommits.java
new file mode 100644
index 00000000..7d2364ba
--- /dev/null
+++ b/src/main/java/io/pakland/mdas/githubstats/application/SaveAllCommits.java
@@ -0,0 +1,21 @@
+package io.pakland.mdas.githubstats.application;
+
+import io.pakland.mdas.githubstats.domain.Commit;
+import io.pakland.mdas.githubstats.domain.repository.CommitRepository;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+public class SaveAllCommits {
+
+ private final CommitRepository commitRepository;
+
+ SaveAllCommits(CommitRepository commitRepository) {
+ this.commitRepository = commitRepository;
+ }
+
+ @Transactional
+ public void execute(List commits) {
+ commitRepository.saveAll(commits);
+ }
+}
diff --git a/src/test/java/io/pakland/mdas/githubstats/application/SaveAllCommitsTest.java b/src/test/java/io/pakland/mdas/githubstats/application/SaveAllCommitsTest.java
new file mode 100644
index 00000000..3e2c22f8
--- /dev/null
+++ b/src/test/java/io/pakland/mdas/githubstats/application/SaveAllCommitsTest.java
@@ -0,0 +1,26 @@
+package io.pakland.mdas.githubstats.application;
+
+import io.pakland.mdas.githubstats.domain.Commit;
+import io.pakland.mdas.githubstats.domain.repository.CommitRepository;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+
+import java.util.List;
+
+class SaveAllCommitsTest {
+
+ @Test
+ public void shouldCallCommitRepositorySaveAll_whenExecute() {
+
+ List commits = List.of(new Commit());
+ CommitRepository commitRepositoryMock = Mockito.mock(CommitRepository.class);
+ Mockito.when(commitRepositoryMock.saveAll(Mockito.anyList())).thenReturn(commits);
+ SaveAllCommits saveAllCommits = new SaveAllCommits(commitRepositoryMock);
+
+ saveAllCommits.execute(commits);
+
+ Mockito.verify(commitRepositoryMock, Mockito.times(1)).saveAll(Mockito.anyList());
+
+ }
+
+}
\ No newline at end of file