AppRunner: Create .git directory when cloning repository

Change-Id: Ibd3fe3285bb230bb3cc4be70575742806aa7fd18
diff --git a/apps/app-runner/server.go b/apps/app-runner/server.go
index e917754..a65cb0a 100644
--- a/apps/app-runner/server.go
+++ b/apps/app-runner/server.go
@@ -132,18 +132,24 @@
 		}
 	}
 	if s.repoAddr != "" {
-		commit, err := CloneRepositoryBranch(s.repoAddr, s.branch, s.rootDir, s.signer, newDir)
-		if err != nil {
-			fmt.Fprintf(s.logs, "!!! dodo: Failed to clone repository\n")
-			s.status = &Status{
-				Commit: nil,
+		if _, err := os.Stat(filepath.Join(newDir, ".git")); err != nil && os.IsNotExist(err) {
+			commit, err := CloneRepositoryBranch(s.repoAddr, s.branch, s.rootDir, s.signer, newDir)
+			if err != nil {
+				fmt.Fprintf(s.logs, "!!! dodo: Failed to clone repository\n")
+				s.status = &Status{
+					Commit: nil,
+				}
+				return err
 			}
-			return err
-		}
-		fmt.Fprintf(s.logs, "!!! dodo: Successfully cloned repository %s\n", commit.Hash)
-		s.status = &Status{
-			Commit:   commit,
-			Commands: []CommandStatus{},
+			fmt.Fprintf(s.logs, "!!! dodo: Successfully cloned repository %s\n", commit.Hash)
+			s.status = &Status{
+				Commit:   commit,
+				Commands: []CommandStatus{},
+			}
+		} else {
+			s.status = &Status{
+				Commands: []CommandStatus{},
+			}
 		}
 	} else {
 		s.status = &Status{