Advertisement
Guest User

Untitled

a guest
Aug 24th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. // GPL
  2.  
  3. // go run merger.go "tokentokentoken" insolar/insolar/<prnum>
  4.  
  5.  
  6.  
  7. package main
  8.  
  9. import (
  10. "context"
  11. "fmt"
  12. "github.com/google/go-github/github"
  13. "golang.org/x/oauth2"
  14. "os"
  15. "strconv"
  16. "strings"
  17. "time"
  18. )
  19.  
  20.  
  21. func main() {
  22. ctx := context.Background()
  23. token := os.Args[1]
  24.  
  25. spl := strings.Split(os.Args[2], "/")
  26. proj := spl[0]
  27. repo := spl[1]
  28. prnum, err := strconv.Atoi(spl[2])
  29. asserterr(err)
  30.  
  31. ts := oauth2.StaticTokenSource(&oauth2.Token{AccessToken: token})
  32. tc := oauth2.NewClient(ctx, ts)
  33. client := github.NewClient(tc)
  34.  
  35. for {
  36. pr, _, err := client.PullRequests.Get(ctx, proj, repo, prnum)
  37. asserterr(err)
  38. fmt.Printf("%d : %s\n", *pr.Number, *pr.MergeableState)
  39. ms := *pr.MergeableState
  40. if ms == "blocked" || ms == "unknown" {
  41. time.Sleep(10 * time.Second)
  42. continue
  43. }
  44.  
  45. prmr, _, err := client.PullRequests.Merge(ctx, "insolar", "insolar", prnum, "automerge", nil)
  46. asserterr(err)
  47. fmt.Printf("%#v\n", prmr)
  48. }
  49. }
  50.  
  51.  
  52.  
  53. func asserterr(e error) {
  54. if e == nil {
  55. return
  56. }
  57. panic(e)
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement