From 1110f5817de1e3e5f0f5d6210f12856bad71defd Mon Sep 17 00:00:00 2001 From: kagel Date: Fri, 30 Sep 2016 20:10:33 +0300 Subject: [PATCH] Fix tentacles edit-comment method --- src/clj/commiteth/github/core.clj | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/clj/commiteth/github/core.clj b/src/clj/commiteth/github/core.clj index 7bed7d7..0578c69 100644 --- a/src/clj/commiteth/github/core.clj +++ b/src/clj/commiteth/github/core.clj @@ -3,13 +3,17 @@ [tentacles.users :as users] [tentacles.repos :as repos] [tentacles.issues :as issues] + [tentacles.core :as tentacles] [ring.util.codec :as codec] [clj-http.client :as http] [commiteth.config :refer [env]] [digest :refer [sha-256]] - [clojure.tools.logging :as log]) + [clojure.tools.logging :as log] + [cheshire.core :as json]) (:import [java.util UUID])) +(def ^:dynamic url "https://api.github.com/") + (defn server-address [] (:server-address env)) (defn client-id [] (:github-client-id env)) (defn client-secret [] (:github-client-secret env)) @@ -68,7 +72,8 @@ (map #(merge {:login (get-in % login-field)} (select-keys % repo-fields)) - (repos/repos (merge (auth-params token) {:type "all"}))) + (repos/repos (merge (auth-params token) {:type "all" + :all-pages true}))) (filter #(not (:fork %))) (filter #(-> % :permissions :admin)))) @@ -123,11 +128,26 @@ (log/debug "Posting comment to" (str user "/" repo "/" issue-number) ":" comment) (issues/create-comment user repo issue-number comment (self-auth-params)))) +(defn make-patch-request [end-point positional query] + (let [{:keys [auth oauth-token] + :as query} query + req (merge-with merge + {:url (tentacles/format-url end-point positional) + :basic-auth auth + :method :patch} + (when oauth-token + {:headers {"Authorization" (str "token " oauth-token)}})) + raw-query (:raw query) + proper-query (tentacles/query-map (dissoc query :auth :oauth-token :all-pages :accept :user-agent :otp))] + (assoc req :body (json/generate-string (or raw-query proper-query))))) + (defn update-comment [user repo comment-id issue-number balance] (let [comment (generate-comment user repo issue-number balance)] (log/debug (str "Updating " user "/" repo "/" issue-number " comment #" comment-id " with contents: " comment)) - (issues/edit-comment user repo comment-id comment (self-auth-params)))) + (let [req (make-patch-request "repos/%s/%s/issues/comments/%s" + [user repo comment-id] (assoc (self-auth-params) :body comment))] + (tentacles/safe-parse (http/request req))))) (defn get-issue [user repo issue-number]