From 9d3987ae937263ee382162b9ab04e242b88f08c0 Mon Sep 17 00:00:00 2001
From: Daniel Crazzolara <crazzolaradaniel@gmail.com>
Date: Thu, 8 Jul 2021 12:20:55 +0200
Subject: [PATCH] Ignoring .git submodules when extracting zip

---
 .../java/at/ac/uibk/gitsearch/service/ExerciseService.java     | 3 +++
 src/main/java/at/ac/uibk/gitsearch/service/GitlabService.java  | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/main/java/at/ac/uibk/gitsearch/service/ExerciseService.java b/src/main/java/at/ac/uibk/gitsearch/service/ExerciseService.java
index c4047893e..a2f50c0d5 100644
--- a/src/main/java/at/ac/uibk/gitsearch/service/ExerciseService.java
+++ b/src/main/java/at/ac/uibk/gitsearch/service/ExerciseService.java
@@ -123,6 +123,9 @@ public class ExerciseService {
 
         // https://www.baeldung.com/java-compress-and-uncompress
         while ((zipEntry = zipInputStream.getNextEntry()) != null) {
+            if (zipEntry.getName().contains("/.git/")) {    // important as Artemis exercises come in submodules
+                continue;
+            }
             File entryFile = new File(tmpDir, zipEntry.getName());
 
             if (zipEntry.isDirectory()) {
diff --git a/src/main/java/at/ac/uibk/gitsearch/service/GitlabService.java b/src/main/java/at/ac/uibk/gitsearch/service/GitlabService.java
index 2e2570cc9..37da82d8e 100644
--- a/src/main/java/at/ac/uibk/gitsearch/service/GitlabService.java
+++ b/src/main/java/at/ac/uibk/gitsearch/service/GitlabService.java
@@ -220,7 +220,7 @@ public class GitlabService {
 
             FileUtils.copyDirectory(srcDir, git.getRepository().getDirectory().getParentFile());
             git.add().addFilepattern(".").call();
-            git.commit().setMessage("Importing files").setCommitter(currentUser.getUsername(), currentUser.getEmail()).call();
+            git.commit().setAll(true).setMessage("Importing files").setCommitter(currentUser.getUsername(), currentUser.getEmail()).call();
             git.push().setCredentialsProvider(CredentialsProvider.getDefault()).call();
         } catch (GitLabApiException | GitAPIException e) {
 	        FileUtils.deleteDirectory(git.getRepository().getDirectory().getParentFile());
-- 
GitLab