gitlab.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package http
  2. import (
  3. "encoding/json"
  4. "io/ioutil"
  5. "go-common/app/tool/saga/model"
  6. "go-common/library/ecode"
  7. "go-common/library/log"
  8. bm "go-common/library/net/http/blademaster"
  9. "go-common/library/net/http/blademaster/binding"
  10. )
  11. func gitlabComment(c *bm.Context) {
  12. var (
  13. bytes []byte
  14. err error
  15. hookComment = &model.HookComment{}
  16. )
  17. if bytes, err = ioutil.ReadAll(c.Request.Body); err != nil {
  18. log.Error("ioutil.ReadAll() error(%v)", err)
  19. c.JSON(nil, ecode.RequestErr)
  20. return
  21. }
  22. if err = json.Unmarshal(bytes, hookComment); err != nil {
  23. log.Error("json.Unmarshal() error(%v)", err)
  24. c.JSON(nil, ecode.RequestErr)
  25. return
  26. }
  27. if hookComment == nil || hookComment.User == nil || hookComment.ObjectAttributes == nil || hookComment.MergeRequest == nil {
  28. log.Error("hookComment event not standard")
  29. c.JSON(nil, ecode.RequestErr)
  30. return
  31. }
  32. log.Info("Got new Gitlab Comment Event kind(%s) attr(%+v) user(%+v)", hookComment.ObjectKind, hookComment.ObjectAttributes, hookComment.User)
  33. c.JSON(nil, svc.HandleGitlabComment(c, hookComment))
  34. }
  35. func gitlabPipeline(c *bm.Context) {
  36. var (
  37. err error
  38. hookPipeline = &model.HookPipeline{}
  39. )
  40. if err = c.BindWith(hookPipeline, binding.JSON); err != nil {
  41. return
  42. }
  43. if hookPipeline == nil || hookPipeline.User == nil || hookPipeline.ObjectAttributes == nil || hookPipeline.Project == nil {
  44. log.Error("hookPipeline event not standard")
  45. c.JSON(nil, ecode.RequestErr)
  46. return
  47. }
  48. c.JSON(nil, svc.PipelineChanged(c, hookPipeline))
  49. }
  50. func gitlabMR(c *bm.Context) {
  51. var (
  52. err error
  53. hookMR = &model.HookMR{}
  54. )
  55. if err = c.BindWith(hookMR, binding.JSON); err != nil {
  56. return
  57. }
  58. if hookMR == nil || hookMR.ObjectAttributes == nil || hookMR.Project == nil {
  59. log.Error("hookMR event not standard")
  60. c.JSON(nil, ecode.RequestErr)
  61. return
  62. }
  63. c.JSON(nil, svc.MergeRequest(c, hookMR))
  64. }