#8 skip path if branch exists #12
3
Makefile
3
Makefile
@ -1,6 +1,7 @@
|
|||||||
.PHONY: build
|
.PHONY: build
|
||||||
build:
|
build:
|
||||||
CGO_ENABLED=0 go build -o bin/app -mod=readonly git.unistack.org/unistack-org/pkgdash/cmd/pkgdash
|
GOWORK=off CGO_ENABLED=0 go build -o bin/pkgdash -mod=readonly git.unistack.org/unistack-org/pkgdash/cmd/pkgdash
|
||||||
|
GOWORK=off CGO_ENABLED=0 go build -o bin/pkgdashcli -mod=readonly git.unistack.org/unistack-org/pkgdash/cmd/pkgdashcli
|
||||||
|
|
||||||
.PHONY: buildcli
|
.PHONY: buildcli
|
||||||
buildcli:
|
buildcli:
|
||||||
|
@ -7,7 +7,7 @@ import (
|
|||||||
"io/fs"
|
"io/fs"
|
||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
|
slog "go.unistack.org/micro/v4/logger/slog"
|
||||||
appconfig "git.unistack.org/unistack-org/pkgdash/internal/config"
|
appconfig "git.unistack.org/unistack-org/pkgdash/internal/config"
|
||||||
"git.unistack.org/unistack-org/pkgdash/internal/database"
|
"git.unistack.org/unistack-org/pkgdash/internal/database"
|
||||||
"git.unistack.org/unistack-org/pkgdash/internal/handler"
|
"git.unistack.org/unistack-org/pkgdash/internal/handler"
|
||||||
@ -21,7 +21,6 @@ import (
|
|||||||
envconfig "go.unistack.org/micro-config-env/v4"
|
envconfig "go.unistack.org/micro-config-env/v4"
|
||||||
fileconfig "go.unistack.org/micro-config-file/v4"
|
fileconfig "go.unistack.org/micro-config-file/v4"
|
||||||
vaultconfig "go.unistack.org/micro-config-vault/v4"
|
vaultconfig "go.unistack.org/micro-config-vault/v4"
|
||||||
zlogger "go.unistack.org/micro-logger-zerolog/v4"
|
|
||||||
victoriameter "go.unistack.org/micro-meter-victoriametrics/v4"
|
victoriameter "go.unistack.org/micro-meter-victoriametrics/v4"
|
||||||
httpsrv "go.unistack.org/micro-server-http/v4"
|
httpsrv "go.unistack.org/micro-server-http/v4"
|
||||||
healthhandler "go.unistack.org/micro-server-http/v4/handler/health"
|
healthhandler "go.unistack.org/micro-server-http/v4/handler/health"
|
||||||
@ -54,7 +53,7 @@ func main() {
|
|||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
logger.DefaultLogger = zlogger.NewLogger(zlogger.ReportCaller(), logger.WithLevel(logger.DebugLevel), logger.WithCallerSkipCount(4))
|
logger.DefaultLogger = slog.NewLogger(logger.WithLevel(logger.DebugLevel))
|
||||||
if err := logger.DefaultLogger.Init(); err != nil {
|
if err := logger.DefaultLogger.Init(); err != nil {
|
||||||
logger.Fatal(ctx, "failed to init logger")
|
logger.Fatal(ctx, "failed to init logger")
|
||||||
}
|
}
|
||||||
|
@ -94,12 +94,11 @@ func pkgdashcli() {
|
|||||||
|
|
||||||
for _, configDir := range configDirs {
|
for _, configDir := range configDirs {
|
||||||
for _, configFile := range configFiles {
|
for _, configFile := range configFiles {
|
||||||
logger.Info(ctx, fmt.Sprintf("path: %s", filepath.Join(configDir, configFile)))
|
|
||||||
c := fileconfig.NewConfig(
|
c := fileconfig.NewConfig(
|
||||||
config.AllowFail(false),
|
config.AllowFail(false),
|
||||||
config.Struct(cfg),
|
config.Struct(cfg),
|
||||||
options.Codec(yamlcodec.NewCodec()),
|
options.Codec(yamlcodec.NewCodec()),
|
||||||
fileconfig.Path(".gitea/pkgdashcli.yaml"),
|
fileconfig.Path(filepath.Join(configDir, configFile)),
|
||||||
)
|
)
|
||||||
err = c.Init(options.Context(ctx))
|
err = c.Init(options.Context(ctx))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -89,7 +89,7 @@ func NewInitCommand() *cobra.Command {
|
|||||||
options.Codec(yamlcodec.NewCodec()),
|
options.Codec(yamlcodec.NewCodec()),
|
||||||
fileconfig.Path(".gitea/pkgdashcli.yaml"),
|
fileconfig.Path(".gitea/pkgdashcli.yaml"),
|
||||||
)
|
)
|
||||||
err = c.Init(options.Context(ctx))
|
err = c.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(ctx, fmt.Sprintf("failed to init config: %v", err))
|
logger.Error(ctx, fmt.Sprintf("failed to init config: %v", err))
|
||||||
return err
|
return err
|
||||||
|
@ -17,18 +17,18 @@ func (h *Handler) CommentCreate(ctx context.Context, req *pb.CommentCreateReq, r
|
|||||||
|
|
||||||
err := req.Validate()
|
err := req.Validate()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(ctx, err)
|
logger.Error(ctx, "validation error", err)
|
||||||
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
|
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
|
||||||
return httpsrv.SetError(NewValidationError(err))
|
return httpsrv.SetError(NewValidationError(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
var com *models.Comment
|
var com *models.Comment
|
||||||
if com, err = h.store.CommentCreate(ctx, req); err != nil {
|
if com, err = h.store.CommentCreate(ctx, req); err != nil {
|
||||||
logger.Error(ctx, err)
|
|
||||||
if errors.Is(err, sql.ErrNoRows) {
|
if errors.Is(err, sql.ErrNoRows) {
|
||||||
httpsrv.SetRspCode(ctx, http.StatusNotFound)
|
httpsrv.SetRspCode(ctx, http.StatusNotFound)
|
||||||
return httpsrv.SetError(NewNotFoundError(err))
|
return httpsrv.SetError(NewNotFoundError(err))
|
||||||
}
|
}
|
||||||
|
logger.Error(ctx, "comment create error", err)
|
||||||
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
|
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
|
||||||
return httpsrv.SetError(NewInternalError(err))
|
return httpsrv.SetError(NewInternalError(err))
|
||||||
}
|
}
|
||||||
|
@ -16,17 +16,18 @@ func (h *Handler) CommentDelete(ctx context.Context, req *pb.CommentDeleteReq, r
|
|||||||
|
|
||||||
err := req.Validate()
|
err := req.Validate()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(ctx, err)
|
logger.Error(ctx, "validate error", err)
|
||||||
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
|
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
|
||||||
return httpsrv.SetError(NewValidationError(err))
|
return httpsrv.SetError(NewValidationError(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = h.store.CommentDelete(ctx, req); err != nil {
|
if err = h.store.CommentDelete(ctx, req); err != nil {
|
||||||
logger.Error(ctx, err)
|
|
||||||
if errors.Is(err, sql.ErrNoRows) {
|
if errors.Is(err, sql.ErrNoRows) {
|
||||||
httpsrv.SetRspCode(ctx, http.StatusNotFound)
|
httpsrv.SetRspCode(ctx, http.StatusNotFound)
|
||||||
return httpsrv.SetError(NewNotFoundError(err))
|
return httpsrv.SetError(NewNotFoundError(err))
|
||||||
}
|
}
|
||||||
|
logger.Error(ctx, "comment delete error", err)
|
||||||
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
|
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
|
||||||
return httpsrv.SetError(NewInternalError(err))
|
return httpsrv.SetError(NewInternalError(err))
|
||||||
}
|
}
|
||||||
|
@ -15,14 +15,14 @@ func (h *Handler) CommentList(ctx context.Context, req *pb.CommentListReq, rsp *
|
|||||||
|
|
||||||
err := req.Validate()
|
err := req.Validate()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(ctx, err)
|
logger.Error(ctx, "validate error", err)
|
||||||
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
|
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
|
||||||
return httpsrv.SetError(NewValidationError(err))
|
return httpsrv.SetError(NewValidationError(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
comments, err := h.store.CommentList(ctx, req)
|
comments, err := h.store.CommentList(ctx, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(ctx, err)
|
logger.Error(ctx, "comment list error", err)
|
||||||
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
|
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
|
||||||
return httpsrv.SetError(NewInternalError(err))
|
return httpsrv.SetError(NewInternalError(err))
|
||||||
}
|
}
|
||||||
|
@ -15,14 +15,14 @@ func (h *Handler) ModuleList(ctx context.Context, req *pb.ModuleListReq, rsp *pb
|
|||||||
|
|
||||||
err := req.Validate()
|
err := req.Validate()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(ctx, err)
|
logger.Error(ctx, "validate error", err)
|
||||||
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
|
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
|
||||||
return httpsrv.SetError(NewValidationError(err))
|
return httpsrv.SetError(NewValidationError(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
modules, err := h.store.ModuleList(ctx, req)
|
modules, err := h.store.ModuleList(ctx, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(ctx, err)
|
logger.Error(ctx, "module list error", err)
|
||||||
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
|
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
|
||||||
return httpsrv.SetError(NewInternalError(err))
|
return httpsrv.SetError(NewInternalError(err))
|
||||||
}
|
}
|
||||||
|
@ -14,14 +14,14 @@ func (h *Handler) PackageCreate(ctx context.Context, req *pb.PackageCreateReq, r
|
|||||||
logger.Debug(ctx, "PackagesCreate handler start")
|
logger.Debug(ctx, "PackagesCreate handler start")
|
||||||
|
|
||||||
if err := req.Validate(); err != nil {
|
if err := req.Validate(); err != nil {
|
||||||
logger.Error(ctx, err)
|
logger.Error(ctx, "validate error", err)
|
||||||
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
|
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
|
||||||
return httpsrv.SetError(NewValidationError(err))
|
return httpsrv.SetError(NewValidationError(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
pkg, err := h.store.PackageCreate(ctx, req)
|
pkg, err := h.store.PackageCreate(ctx, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(ctx, err)
|
logger.Error(ctx, "package create error", err)
|
||||||
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
|
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
|
||||||
return httpsrv.SetError(NewValidationError(err))
|
return httpsrv.SetError(NewValidationError(err))
|
||||||
}
|
}
|
||||||
|
@ -13,13 +13,13 @@ func (h *Handler) PackageDelete(ctx context.Context, req *pb.PackageDeleteReq, r
|
|||||||
logger.Debug(ctx, "Start UpdatePackage")
|
logger.Debug(ctx, "Start UpdatePackage")
|
||||||
|
|
||||||
if err := req.Validate(); err != nil {
|
if err := req.Validate(); err != nil {
|
||||||
logger.Error(ctx, err)
|
logger.Error(ctx, "validate error", err)
|
||||||
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
|
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
|
||||||
return httpsrv.SetError(NewValidationError(err))
|
return httpsrv.SetError(NewValidationError(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := h.store.PackageDelete(ctx, req); err != nil {
|
if err := h.store.PackageDelete(ctx, req); err != nil {
|
||||||
logger.Error(ctx, err)
|
logger.Error(ctx, "package delete error", err)
|
||||||
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
|
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
|
||||||
return httpsrv.SetError(NewInternalError(err))
|
return httpsrv.SetError(NewInternalError(err))
|
||||||
}
|
}
|
||||||
|
@ -14,14 +14,14 @@ func (h *Handler) PackageLookup(ctx context.Context, req *pb.PackageLookupReq, r
|
|||||||
logger.Debug(ctx, "Start PackagesLookup")
|
logger.Debug(ctx, "Start PackagesLookup")
|
||||||
|
|
||||||
if err := req.Validate(); err != nil {
|
if err := req.Validate(); err != nil {
|
||||||
logger.Error(ctx, err)
|
logger.Error(ctx, "validate error", err)
|
||||||
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
|
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
|
||||||
return httpsrv.SetError(NewValidationError(err))
|
return httpsrv.SetError(NewValidationError(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
pkg, err := h.store.PackageLookup(ctx, req)
|
pkg, err := h.store.PackageLookup(ctx, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(ctx, err)
|
logger.Error(ctx, "package lookup", err)
|
||||||
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
|
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
|
||||||
return httpsrv.SetError(NewInternalError(err))
|
return httpsrv.SetError(NewInternalError(err))
|
||||||
}
|
}
|
||||||
|
@ -14,14 +14,14 @@ func (h *Handler) PackageUpdate(ctx context.Context, req *pb.PackageUpdateReq, r
|
|||||||
logger.Debug(ctx, "Start UpdatePackage")
|
logger.Debug(ctx, "Start UpdatePackage")
|
||||||
|
|
||||||
if err := req.Validate(); err != nil {
|
if err := req.Validate(); err != nil {
|
||||||
logger.Error(ctx, err)
|
logger.Error(ctx, "validate error", err)
|
||||||
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
|
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
|
||||||
return httpsrv.SetError(NewValidationError(err))
|
return httpsrv.SetError(NewValidationError(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
pkg, err := h.store.PackageUpdate(ctx, req)
|
pkg, err := h.store.PackageUpdate(ctx, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(ctx, err)
|
logger.Error(ctx, "package update error", err)
|
||||||
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
|
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
|
||||||
return httpsrv.SetError(NewInternalError(err))
|
return httpsrv.SetError(NewInternalError(err))
|
||||||
}
|
}
|
||||||
|
@ -25,9 +25,7 @@ import (
|
|||||||
"go.unistack.org/micro/v4/logger"
|
"go.unistack.org/micro/v4/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var ErrPRNotExist = errors.New("pull request does not exist")
|
||||||
ErrPRNotExist = errors.New("pull request does not exist")
|
|
||||||
)
|
|
||||||
|
|
||||||
type Gitea struct {
|
type Gitea struct {
|
||||||
URL string
|
URL string
|
||||||
|
@ -125,7 +125,7 @@ func parseModFile(ctx context.Context, store storage.Storage, pkg *models.Packag
|
|||||||
err = tree.Files().ForEach(func(file *object.File) error {
|
err = tree.Files().ForEach(func(file *object.File) error {
|
||||||
if file == nil {
|
if file == nil {
|
||||||
err = errors.New("file pointer is nil")
|
err = errors.New("file pointer is nil")
|
||||||
logger.Error(ctx, err)
|
logger.Error(ctx, "file tree error", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user