Bläddra i källkod

Bump isormorphic-git

Tienson Qin 5 år sedan
förälder
incheckning
9265ba957d

+ 1 - 1
backend/src/backend/auth.clj

@@ -22,7 +22,7 @@
       (if-let [token (token/get oauth-type oauth-id)]
         ;; user already exists
         (do
-          (prn {:token token})
+          (token/update (:id token) access-token)
           (let [token (assoc token :token access-token)]
            (some-> (u/get (:user_id token))
                    (assoc :token token))))

+ 4 - 0
backend/src/backend/db/token.clj

@@ -30,3 +30,7 @@
   (if (exists? oauth_type oauth_id)
     (delete oauth_type oauth_id))
   (db/insert! Token m))
+
+(defn update
+  [id new-token]
+  (db/update! Token id {:oauth_token new-token}))

+ 1 - 1
frontend/package.json

@@ -15,7 +15,7 @@
     "@material-ui/core": "^4.7.2",
     "@material-ui/icons": "^4.5.1",
     "browserfs": "^1.4.3",
-    "isomorphic-git": "^0.72.0",
+    "isomorphic-git": "^1.1.2",
     "mldoc_org": "^0.1.8",
     "react": "^16.12.0",
     "react-dom": "^16.12.0",

+ 9 - 0
frontend/src/frontend/components/repo.cljs

@@ -6,6 +6,15 @@
             [frontend.handler :as handler]
             [clojure.string :as string]))
 
+(defn repos
+  [repos]
+  [:div#repos
+   [:ul
+    (for [{:keys [url id]} repos]
+      [:li {:key id}
+       [:a {:href url}
+        (string/replace url "https://github.com/" "")]])]])
+
 (defn add-repo
   [repo-url]
   [:form {:style {:min-width 300}}

+ 34 - 25
frontend/src/frontend/git.cljs

@@ -4,34 +4,44 @@
             [frontend.util :as util]
             [frontend.config :refer [dir]]))
 
+;; only support Github now
+(defn auth
+  [token]
+  (prn {:token token})
+  {:onAuth (fn []
+             (clj->js
+              {:username token
+               :password "x-oauth-basic"}))})
+
+(defn with-auth
+  [token m]
+  (prn {:arguments (merge (auth token)
+                          m)})
+  (clj->js
+   (merge (auth token)
+          m)))
+
 (defn clone
   [username token repo]
-  (js/git.clone (clj->js
-              {:dir dir
-               :url repo
-               :corsProxy "https://cors.isomorphic-git.org"
-               :singleBranch true
-               :depth 1
-               ;; :username username
-               :oauth2format "github"
-               :token token
-               })))
+  (js/git.clone (with-auth token
+                  {:dir dir
+                   :url repo
+                   :corsProxy "https://cors.isomorphic-git.org"
+                   :singleBranch true
+                   :depth 1})))
 
 (defn list-files
   []
   (js/git.listFiles (clj->js
-                  {:dir dir
-                   :ref "HEAD"})))
+                     {:dir dir
+                      :ref "HEAD"})))
 
 (defn pull
   [username token]
-  (js/git.pull (clj->js
-             {:dir dir
-              :ref "master"
-              ;; :username username
-              :oauth2format "github"
-              :token token
-              :singleBranch true})))
+  (js/git.pull (with-auth token
+                 {:dir dir
+                  :ref "master"
+                  :singleBranch true})))
 (defn add
   [file]
   (js/git.add (clj->js
@@ -48,12 +58,11 @@
 
 (defn push
   [token]
-  (js/git.push (clj->js
-                {:dir dir
-                 :remote "origin"
-                 :ref "master"
-                 :oauth2format "github"
-                 :token token})))
+  (js/git.push (with-auth token
+                 {:dir dir
+                  :remote "origin"
+                  :ref "master"
+                  })))
 
 (defn add-commit-push
   [file message token push-ok-handler push-error-handler]

+ 4 - 0
frontend/src/frontend/layout.cljs

@@ -4,6 +4,7 @@
             [frontend.state :as state]
             [frontend.components.link :as link]
             [frontend.components.file :as file]
+            [frontend.components.repo :as repo]
             [rum.core :as rum]
             [clojure.string :as string]))
 
@@ -52,6 +53,9 @@
                           :on-click (fn []
                                       (handler/toggle-link-dialog? true))}
                          (mui/add-icon))))
+
+      (repo/repos (:repos state))
+
       content
 
       (if mobile?

+ 4 - 22
frontend/yarn.lock

@@ -571,16 +571,6 @@ [email protected]:
     bops "~0.0.6"
     varint "0.0.3"
 
-globalyzer@^0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.4.tgz#bc8e273afe1ac7c24eea8def5b802340c5cc534f"
-  integrity sha512-LeguVWaxgHN0MNbWC6YljNMzHkrCny9fzjmEUdnF1kQ7wATFD1RHFRqA1qxaX2tgxGENlcxjOflopBwj3YZiXA==
-
-globrex@^0.1.2:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098"
-  integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==
-
 hash-base@^3.0.0:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918"
@@ -685,20 +675,17 @@ isexe@^2.0.0:
   resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
   integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
 
-isomorphic-git@^0.72.0:
-  version "0.72.0"
-  resolved "https://registry.yarnpkg.com/isomorphic-git/-/isomorphic-git-0.72.0.tgz#274fc4bf14d8ebdfaa589ec236e8c214ca1b8ae2"
-  integrity sha512-9anY3ZSc5YLqWPMUauWE6cvMWq9QlzX4SrTwXieGQLucqdQ9C5LAOWyNGbrwImZUzdmKg8uFZ0GofA+AeWR3SA==
+isomorphic-git@^1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/isomorphic-git/-/isomorphic-git-1.1.2.tgz#1c0257f3b7e2371df8b34296035379b3ef549547"
+  integrity sha512-qXTN0E1S75ZojXwQlT6vQqRwxxyd2kXkQAvMklZYJJB5Ud9ZcN7IsXo9dazrI09f5MPSWKTPLYBahhUCyY0mkw==
   dependencies:
     async-lock "^1.1.0"
     clean-git-ref "^2.0.1"
     crc-32 "^1.2.0"
     diff3 "0.0.3"
     git-apply-delta "0.0.7"
-    globalyzer "^0.1.4"
-    globrex "^0.1.2"
     ignore "^5.1.4"
-    marky "^1.2.1"
     minimisted "^2.0.0"
     pako "^1.0.10"
     pify "^4.0.1"
@@ -814,11 +801,6 @@ map-age-cleaner@^0.1.1:
   dependencies:
     p-defer "^1.0.0"
 
-marky@^1.2.1:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/marky/-/marky-1.2.1.tgz#a3fcf82ffd357756b8b8affec9fdbf3a30dc1b02"
-  integrity sha512-md9k+Gxa3qLH6sUKpeC2CNkJK/Ld+bEz5X96nYwloqphQE0CKCVEKco/6jxEZixinqNdz5RFi/KaCyfbMDMAXQ==
-
 md5.js@^1.3.4:
   version "1.3.5"
   resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"