...

Source file src/edge-infra.dev/pkg/f8n/devinfra/github-actions-exporter/server/server.go

Documentation: edge-infra.dev/pkg/f8n/devinfra/github-actions-exporter/server

     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  	//err := metrics.InitMetrics()
    19  	//if err != nil {
    20  	//	log.Print("Error registering gauges")
    21  	//	return err
    22  	//}
    23  	r := gin.Default()
    24  
    25  	r.GET("/api/health", func(c *gin.Context) {
    26  		c.JSON(http.StatusOK, "OK")
    27  	})
    28  
    29  	// forwarded events handler
    30  	// TODO dont just log this out
    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  	//metricsHandlerFunc := gin.WrapH(promhttp.Handler())
    45  	//r.GET("/metrics", metricsHandlerFunc)
    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