mirror of
https://github.com/status-im/open-bounty.git
synced 2025-02-19 20:58:32 +00:00
Remove PR -> issue link if comment removed
If "Fixes: #NN" is removed from PR title/description, no longer consider it a claim for any issue.
This commit is contained in:
parent
e39d07c37f
commit
d806e38433
@ -232,6 +232,13 @@ SET
|
||||
updated = timezone('utc'::text, now()),
|
||||
commit_sha = :commit_sha;
|
||||
|
||||
|
||||
-- :name remove-pull-request! :! :n
|
||||
-- :doc remove a PR by id
|
||||
DELETE from pull_requests
|
||||
WHERE pr_id = :pr_id;
|
||||
|
||||
|
||||
-- Bounties ------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
@ -16,3 +16,9 @@
|
||||
(jdbc/with-db-connection [con-db *db*]
|
||||
(db/save-pull-request! con-db
|
||||
(assoc pull-request :state state)))))
|
||||
|
||||
(defn remove
|
||||
[pr-id]
|
||||
(jdbc/with-db-connection [con-db *db*]
|
||||
(db/remove-pull-request! con-db
|
||||
{:pr_id pr-id})))
|
||||
|
@ -111,41 +111,14 @@
|
||||
issue-number)))
|
||||
|
||||
|
||||
(defn handle-pull-request-event
|
||||
;; when a PR is opened, only consider it as a claim if:
|
||||
;; * PR references an existing bounty-issue
|
||||
;;
|
||||
;; when a PR is merged via close event, only consider it a bounty
|
||||
;; claim being accepted if:
|
||||
;; * PR exists in DB
|
||||
;; * PR references an existing bounty-issue
|
||||
[event-type
|
||||
{{{owner :login} :owner
|
||||
repo :name
|
||||
repo-id :id} :repository
|
||||
{{user-id :id
|
||||
login :login
|
||||
avatar_url :avatar_url
|
||||
name :name} :user
|
||||
id :id
|
||||
merged? :merged
|
||||
{head-sha :sha} :head
|
||||
pr-number :number
|
||||
pr-body :body
|
||||
pr-title :title} :pull_request}]
|
||||
(log/debug "handle-pull-request-event" event-type owner repo repo-id login pr-body pr-title)
|
||||
(log/debug (extract-issue-number pr-body pr-title))
|
||||
(when-let [bounty-issue-number (->>
|
||||
(extract-issue-number pr-body pr-title)
|
||||
(first)
|
||||
(ensure-bounty-issue owner repo))]
|
||||
(log/debug "Referenced bounty issue found" repo bounty-issue-number)
|
||||
(defn handle-claim
|
||||
[user-id login name avatar_url owner repo repo-id bounty-issue-number pr-id pr-number head-sha merged? event-type]
|
||||
(users/create-user user-id login name nil avatar_url)
|
||||
(let [issue (github/get-issue owner repo bounty-issue-number)
|
||||
open-or-edit? (contains? #{:opened :edited} event-type)
|
||||
close? (= :closed event-type)
|
||||
pr-data {:repo_id repo-id
|
||||
:pr_id id
|
||||
:pr_id pr-id
|
||||
:pr_number pr-number
|
||||
:user_id user-id
|
||||
:issue_number bounty-issue-number
|
||||
@ -173,7 +146,53 @@
|
||||
bounty-issue-number "closed with no merge")
|
||||
(pull-requests/save
|
||||
(merge pr-data {:state :closed
|
||||
:commit_sha head-sha}))))))))
|
||||
:commit_sha head-sha})))))))
|
||||
|
||||
|
||||
(defn handle-pull-request-event
|
||||
;; when a PR is opened, only consider it as a claim if:
|
||||
;; * PR references an existing bounty-issue
|
||||
;;
|
||||
;; when a PR is merged via close event, only consider it a bounty
|
||||
;; claim being accepted if:
|
||||
;; * PR exists in DB
|
||||
;; * PR references an existing bounty-issue
|
||||
[event-type
|
||||
{{{owner :login} :owner
|
||||
repo :name
|
||||
repo-id :id} :repository
|
||||
{{user-id :id
|
||||
login :login
|
||||
avatar_url :avatar_url
|
||||
name :name} :user
|
||||
pr-id :id
|
||||
merged? :merged
|
||||
{head-sha :sha} :head
|
||||
pr-number :number
|
||||
pr-body :body
|
||||
pr-title :title} :pull_request}]
|
||||
(log/debug "handle-pull-request-event" event-type owner repo repo-id login pr-body pr-title)
|
||||
(log/debug (extract-issue-number pr-body pr-title))
|
||||
(if-let [bounty-issue-number (->>
|
||||
(extract-issue-number pr-body pr-title)
|
||||
(first)
|
||||
(ensure-bounty-issue owner repo))]
|
||||
(do
|
||||
(log/debug "Referenced bounty issue found" owner repo bounty-issue-number)
|
||||
(handle-claim user-id
|
||||
login name
|
||||
avatar_url
|
||||
owner repo
|
||||
repo-id
|
||||
bounty-issue-number
|
||||
pr-id
|
||||
pr-number
|
||||
head-sha
|
||||
merged?
|
||||
event-type))
|
||||
(when (= :edited event-type)
|
||||
(pull-requests/remove pr-id))))
|
||||
|
||||
|
||||
(defn handle-issue-edited
|
||||
[webhook-payload]
|
||||
|
Loading…
x
Reference in New Issue
Block a user