Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"api.go",
"gitlab.go",
"http.go",
],
importpath = "go-common/app/tool/saga/http",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/tool/saga/conf:go_default_library",
"//app/tool/saga/model:go_default_library",
"//app/tool/saga/service:go_default_library",
"//library/ecode:go_default_library",
"//library/log:go_default_library",
"//library/net/http/blademaster:go_default_library",
"//library/net/http/blademaster/binding:go_default_library",
"//library/net/http/blademaster/middleware/verify:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

21
app/tool/saga/http/api.go Normal file
View File

@@ -0,0 +1,21 @@
package http
import (
"go-common/app/tool/saga/model"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/binding"
)
func buildContributors(c *bm.Context) {
var (
err error
repo = &model.RepoInfo{}
)
if err = c.BindWith(repo, binding.JSON); err != nil {
log.Error("BindWith error(%v)", err)
return
}
c.JSON(nil, svc.HandleBuildContributors(c, repo))
}

View File

@@ -0,0 +1,70 @@
package http
import (
"encoding/json"
"io/ioutil"
"go-common/app/tool/saga/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/binding"
)
func gitlabComment(c *bm.Context) {
var (
bytes []byte
err error
hookComment = &model.HookComment{}
)
if bytes, err = ioutil.ReadAll(c.Request.Body); err != nil {
log.Error("ioutil.ReadAll() error(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
if err = json.Unmarshal(bytes, hookComment); err != nil {
log.Error("json.Unmarshal() error(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
if hookComment == nil || hookComment.User == nil || hookComment.ObjectAttributes == nil || hookComment.MergeRequest == nil {
log.Error("hookComment event not standard")
c.JSON(nil, ecode.RequestErr)
return
}
log.Info("Got new Gitlab Comment Event kind(%s) attr(%+v) user(%+v)", hookComment.ObjectKind, hookComment.ObjectAttributes, hookComment.User)
c.JSON(nil, svc.HandleGitlabComment(c, hookComment))
}
func gitlabPipeline(c *bm.Context) {
var (
err error
hookPipeline = &model.HookPipeline{}
)
if err = c.BindWith(hookPipeline, binding.JSON); err != nil {
return
}
if hookPipeline == nil || hookPipeline.User == nil || hookPipeline.ObjectAttributes == nil || hookPipeline.Project == nil {
log.Error("hookPipeline event not standard")
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(nil, svc.PipelineChanged(c, hookPipeline))
}
func gitlabMR(c *bm.Context) {
var (
err error
hookMR = &model.HookMR{}
)
if err = c.BindWith(hookMR, binding.JSON); err != nil {
return
}
if hookMR == nil || hookMR.ObjectAttributes == nil || hookMR.Project == nil {
log.Error("hookMR event not standard")
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(nil, svc.MergeRequest(c, hookMR))
}

View File

@@ -0,0 +1,57 @@
package http
import (
"net/http"
"go-common/app/tool/saga/conf"
"go-common/app/tool/saga/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/verify"
)
var (
svc *service.Service
idfSvc *verify.Verify
)
// Init init http sever instance.
func Init(s *service.Service) {
svc = s
idfSvc = verify.New(nil)
e := bm.DefaultServer(conf.Conf.BM)
internalRouter(e)
if err := e.Start(); err != nil {
log.Error("xhttp.Serve error(%v)", err)
panic(err)
}
}
// internalRouter init internal router.
func internalRouter(e *bm.Engine) {
e.Ping(ping)
e.Register(register)
group1 := e.Group("/x/internal/v2/saga/gitlab")
{
group1.POST("/comment", gitlabComment)
group1.POST("/pipeline", gitlabPipeline)
group1.POST("/mr", gitlabMR)
}
group2 := e.Group("/x/internal/v2/saga/api")
{
group2.POST("/contributors", buildContributors)
}
}
// ping check server ok.
func ping(c *bm.Context) {
if err := svc.Ping(c); err != nil {
log.Error("saga ping error(%+v)", err)
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}
func register(c *bm.Context) {
c.JSON(nil, nil)
}