Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // GPL
- // go run merger.go "tokentokentoken" insolar/insolar/<prnum>
- package main
- import (
- "context"
- "fmt"
- "github.com/google/go-github/github"
- "golang.org/x/oauth2"
- "os"
- "strconv"
- "strings"
- "time"
- )
- func main() {
- ctx := context.Background()
- token := os.Args[1]
- spl := strings.Split(os.Args[2], "/")
- proj := spl[0]
- repo := spl[1]
- prnum, err := strconv.Atoi(spl[2])
- asserterr(err)
- ts := oauth2.StaticTokenSource(&oauth2.Token{AccessToken: token})
- tc := oauth2.NewClient(ctx, ts)
- client := github.NewClient(tc)
- for {
- pr, _, err := client.PullRequests.Get(ctx, proj, repo, prnum)
- asserterr(err)
- fmt.Printf("%d : %s\n", *pr.Number, *pr.MergeableState)
- ms := *pr.MergeableState
- if ms == "blocked" || ms == "unknown" {
- time.Sleep(10 * time.Second)
- continue
- }
- prmr, _, err := client.PullRequests.Merge(ctx, "insolar", "insolar", prnum, "automerge", nil)
- asserterr(err)
- fmt.Printf("%#v\n", prmr)
- }
- }
- func asserterr(e error) {
- if e == nil {
- return
- }
- panic(e)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement