diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3ff6661..a9db382 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,6 +8,7 @@ include: stages: - lint + # - test - clean - build - deploy @@ -26,12 +27,25 @@ lint: - golangci-lint version - golangci-lint run ./... +# test: +# image: golang:1.20.3-alpine +# stage: test +# coverage: /\(statements\)(?:\s+)?(\d+(?:\.\d+)?%)/ +# script: +# - CGO_ENABLED=0 go test ./... -coverprofile=coverage.out +# - go tool cover -html=coverage.out -o coverage.html +# - go tool cover -func coverage.out +# artifacts: +# expire_in: "3 days" +# paths: +# - coverage.html + clear-old-images: extends: .clean_template variables: STAGING_BRANCH: "main" PRODUCTION_BRANCH: "main" - image: + image: name: docker/compose:1.28.0 entrypoint: [""] before_script: @@ -55,7 +69,6 @@ build-app: --dockerfile $CI_PROJECT_DIR/$DOCKER_BUILD_PATH --use-new-run --snapshotMode=redo \ --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID - deploy-to-staging: extends: .deploy_template variables: diff --git a/.golangci.yaml b/.golangci.yaml index 0a07cec..64cd32f 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -24,7 +24,7 @@ linters: - errcheck - errchkjson - exportloopref - # - goconst Временно отключен, ругается на dal\postgres\user.go [159, 18] + - goconst - gocritic - godot - gofmt @@ -58,7 +58,7 @@ linters: linters-settings: errcheck: exclude-functions: - - (io.Closer).Close + - (io.Closer).Close govet: check-shadowing: true gci: @@ -116,7 +116,7 @@ linters-settings: - name: bool-literal-in-expr - name: constant-logical-expr gosec: - excludes: + excludes: - G304 # Potential file inclusion via variable - G307 # Deferring unsafe method "Close" on type "\*os.File" - G107 # Potential HTTP request made with variable url diff --git a/dal/mongos/template.go b/dal/mongos/template.go index f80d3ee..ae4f9dc 100644 --- a/dal/mongos/template.go +++ b/dal/mongos/template.go @@ -29,7 +29,7 @@ func (d *Template) Insert(ctx context.Context, record *model.Template) (string, record.IsDeleted = false if record.PenaID == "" { - err := errors.New("got empty user id") + err := errors.New("got empty pena_id") d.logger.Error("ErrorDeleteTemplate", zap.Error(err)) return "", err } diff --git a/gdisk/api.go b/gdisk/api.go index f592d92..7d02fae 100644 --- a/gdisk/api.go +++ b/gdisk/api.go @@ -19,10 +19,11 @@ import ( ) const ( - DefaultDir = "TemplateGenerator" - TemplateDir = "templates" - SaveDir = "saved" - MimeTypeDocx = "application/vnd.openxmlformats-officedocument.wordprocessingml.document" + DefaultDir = "TemplateGenerator" + TemplateDir = "templates" + SaveDir = "saved" + MimeTypeDocx = "application/vnd.openxmlformats-officedocument.wordprocessingml.document" + MimeTypeGoogle = "application/vnd.google-apps.document" ) type Client struct { @@ -275,7 +276,7 @@ func (c *Client) DownloadFile(filepath, fileID string) error { var resp *http.Response - if file.MimeType == "application/vnd.google-apps.document" { + if file.MimeType == MimeTypeGoogle { resp, err = c.Service.Files.Export(fileID, MimeTypeDocx). Fields("exportFormat", "docx"). Download() @@ -323,7 +324,7 @@ func (c *Client) DownloadFileBytes(fileID string) ([]byte, error) { var resp *http.Response - if file.MimeType == "application/vnd.google-apps.document" { + if file.MimeType == MimeTypeGoogle { resp, err = c.Service.Files.Export(fileID, MimeTypeDocx).Fields("exportFormat", "docx").Download() err = errors.Wrap(err, "DownloadFileBytes.Export") defer func() { diff --git a/yadisk/api.go b/yadisk/api.go index 9906f5a..4393531 100644 --- a/yadisk/api.go +++ b/yadisk/api.go @@ -24,6 +24,7 @@ const ( DefaultFolder = "disk:/templategen" DefaultTemplateFolder = DefaultFolder + "/templates" DefaultSaveFolder = DefaultFolder + "/saved" + TokenTypeOAuth = "OAuth" ) type Client struct { @@ -79,7 +80,7 @@ func (ca *ClientApp) NewClient(ctx context.Context, token *oauth2.Token, code st } // Этот костыль нужен, т.к. Яндекс принимает токены только типа OAuth, хоть и отправляет типа bearer - token.TokenType = "OAuth" + token.TokenType = TokenTypeOAuth return &Client{ App: ca, HTTPClient: ca.Config.Client(ctx, token), @@ -94,7 +95,7 @@ func (ca *ClientApp) RefreshToken(ctx context.Context, oldToken *oauth2.Token) ( } // Этот костыль нужен, т.к. Яндекс принимает токены только типа OAuth, хоть и отправляет типа bearer - token.TokenType = "OAuth" + token.TokenType = TokenTypeOAuth return token, nil }