Skip to content

Commit

Permalink
Merge pull request #3 from MikeYast/fix-git-workflow
Browse files Browse the repository at this point in the history
- Fix linter
- Add trufflehog check
  • Loading branch information
MikeYast authored Aug 9, 2024
2 parents f44309f + 660c09e commit df0c966
Show file tree
Hide file tree
Showing 8 changed files with 123 additions and 61 deletions.
49 changes: 0 additions & 49 deletions .github/workflows/ci.yml

This file was deleted.

32 changes: 32 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Lint
on:
push:
branches:
- master
pull_request:
branches:
- master
permissions:
contents: read
jobs:
lint:
strategy:
matrix:
go: [ '1.20' ]
fail-fast: true
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3

- name: Setup Go ${{ matrix.go }}
uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go }}
cache: false

- name: Run GolangCI-Lint
uses: golangci/golangci-lint-action@v3
with:
version: v1.56.1
args: --timeout=5m
32 changes: 32 additions & 0 deletions .github/workflows/sec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Security Scan

on:
push:
branches:
- master
pull_request:
branches:
- master

permissions:
contents: read
id-token: write
issues: write
pull-requests: write

jobs:
TruffleHog:
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Secret Scanning
uses: trufflesecurity/trufflehog@main
with:
extra_args: --only-verified
47 changes: 47 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Test

on:
push:
branches:
- master
pull_request:
branches:
- master

permissions:
contents: read

jobs:
test_and_lint:
name: Test, Lint, and Coverage
strategy:
matrix:
go: [ '1.20' ]
os: [ ubuntu-latest, macos-latest, windows-latest ]
fail-fast: true
runs-on: ${{ matrix.os }}

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Setup Go ${{ matrix.go }}
uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go }}
cache: false

- name: Install dependencies
run: go mod download

- name: Run tests with coverage
run: go test -race -cover -coverprofile="coverage.out" -covermode=atomic -v ./...

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: ./coverage.out

- name: Calculate coverage
run: go tool cover -func=coverage.out | grep total | awk '{print substr($3, 1, length($3)-1)}'
id: coverage
2 changes: 1 addition & 1 deletion httpclient/example_rate_limiting_round_tripper_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func ExampleNewRateLimitingRoundTripper() {
prev = now
}
delta := time.Since(start) - time.Second*2
if delta > time.Millisecond*10 {
if delta > time.Millisecond*20 {
fmt.Println("Total time is much greater than 2s")
} else {
fmt.Println("Total time is about 2s")
Expand Down
2 changes: 1 addition & 1 deletion httpserver/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ const (
cfgKeyServerLogRequestStart = "server.log.requestStart"
cfgKeyServerLogRequestHeaders = "server.log.requestHeaders"
cfgKeyServerLogExcludedEndpoints = "server.log.excludedEndpoints"
cfgKeyServerLogSecretQueryParams = "server.log.secretQueryParams" //nolint:gosec
cfgKeyServerLogSecretQueryParams = "server.log.secretQueryParams" // nolint:gosec // false positive
cfgKeyServerLogAddRequestInfo = "server.log.addRequestInfo"
cfgKeyServerLogSlowRequestThreshold = "server.log.slowRequestThreshold"
)
Expand Down
2 changes: 1 addition & 1 deletion httpserver/health_check_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ func TestHealthCheckHandlerContext_ServeHTTP(t *testing.T) {
timeout := 1 * time.Millisecond

h := NewHealthCheckHandlerContext(func(ctx context.Context) (HealthCheckResult, error) {
time.Sleep(timeout + 1*time.Millisecond)
time.Sleep(timeout + 5*time.Millisecond)
return HealthCheckResult{}, ctx.Err()
})
resp := httptest.NewRecorder()
Expand Down
18 changes: 9 additions & 9 deletions httpserver/middleware/rate_limit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,11 @@ func TestRateLimitHandler_ServeHTTP(t *testing.T) {
})

t.Run("leaky bucket, maxRate=10r/s, maxBurst=10, no key", func(t *testing.T) {
rate := Rate{10, time.Second}
rate := Rate{5, time.Second}
const (
maxBurst = 10
concurrentReqsNum = 20
serialReqsNum = 10
maxBurst = 5
concurrentReqsNum = 10
serialReqsNum = 5
)

emissionInterval := rate.Duration / time.Duration(rate.Count)
Expand Down Expand Up @@ -192,12 +192,12 @@ func TestRateLimitHandler_ServeHTTP(t *testing.T) {

t.Run("leaky bucket, maxRate=10r/s, maxBurst=10, by key", func(t *testing.T) {
const headerClientID = "X-Client-ID"
rate := Rate{10, time.Second}
rate := Rate{5, time.Second}
const (
maxBurst = 10
concurrentReqsNum = 20
serialReqsNum = 10
clientsNum = 5
maxBurst = 5
concurrentReqsNum = 10
serialReqsNum = 5
clientsNum = 3
)

emissionInterval := rate.Duration / time.Duration(rate.Count)
Expand Down

0 comments on commit df0c966

Please sign in to comment.