Skip to content

Commit 1a06084

Browse files
Merge pull request #8 from karthikbhandary2/karthik
feat: add automation workflow
2 parents c38d573 + 2001a96 commit 1a06084

File tree

6 files changed

+57
-9
lines changed

6 files changed

+57
-9
lines changed

.github/workflows/audit.yaml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Audit
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
audit:
11+
runs-on: ubuntu-20.04
12+
steps:
13+
- uses: actions/checkout@v2
14+
- name: Set up Go
15+
uses: actions/setup-go@v2
16+
with:
17+
go-version: '1.23.4'
18+
19+
- name: Verify Dependecies
20+
run: go mod verify
21+
22+
- name: Build
23+
run: go build -v ./...
24+
25+
- name: Run go vet
26+
run: go vet ./...
27+
28+
- name: Install staticcheck
29+
run: go install honnef.co/go/tools/cmd/staticcheck@latest
30+
31+
- name: Run staticcheck
32+
run: staticcheck ./...
33+
34+
- name: Run Tests
35+
run: go test -race ./...

bin/build-errors.log

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

bin/main

8.74 KB
Binary file not shown.

cmd/api/api.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"errors"
5+
"expvar"
56
"fmt"
67
"net/http"
78
"os"
@@ -15,6 +16,7 @@ import (
1516
"github.com/karthikbhandary2/Social/docs"
1617
_ "github.com/karthikbhandary2/Social/docs"
1718
"github.com/karthikbhandary2/Social/internal/auth"
19+
"github.com/karthikbhandary2/Social/internal/env"
1820
"github.com/karthikbhandary2/Social/internal/mailer"
1921
"github.com/karthikbhandary2/Social/internal/ratelimiter"
2022
"github.com/karthikbhandary2/Social/internal/store"
@@ -89,24 +91,24 @@ type sendGridConfig struct {
8991
func (app *application) mount() http.Handler {
9092
r := chi.NewRouter()
9193

94+
r.Use(middleware.Recoverer)
95+
r.Use(middleware.Logger)
96+
r.Use(middleware.RealIP)
97+
r.Use(middleware.RequestID)
9298
r.Use(cors.Handler(cors.Options{
93-
AllowedOrigins: []string{"https://*", "http://*"},
99+
AllowedOrigins: []string{env.GetString("CORS_ALLOWED_ORIGIN", "http://localhost:5173")},
94100
AllowedMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
95101
AllowedHeaders: []string{"Accept", "Authorization", "Content-Type", "X-CSRF-Token"},
96102
ExposedHeaders: []string{"Link"},
97103
AllowCredentials: false,
98104
MaxAge: 300,
99105
}))
100-
101-
r.Use(middleware.Recoverer)
102-
r.Use(middleware.Logger)
103-
r.Use(middleware.RealIP)
104-
r.Use(middleware.RequestID)
105106
r.Use(app.RateLimiterMiddleware)
106107

107108
r.Route("/v1", func(r chi.Router) {
108109
r.Get("/health", app.healthCheckHandler)
109-
110+
r.With(app.BasicAuthMiddleware()).Get("/debug/vars", expvar.Handler().ServeHTTP)
111+
110112
docsURL := fmt.Sprintf("%s/swagger/doc.json", app.config.addr)
111113
r.Get("/swagger/*", httpSwagger.Handler(httpSwagger.URL(docsURL)))
112114

cmd/api/main.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package main
22

33
import (
4+
"expvar"
5+
"runtime"
46
"time"
57

68
"github.com/go-redis/redis/v8"
@@ -121,6 +123,15 @@ func main() {
121123
rateLimiter: rateLimiter,
122124
}
123125

126+
//metrics collected
127+
expvar.NewString("version").Set(version)
128+
expvar.Publish("database", expvar.Func(func() interface{} {
129+
return db.Stats()
130+
}))
131+
expvar.Publish("goroutines", expvar.Func(func() interface{} {
132+
return runtime.NumGoroutine()
133+
}))
134+
124135
mux := app.mount()
125136
logger.Fatal(app.run(mux))
126137
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ require (
1515
github.com/swaggo/swag v1.16.4
1616
go.uber.org/zap v1.27.0
1717
golang.org/x/crypto v0.36.0
18+
golang.org/x/net v0.38.0
1819
)
1920

2021
require (
@@ -34,7 +35,6 @@ require (
3435
github.com/sendgrid/rest v2.6.9+incompatible // indirect
3536
github.com/swaggo/files/v2 v2.0.2 // indirect
3637
go.uber.org/multierr v1.11.0 // indirect
37-
golang.org/x/net v0.38.0 // indirect
3838
golang.org/x/sys v0.31.0 // indirect
3939
golang.org/x/text v0.23.0 // indirect
4040
golang.org/x/tools v0.31.0 // indirect

0 commit comments

Comments
 (0)