Explorar el Código

Merge pull request #47 from overleaf/sk-print-good-error-when-404

When user clone/pull/etc a project which doesn't exist, print a nice message
Shane Kilkelly hace 7 años
padre
commit
26ff545415

+ 4 - 1
services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/git/handler/WLRepositoryResolver.java

@@ -109,7 +109,10 @@ public class WLRepositoryResolver
         } catch (ForbiddenException e) {
             throw new ServiceNotAuthorizedException();
         } catch (GitUserException e) {
-            throw new ServiceMayNotContinueException(e.getMessage(), e);
+            throw new ServiceMayNotContinueException(
+                e.getMessage() + "\n" +
+                    String.join("\n", e.getDescriptionLines()),
+                e);
         } catch (IOException e) {
             Log.warn(
                     "IOException when trying to open repo: " + projName,

+ 22 - 21
services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/snapshot/base/MissingRepositoryException.java

@@ -10,42 +10,43 @@ import java.util.List;
 public class MissingRepositoryException extends SnapshotAPIException {
 
     public static final List<String> GENERIC_REASON = Arrays.asList(
-        "This Overleaf project currently has no git access.",
+        "This Overleaf project currently has no git access, either because",
+        "the project does not exist, or because git access is not enabled",
+        "for the project.",
         "",
-        "If this problem persists, please contact us."
+        "If this is unexpected, please contact us at support@overleaf.com, or",
+        "see https://www.overleaf.com/help/342 for more information."
     );
 
     static List<String> buildExportedToV2Message(String remoteUrl) {
         if (remoteUrl == null) {
             return Arrays.asList(
-                    "This Overleaf project has been moved to Overleaf v2 and cannot be used with git at this time.",
-                    "",
-                    "If this error persists, please contact us at support@overleaf.com, or",
-                    "see https://www.overleaf.com/help/342 for more information."
+                "This Overleaf project has been moved to Overleaf v2 and cannot be used with git at this time.",
+                "",
+                "If this error persists, please contact us at support@overleaf.com, or",
+                "see https://www.overleaf.com/help/342 for more information."
             );
         } else {
             return Arrays.asList(
-                    "This Overleaf project has been moved to Overleaf v2 and has a new identifier.",
-                    "Please update your remote to:",
-                    "",
-                    "    " + remoteUrl,
-                    "",
-                    "Assuming you are using the default \"origin\" remote, the following commands",
-                    "will change the remote for you:",
-                    "",
-                    "    git remote set-url origin " + remoteUrl,
-                    "",
-                    "If this does not work, please contact us at support@overleaf.com, or",
-                    "see https://www.overleaf.com/help/342 for more information."
+                "This Overleaf project has been moved to Overleaf v2 and has a new identifier.",
+                "Please update your remote to:",
+                "",
+                "    " + remoteUrl,
+                "",
+                "Assuming you are using the default \"origin\" remote, the following commands",
+                "will change the remote for you:",
+                "",
+                "    git remote set-url origin " + remoteUrl,
+                "",
+                "If this does not work, please contact us at support@overleaf.com, or",
+                "see https://www.overleaf.com/help/342 for more information."
             );
         }
     }
 
     private List<String> descriptionLines;
 
-    public MissingRepositoryException() {
-        descriptionLines = new ArrayList<String>();
-    }
+    public MissingRepositoryException() { this.descriptionLines = GENERIC_REASON; }
 
     public MissingRepositoryException(List<String> descriptionLines) {
         this.descriptionLines = descriptionLines;