// Munge is the workhorse the will actually make updates to the PR func (PingCIMunger) Munge(obj *github.MungeObject) { if !obj.IsPR() { return } if !obj.HasLabel("lgtm") { return } mergeable, err := obj.IsMergeable() if err != nil { glog.V(2).Infof("Skipping %d - problem determining mergeability", *obj.Issue.Number) return } if !mergeable { glog.V(2).Infof("Skipping %d - not mergeable", *obj.Issue.Number) return } if state := obj.GetStatusState([]string{jenkinsCIContext, travisContext}); state != "incomplete" { glog.V(2).Info("Have %s status - skipping ping CI", jenkinsCIContext) return } state := obj.GetStatusState([]string{shippableContext, travisContext}) if state == "incomplete" { msg := "Continuous integration appears to have missed, closing and re-opening to trigger it" obj.WriteComment(msg) obj.ClosePR() time.Sleep(5 * time.Second) obj.OpenPR(10) } }
func closePullRequest(obj *github.MungeObject, inactiveFor time.Duration) { comment := findLatestWarningComment(obj) if comment != nil { obj.DeleteComment(comment) } obj.WriteComment(fmt.Sprintf(closingComment, durationToDays(inactiveFor))) obj.ClosePR() }
func closePullRequest(obj *github.MungeObject, inactiveFor time.Duration) { mention := mungerutil.GetIssueUsers(obj.Issue).AllUsers().Mention().Join() if mention != "" { mention = "cc " + mention + "\n" } comment := findLatestWarningComment(obj) if comment != nil { obj.DeleteComment(comment) } obj.WriteComment(fmt.Sprintf(closingComment, durationToDays(inactiveFor), mention)) obj.ClosePR() }
// Munge is the workhorse the will actually make updates to the PR func (PingCIMunger) Munge(obj *github.MungeObject) { if !obj.IsPR() { return } // This munger only runs on certain branches, since travis/CI only listens // on certain branches validBranch := false for _, b := range validBranches { if obj.IsForBranch(b) { validBranch = true break } } if !validBranch { return } if !obj.HasLabel(lgtmLabel) { return } mergeable, err := obj.IsMergeable() if err != nil { glog.V(2).Infof("ping CI skipping %d - problem determining mergeability", *obj.Issue.Number) return } if !mergeable { glog.V(2).Infof("ping CI skipping %d - not mergeable", *obj.Issue.Number) return } if state := obj.GetStatusState([]string{travisContext}); state == "incomplete" { msg := "Travis continuous integration appears to have missed, closing and re-opening to trigger it" obj.WriteComment(msg) obj.ClosePR() time.Sleep(5 * time.Second) obj.OpenPR(10) } }