diff options
author | Teddy Wing | 2017-11-17 01:08:55 +0100 |
---|---|---|
committer | Teddy Wing | 2017-11-17 01:08:55 +0100 |
commit | 399e04a697e42c9a684f14349f6d94208e719832 (patch) | |
tree | a2335f1778d8d99e82c233dcdbbeea21167e948d /src | |
parent | 205fc3b71bd44067685c8517e7d126e3574827e1 (diff) | |
download | kipper-399e04a697e42c9a684f14349f6d94208e719832.tar.bz2 |
main(): Don't update commit status unless commits were pushed
There are a bunch of events that can trigger the `pull_request` webhook.
These are:
"assigned", "unassigned", "review_requested",
"review_request_removed", "labeled", "unlabeled", "opened",
"edited", "closed", or "reopened". And "synchronize".
We only care about "opened" and "synchronize" because those are the only
two where new commits can come through. Since we don't set commit
statuses unless that commit is part of a pull request, we need a way to
update the status the first time a pull request is opened, thus the
"opened" action. When new commits are added we also want to update
statuses, so "synchronize". But for the others, we don't want to be
duplicating work and adding duplicate unnecessary statuses to PR
commits.
Diffstat (limited to 'src')
-rw-r--r-- | src/main.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs index 3bb2dbb..12d71eb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -33,7 +33,7 @@ use std::time::Duration; use getopts::Options; use kipper::jenkins; -use kipper::pull_request::CommitRef; +use kipper::pull_request::{CommitRef, pull_request_opened_or_synchronized}; const DEFAULT_PORT: u16 = 8000; @@ -139,6 +139,11 @@ fn main() { }, }; + if !pull_request_opened_or_synchronized(json.clone()) { + return rouille::Response::text("No status update needed.") + .with_status_code(200) + } + let commit_ref = match CommitRef::new(json) { Ok(cr) => cr, Err(e) => { |