From 9265ba957d4a6f5426871d587556ac246032d919 Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Sun, 1 Mar 2020 12:29:41 +0800 Subject: [PATCH] Bump isormorphic-git --- backend/src/backend/auth.clj | 2 +- backend/src/backend/db/token.clj | 4 ++ frontend/package.json | 2 +- frontend/src/frontend/components/repo.cljs | 9 ++++ frontend/src/frontend/git.cljs | 59 +++++++++++++--------- frontend/src/frontend/layout.cljs | 4 ++ frontend/yarn.lock | 26 ++-------- 7 files changed, 57 insertions(+), 49 deletions(-) diff --git a/backend/src/backend/auth.clj b/backend/src/backend/auth.clj index fda56317f..d2fb8d25e 100644 --- a/backend/src/backend/auth.clj +++ b/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)))) diff --git a/backend/src/backend/db/token.clj b/backend/src/backend/db/token.clj index 5a47ff861..664a3b68c 100644 --- a/backend/src/backend/db/token.clj +++ b/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})) diff --git a/frontend/package.json b/frontend/package.json index 1eab867f2..ba1c4133b 100644 --- a/frontend/package.json +++ b/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", diff --git a/frontend/src/frontend/components/repo.cljs b/frontend/src/frontend/components/repo.cljs index 2efe733af..610d6890d 100644 --- a/frontend/src/frontend/components/repo.cljs +++ b/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}} diff --git a/frontend/src/frontend/git.cljs b/frontend/src/frontend/git.cljs index 08c358caf..769596ded 100644 --- a/frontend/src/frontend/git.cljs +++ b/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] diff --git a/frontend/src/frontend/layout.cljs b/frontend/src/frontend/layout.cljs index 9cad4278b..1689c1efc 100644 --- a/frontend/src/frontend/layout.cljs +++ b/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? diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 72739ac1e..da2dbf15f 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -571,16 +571,6 @@ git-apply-delta@0.0.7: 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"