Contract-address to comment field + disable QR image caching

* include contract address in github comment
* set cache-control: no-cache header for QR image response to avoid
  caching on Github's side. Also no longer including balance in
  comment hash function.

Fixes: #16
This commit is contained in:
Teemu Patja 2017-01-22 12:26:32 +02:00
parent 985b72754d
commit c12e5d1311
No known key found for this signature in database
GPG Key ID: F5B7035E6580FD4C
3 changed files with 31 additions and 18 deletions

View File

@ -108,12 +108,12 @@
(repos/delete-hook user repo hook-id (auth-params token))))
(defn github-comment-hash
[user repo issue-number balance]
(digest/sha-256 (str "SALT_Yoh2looghie9jishah7aiphahphoo6udiju" user repo issue-number balance)))
[user repo issue-number]
(digest/sha-256 (str "SALT_Yoh2looghie9jishah7aiphahphoo6udiju" user repo issue-number)))
(defn- get-qr-url
[user repo issue-number balance]
(let [hash (github-comment-hash user repo issue-number balance)]
[user repo issue-number]
(let [hash (github-comment-hash user repo issue-number)]
(str (server-address) (format "/qr/%s/%s/bounty/%s/%s/qr.png" user repo issue-number hash))))
(defn- md-url
@ -127,15 +127,16 @@
(str "!" (md-url alt src)))
(defn generate-comment
[user repo issue-number balance]
(let [image-url (md-image "QR Code" (get-qr-url user repo issue-number balance))
[user repo issue-number contract-address balance]
(let [image-url (md-image "QR Code" (get-qr-url user repo issue-number))
balance (str balance " ETH")
site-url (md-url (server-address) (server-address))]
(format "Current balance: %s\n%s\n%s" balance image-url site-url)))
(format "Current balance: %s\nContract address: %s\n%s\n%s"
balance contract-address image-url site-url)))
(defn post-comment
[user repo issue-number balance]
(let [comment (generate-comment user repo issue-number balance)]
[user repo issue-number contract-address balance]
(let [comment (generate-comment user repo issue-number contract-address balance)]
(log/debug "Posting comment to" (str user "/" repo "/" issue-number) ":" comment)
(issues/create-comment user repo issue-number comment (self-auth-params))))
@ -158,8 +159,8 @@
(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)]
[user repo comment-id issue-number contract-address balance]
(let [comment (generate-comment user repo issue-number contract-address balance)]
(log/debug (str "Updating " user "/" repo "/" issue-number
" comment #" comment-id " with contents: " comment))
(let [req (make-patch-request "repos/%s/%s/issues/comments/%s"

View File

@ -33,7 +33,7 @@
(context "/qr" []
;; user may be an organization here
(GET "/:user/:repo/bounty/:issue{[0-9]{1,9}}/:hash/qr.png" [user repo issue hash]
(log/debug "qr PNG GET")
(log/debug "qr PNG GET" user repo issue hash)
(let [{address :contract_address
login :login
repo :repo
@ -45,8 +45,11 @@
(log/debug "address:" address "balance:" balance)
(if (and address
(= hash (github/github-comment-hash user repo issue balance)))
(let [issue-url (str login "/" repo "/issues/" issue-number)]
(log/debug "balance:" address)
(ok (generate-image address balance issue-url 768 256)))
(= hash (github/github-comment-hash user repo issue)))
(let [issue-url (str login "/" repo "/issues/" issue-number)
image-url (generate-image address balance issue-url 768 256)
response (assoc-in (ok image-url)
[:headers "cache-control"] "no-cache")]
(log/debug "balance:" address "response" response)
response)
(bad-request))))))

View File

@ -24,7 +24,11 @@
repo :repo
issue-number :issue_number} issue
balance (eth/get-balance-eth contract-address 4)
{comment-id :id} (github/post-comment user repo issue-number balance)]
{comment-id :id} (github/post-comment user
repo
issue-number
contract-address
balance)]
(issues/update-comment-id issue-id comment-id))))))
(defn self-sign-bounty
@ -72,7 +76,12 @@
current-balance-eth (eth/hex->eth current-balance-hex 8)]
(when-not (= old-balance current-balance-hex)
(issues/update-balance contract-address current-balance-hex)
(github/update-comment login repo comment-id issue-number current-balance-eth))))))
(github/update-comment login
repo
comment-id
issue-number
contract-address
current-balance-eth))))))
(def scheduler-thread-name "SCHEDULER_THREAD")