-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Michael Freeman
committed
Oct 5, 2024
0 parents
commit 4695a86
Showing
23 changed files
with
1,668 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
--- | ||
version: 2 | ||
updates: | ||
- package-ecosystem: "gomod" | ||
open-pull-requests-limit: 10 # avoid spam, if no one reacts | ||
directory: "/" | ||
schedule: | ||
interval: "weekly" | ||
|
||
- package-ecosystem: "github-actions" | ||
open-pull-requests-limit: 10 # avoid spam, if no one reacts | ||
directory: "/" | ||
schedule: | ||
# Check for updates to GitHub Actions every week | ||
interval: "weekly" | ||
groups: | ||
actions: | ||
update-types: | ||
- "minor" | ||
- "patch" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
name: Go test coverage check | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions/setup-go@v3 | ||
|
||
- name: generate test coverage | ||
run: go test ./... -coverprofile=./cover.out -covermode=atomic -coverpkg=./... | ||
|
||
- name: check test coverage | ||
uses: vladopajic/go-test-coverage@v2 | ||
with: | ||
# Configure action using config file (option 1) | ||
config: ./.testcoverage.yml | ||
|
||
# Configure action by specifying input parameters individually (option 2). | ||
# If you are using config file (option 1) you shouldn't use these parameters, however | ||
# specifing these action parameters will override appropriate config values. | ||
profile: cover.out | ||
local-prefix: github.com/carverauto/eventrunner | ||
threshold-file: 80 | ||
threshold-package: 80 | ||
threshold-total: 95 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
name: golangci-lint | ||
on: | ||
push: | ||
branches: | ||
- main | ||
- master | ||
pull_request: | ||
|
||
permissions: | ||
contents: read | ||
# Optional: allow read access to pull request. Use with `only-new-issues` option. | ||
# pull-requests: read | ||
|
||
jobs: | ||
golangci: | ||
name: lint | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-go@v5 | ||
with: | ||
go-version: stable | ||
- name: golangci-lint | ||
uses: golangci/golangci-lint-action@v6 | ||
with: | ||
version: v1.60 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# Binaries for programs and plugins | ||
*.exe | ||
*.exe~ | ||
*.dll | ||
*.so | ||
*.dylib | ||
|
||
# Test binary, built with `go test -c` | ||
*.test | ||
|
||
|
||
# Output of the go coverage tool, specifically when used with LiteIDE | ||
*.out | ||
coverage.txt | ||
|
||
# Dependency directories (remove the comment below to include it) | ||
vendor/ | ||
|
||
.idea | ||
*.impl | ||
|
||
# IDE Cache | ||
.vscode | ||
.DS_Store |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,162 @@ | ||
--- | ||
linters-settings: | ||
dupl: | ||
threshold: 100 | ||
exhaustive: | ||
default-signifies-exhaustive: false | ||
funlen: | ||
lines: 100 | ||
statements: 50 | ||
gci: | ||
sections: | ||
- standard | ||
- default | ||
- localmodule | ||
goconst: | ||
min-len: 2 | ||
min-occurrences: 2 | ||
gocritic: | ||
enabled-tags: | ||
- diagnostic | ||
- experimental | ||
- opinionated | ||
- performance | ||
- style | ||
disabled-checks: | ||
- dupImport # https://github.com/go-critic/go-critic/issues/845 | ||
- ifElseChain | ||
- octalLiteral | ||
- whyNoLint | ||
- wrapperFunc | ||
gocyclo: | ||
min-complexity: 10 | ||
goimports: | ||
local-prefixes: github.com/golangci/golangci-lint | ||
golint: | ||
min-confidence: 0 | ||
mnd: | ||
checks: | ||
- argument | ||
- case | ||
- condition | ||
- return | ||
govet: | ||
enable: | ||
- shadow | ||
settings: | ||
printf: | ||
funcs: | ||
- (gofr.dev/pkg/gofr/Logger).Logf | ||
- (gofr.dev/pkg/gofr/Logger).Errorf | ||
lll: | ||
line-length: 140 | ||
maligned: | ||
suggest-new: true | ||
misspell: | ||
locale: US | ||
nolintlint: | ||
allow-unused: false # report any unused nolint directives | ||
require-explanation: true # require an explanation for nolint directives | ||
require-specific: true # require nolint directives to be specific about which linter is being skipped | ||
revive: | ||
rules: | ||
# default revive rules, they have to be present otherwise they are disabled | ||
- name: blank-imports | ||
- name: context-as-argument | ||
- name: context-keys-type | ||
- name: dot-imports | ||
- name: empty-block | ||
- name: error-naming | ||
- name: error-return | ||
- name: error-strings | ||
- name: errorf | ||
- name: increment-decrement | ||
- name: indent-error-flow | ||
- name: range | ||
- name: receiver-naming | ||
- name: redefines-builtin-id | ||
- name: superfluous-else | ||
- name: time-naming | ||
- name: unexported-return | ||
- name: unreachable-code | ||
- name: unused-parameter | ||
- name: var-declaration | ||
- name: var-naming | ||
# additional revive rules | ||
- name: bare-return | ||
- name: bool-literal-in-expr | ||
- name: comment-spacings | ||
- name: early-return | ||
- name: defer | ||
- name: deep-exit | ||
- name: unused-receiver | ||
|
||
linters: | ||
# please, do not use `enable-all`: it's deprecated and will be removed soon. | ||
# inverted configuration with `enable-all` and `disable` is not scalable during updates of golangci-lint | ||
disable-all: true | ||
enable: | ||
- asciicheck | ||
- bodyclose | ||
- dogsled | ||
- dupl | ||
- err113 | ||
- errcheck | ||
- errorlint | ||
- exhaustive | ||
- copyloopvar | ||
- funlen | ||
- gochecknoglobals | ||
- gochecknoinits | ||
- gocognit | ||
- goconst | ||
- gocritic | ||
- gocyclo | ||
- godot | ||
- gofmt | ||
- goimports | ||
- goprintffuncname | ||
- gosec | ||
- gosimple | ||
- govet | ||
- ineffassign | ||
- lll | ||
- mirror | ||
- misspell | ||
- mnd | ||
- nakedret | ||
- nestif | ||
- noctx | ||
- nolintlint | ||
- prealloc | ||
- revive | ||
- rowserrcheck | ||
- staticcheck | ||
- stylecheck | ||
- testifylint | ||
- thelper | ||
- unconvert | ||
- unparam | ||
- unused | ||
- usestdlibvars | ||
- whitespace | ||
- wsl | ||
|
||
# don't enable: | ||
# - godox # Disabling because we need TODO lines at this stage of project. | ||
# - testpackage # We also need to do unit test for unexported functions. And adding _internal in all files is cumbersome. | ||
|
||
|
||
service: | ||
golangci-lint-version: 1.59.x | ||
|
||
issues: | ||
# exclude-use-default: false | ||
# exclude-use-default: false # By default, golangci-lint does not enforce comments on exported types. We want it. | ||
# Excluding configuration per-path, per-linter, per-text and per-source | ||
exclude-rules: | ||
- path: _test\.go | ||
linters: | ||
- gomnd | ||
- dupl | ||
- goconst |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
--- | ||
ls: | ||
.go: snake_case | ||
.pb.go: snake_case |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# (mandatory) | ||
# Path to coverprofile file (output of `go test -coverprofile` command). | ||
# | ||
# For cases where there are many coverage profiles, such as when running | ||
# unit tests and integration tests separately, you can combine all those | ||
# profiles into one. In this case, the profile should have a comma-separated list | ||
# of profile files, e.g., 'cover_unit.out,cover_integration.out'. | ||
profile: cover.out | ||
|
||
# (optional; but recommended to set) | ||
# When specified reported file paths will not contain local prefix in the output | ||
local-prefix: "github.com/carverauto/eventrunner" | ||
|
||
# Holds coverage thresholds percentages, values should be in range [0-100] | ||
threshold: | ||
# (optional; default 0) | ||
# The minimum coverage that each file should have | ||
file: 70 | ||
|
||
# (optional; default 0) | ||
# The minimum coverage that each package should have | ||
package: 80 | ||
|
||
# (optional; default 0) | ||
# The minimum total coverage project should have | ||
total: 95 | ||
|
||
# Holds regexp rules which will override thresholds for matched files or packages | ||
# using their paths. | ||
# | ||
# First rule from this list that matches file or package is going to apply | ||
# new threshold to it. If project has multiple rules that match same path, | ||
# override rules should be listed in order from specific to more general rules. | ||
override: | ||
# Increase coverage threshold to 100% for `foo` package | ||
# (default is 80, as configured above in this example) | ||
- threshold: 100 | ||
path: ^pkg/lib/foo$ | ||
|
||
# Holds regexp rules which will exclude matched files or packages | ||
# from coverage statistics | ||
exclude: | ||
# Exclude files or packages matching their paths | ||
paths: | ||
- \.pb\.go$ # excludes all protobuf generated files | ||
- ^pkg/bar # exclude package `pkg/bar` | ||
|
||
# NOTES: | ||
# - symbol `/` in all path regexps will be replaced by current OS file path separator | ||
# to properly work on Windows |
Oops, something went wrong.