You've already forked mpbot-github
mirror of
https://github.com/macports/mpbot-github.git
synced 2026-07-13 03:18:39 -07:00
Add "by: member" label
This commit is contained in:
@@ -163,6 +163,16 @@ func (receiver *Receiver) handlePullRequest(body []byte) {
|
||||
}
|
||||
newLabels = append(newLabels, typeLabels...)
|
||||
|
||||
receiver.membersLock.RLock()
|
||||
members := receiver.members
|
||||
receiver.membersLock.RUnlock()
|
||||
if members != nil {
|
||||
_, exist := (*members)[*event.Sender.Login]
|
||||
if exist {
|
||||
newLabels = appendIfUnique(newLabels, "by: member")
|
||||
}
|
||||
}
|
||||
|
||||
err = receiver.githubClient.ReplaceLabels(owner, repo, number, newLabels)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
|
||||
@@ -7,6 +7,8 @@ import (
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/macports/mpbot-github/pr/db"
|
||||
"github.com/macports/mpbot-github/pr/githubapi"
|
||||
@@ -19,6 +21,8 @@ type Receiver struct {
|
||||
testing bool
|
||||
githubClient githubapi.Client
|
||||
dbHelper db.DBHelper
|
||||
members *map[string]bool
|
||||
membersLock sync.RWMutex
|
||||
}
|
||||
|
||||
func NewReceiver(listenAddr string, hookSecret []byte, botSecret string, production bool, dbHelper db.DBHelper) *Receiver {
|
||||
@@ -71,9 +75,36 @@ func (receiver *Receiver) Start() {
|
||||
w.WriteHeader(http.StatusNoContent)
|
||||
})
|
||||
|
||||
go receiver.updateMembers()
|
||||
|
||||
http.ListenAndServe(receiver.listenAddr, mux)
|
||||
}
|
||||
|
||||
func (receiver *Receiver) updateMembers() {
|
||||
for ; ; time.Sleep(24 * time.Hour) {
|
||||
users, err := receiver.githubClient.ListOrgMembers("macports")
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
members := make(map[string]bool)
|
||||
for _, user := range users {
|
||||
if user.Login == nil {
|
||||
continue
|
||||
}
|
||||
login := *user.Login
|
||||
if login == "" {
|
||||
continue
|
||||
}
|
||||
members[login] = true
|
||||
}
|
||||
if len(members) > 0 {
|
||||
receiver.membersLock.Lock()
|
||||
receiver.members = &members
|
||||
receiver.membersLock.Unlock()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// checkMAC reports whether messageMAC is a valid HMAC tag for message.
|
||||
func (receiver *Receiver) checkMAC(message, messageMAC []byte) bool {
|
||||
mac := hmac.New(sha1.New, receiver.hookSecret)
|
||||
|
||||
Reference in New Issue
Block a user