github.com/covergates/covergates@v0.2.2-0.20201009050117-42ef8a19fb95/cmd/cli/comment/comment.go (about) 1 package comment 2 3 import ( 4 "fmt" 5 "io/ioutil" 6 "log" 7 "net/http" 8 9 "github.com/covergates/covergates/cmd/cli/modules" 10 "github.com/urfave/cli/v2" 11 ) 12 13 // Command for comment on pull request 14 var Command = &cli.Command{ 15 Name: "comment", 16 Usage: "leave a report summary comment", 17 Flags: []cli.Flag{ 18 &cli.StringFlag{ 19 Name: "report", 20 Usage: "report id", 21 EnvVars: []string{"REPORT_ID"}, 22 Value: "", 23 Required: true, 24 }, 25 &cli.StringFlag{ 26 Name: "number", 27 Usage: "pull request number", 28 EnvVars: []string{"DRONE_PULL_REQUEST", "PULL_REQUEST"}, 29 Value: "", 30 Required: true, 31 }, 32 }, 33 Action: comment, 34 } 35 36 func comment(c *cli.Context) error { 37 url := fmt.Sprintf( 38 "%s/reports/%s/comment/%s", 39 c.String("url"), 40 c.String("report"), 41 c.String("number"), 42 ) 43 req, err := http.NewRequest("POST", url, nil) 44 if err != nil { 45 return err 46 } 47 client := modules.GetHTTPClient(c) 48 respond, err := client.Do(req) 49 if err != nil { 50 return err 51 } 52 defer respond.Body.Close() 53 text, err := ioutil.ReadAll(respond.Body) 54 if err != nil { 55 return err 56 } else if respond.StatusCode >= 400 { 57 log.Fatal(string(text)) 58 } else { 59 log.Println(string(text)) 60 } 61 return nil 62 }