...
1 package server
2
3 import (
4 "encoding/json"
5 "io"
6 "log"
7 "net/http"
8
9 "github.com/gin-gonic/gin"
10 "github.com/google/go-github/v47/github"
11 )
12
13 func init() {
14 gin.SetMode(gin.ReleaseMode)
15 }
16
17 func Run() error {
18
19
20
21
22
23 r := gin.Default()
24
25 r.GET("/api/health", func(c *gin.Context) {
26 c.JSON(http.StatusOK, "OK")
27 })
28
29
30
31 r.PUT("/event", func(c *gin.Context) {
32 reader := c.Request.Body
33 defer reader.Close()
34
35 body, _ := io.ReadAll(c.Request.Body)
36
37 var wfj github.WorkflowJobEvent
38 if err := json.Unmarshal(body, &wfj); err != nil {
39 log.Printf("error unmarshaling workflow event: %v", err)
40 }
41 log.Printf("%+v \n", wfj.GetWorkflowJob().GetHeadSHA())
42 })
43
44
45
46 log.Print("starting server on port 8080")
47 if err := r.Run(":8080"); err != nil {
48 log.Printf("error starting on port 8080: %v", err)
49 return err
50 }
51
52 return nil
53 }
54
View as plain text