mirror of
https://github.com/macports/mpbot-github.git
synced 2026-07-13 03:18:39 -07:00
Add retry command
This commit is contained in:
@@ -29,6 +29,11 @@ func (receiver *Receiver) handlePullRequest(body []byte) {
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
receiver.processPullRequest(event)
|
||||
}
|
||||
|
||||
func (receiver *Receiver) processPullRequest(event *github.PullRequestEvent) {
|
||||
number := *event.Number
|
||||
owner := *event.Repo.Owner.Login
|
||||
repo := *event.Repo.Name
|
||||
|
||||
@@ -3,7 +3,9 @@ package webhook
|
||||
import (
|
||||
"encoding/json"
|
||||
"log"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/google/go-github/github"
|
||||
)
|
||||
@@ -41,6 +43,33 @@ func (receiver *Receiver) handleOtherPullRequestEvents(eventType string, body []
|
||||
return
|
||||
}
|
||||
|
||||
receiver.membersLock.RLock()
|
||||
members := receiver.members
|
||||
receiver.membersLock.RUnlock()
|
||||
if members != nil {
|
||||
_, isMember := (*members)[*event.Sender.Login]
|
||||
if isMember && strings.Contains(*event.Comment.Body, "@macportsbot") { // TODO: read bot user from ENV
|
||||
body := *event.Comment.Body
|
||||
if botMentioned, _ := regexp.MatchString(`@macportsbot\s`, body); botMentioned {
|
||||
if doRetry, _ := regexp.MatchString(`@macportsbot\s+retry`, body); doRetry { // TODO: test compile patterns
|
||||
pr, err := receiver.githubClient.GetPullRequest(*event.Repo.Owner.Login, *event.Repo.Name, *event.Issue.Number)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
fakeEvent := &github.PullRequestEvent{
|
||||
Action: ptrOfStr("opened"),
|
||||
Number: event.Issue.Number,
|
||||
Repo: event.Repo,
|
||||
Sender: event.Issue.User,
|
||||
PullRequest: pr,
|
||||
}
|
||||
receiver.processPullRequest(fakeEvent)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
number = *event.Issue.Number
|
||||
sender = *event.Sender.Login
|
||||
default:
|
||||
|
||||
@@ -206,11 +206,3 @@ func (stub *stubDBHelper) SetPRProcessed(number int, processed bool) error {
|
||||
func (stub *stubDBHelper) SetPRPendingReview(number int, pendingReview bool) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func ptrOfStr(s string) *string {
|
||||
return &s
|
||||
}
|
||||
|
||||
func ptrOfInt(s int) *int {
|
||||
return &s
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package webhook
|
||||
|
||||
func ptrOfStr(s string) *string {
|
||||
return &s
|
||||
}
|
||||
|
||||
func ptrOfInt(s int) *int {
|
||||
return &s
|
||||
}
|
||||
Reference in New Issue
Block a user