Skip to content

Commit 0b484ee

Browse files
committed
✨ create resty sample
0 parents  commit 0b484ee

File tree

17 files changed

+795
-0
lines changed

17 files changed

+795
-0
lines changed

.github/workflow/go.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Go
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
branches:
9+
- master
10+
jobs:
11+
build_and_test:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Setup go-task
15+
uses: pnorton5432/setup-task@v1
16+
with:
17+
task-version: 3.29.1
18+
- name: Checkout
19+
uses: actions/checkout@v4
20+
- name: Setup Go
21+
uses: actions/setup-go@v5
22+
with:
23+
go-version: 'stable'
24+
check-latest: true
25+
- name: Task Build
26+
run: task build
27+
- name: Task Build for mage
28+
run: task build-gg
29+
- name: Test with gg
30+
run: ./gg test

.gitignore

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# If you prefer the allow list template instead of the deny list, see community template:
2+
# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore
3+
#
4+
# Binaries for programs and plugins
5+
*.exe
6+
*.exe~
7+
*.dll
8+
*.so
9+
*.dylib
10+
11+
# Test binary, built with `go test -c`
12+
*.test
13+
14+
# Output of the go coverage tool, specifically when used with LiteIDE
15+
*.out
16+
17+
# Dependency directories (remove the comment below to include it)
18+
# vendor/
19+
20+
# Go workspace file
21+
go.work
22+
go.work.sum
23+
24+
# env file
25+
.env
26+
bin
27+
mage
28+
gg

README.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# golang-sample-with-resty
2+
3+
This repository is demo for how to use resty to send http request with easily way
4+
5+
## logic
6+
7+
```golang
8+
package main
9+
10+
import (
11+
"fmt"
12+
"log/slog"
13+
"os"
14+
"time"
15+
16+
"github.com/leetcode-golang-classroom/golang-sample-with-resty/internal/config"
17+
"github.com/leetcode-golang-classroom/golang-sample-with-resty/internal/service/task"
18+
"resty.dev/v3"
19+
)
20+
21+
func main() {
22+
// structure logger
23+
logger := slog.New(slog.NewJSONHandler(
24+
os.Stdout, &slog.HandlerOptions{
25+
AddSource: true,
26+
},
27+
))
28+
client := resty.New().SetBaseURL(config.AppConfig.ServerURI)
29+
// 1. Create a new task (POST)
30+
newTask := task.Task{Title: "Learn Resty", Done: false}
31+
var createdTask task.Task
32+
_, err := client.R().SetTimeout(2*time.Second).
33+
SetHeader("Content-Type", "application/json").
34+
SetBody(newTask).
35+
SetResult(&createdTask).
36+
Post("/tasks")
37+
if err != nil {
38+
logger.Error("failed to request post", slog.Any("err", err))
39+
os.Exit(1)
40+
}
41+
logger.Info("Created Task", slog.Any("task", createdTask))
42+
// 2. Get all tasks (GET)
43+
var tasks []task.Task
44+
_, err = client.R().
45+
SetResult(&tasks).
46+
Get("/tasks")
47+
if err != nil {
48+
logger.Error("Failed to get tasks", slog.Any("err", err))
49+
os.Exit(2)
50+
}
51+
logger.Info("All tasks", slog.Any("tasks", tasks))
52+
// 3. Update a task (PUT)
53+
updatedTask := task.Task{Title: "Master Resty", Done: true}
54+
_, err = client.R().
55+
SetHeader("Content-Type", "application/json").
56+
SetBody(updatedTask).
57+
SetResult(&updatedTask).
58+
Put(fmt.Sprintf("/tasks/%d", createdTask.ID))
59+
if err != nil {
60+
logger.Error("Failed to update task", slog.Any("err", err))
61+
os.Exit(2)
62+
}
63+
logger.Info("updated task", slog.Any("task", updatedTask))
64+
// 4. Delete a task (DELETE)
65+
_, err = client.R().
66+
Delete(fmt.Sprintf("/tasks/%d", createdTask.ID))
67+
68+
if err != nil {
69+
logger.Error("Failed to delete tasks", slog.Any("err", err))
70+
os.Exit(4)
71+
}
72+
logger.Info("Deleted Task", slog.Int("id", createdTask.ID))
73+
}
74+
75+
```

Taskfile.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
version: '3'
2+
3+
dotenv: ['.env']
4+
5+
tasks:
6+
default:
7+
cmds:
8+
- echo "PORT=$PORT"
9+
silent: true
10+
11+
# build:
12+
# cmds:
13+
# - CGO_ENABLED=0 GOOS=linux go build -o bin/main cmd/main.go
14+
# silent: true
15+
# run:
16+
# cmds:
17+
# - ./bin/main
18+
# deps:
19+
# - build
20+
# silent: true
21+
22+
build-mage:
23+
cmds:
24+
- CGO_ENABLED=0 GOOS=linux go build -o ./mage mage-tools/mage.go
25+
silent: true
26+
27+
build-gg:
28+
cmds:
29+
- ./mage -d mage-tools -compile ../gg
30+
deps:
31+
- build-mage
32+
silent: true
33+
34+
coverage:
35+
cmds:
36+
- go test -v -cover ./...
37+
silent: true
38+
test:
39+
cmds:
40+
- go test -v ./...
41+
silent: true
42+

cmd/client/main.go

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"log/slog"
6+
"os"
7+
"time"
8+
9+
"github.com/leetcode-golang-classroom/golang-sample-with-resty/internal/config"
10+
"github.com/leetcode-golang-classroom/golang-sample-with-resty/internal/service/task"
11+
"resty.dev/v3"
12+
)
13+
14+
func main() {
15+
logger := slog.New(slog.NewJSONHandler(
16+
os.Stdout, &slog.HandlerOptions{
17+
AddSource: true,
18+
},
19+
))
20+
client := resty.New().SetBaseURL(config.AppConfig.ServerURI)
21+
// 1. Create a new task (POST)
22+
newTask := task.Task{Title: "Learn Resty", Done: false}
23+
var createdTask task.Task
24+
_, err := client.R().SetTimeout(2*time.Second).
25+
SetHeader("Content-Type", "application/json").
26+
SetBody(newTask).
27+
SetResult(&createdTask).
28+
Post("/tasks")
29+
if err != nil {
30+
logger.Error("failed to request post", slog.Any("err", err))
31+
os.Exit(1)
32+
}
33+
logger.Info("Created Task", slog.Any("task", createdTask))
34+
// 2. Get all tasks (GET)
35+
var tasks []task.Task
36+
_, err = client.R().
37+
SetResult(&tasks).
38+
Get("/tasks")
39+
if err != nil {
40+
logger.Error("Failed to get tasks", slog.Any("err", err))
41+
os.Exit(2)
42+
}
43+
logger.Info("All tasks", slog.Any("tasks", tasks))
44+
// 3. Update a task (PUT)
45+
updatedTask := task.Task{Title: "Master Resty", Done: true}
46+
_, err = client.R().
47+
SetHeader("Content-Type", "application/json").
48+
SetBody(updatedTask).
49+
SetResult(&updatedTask).
50+
Put(fmt.Sprintf("/tasks/%d", createdTask.ID))
51+
if err != nil {
52+
logger.Error("Failed to update task", slog.Any("err", err))
53+
os.Exit(2)
54+
}
55+
logger.Info("updated task", slog.Any("task", updatedTask))
56+
// 4. Delete a task (DELETE)
57+
_, err = client.R().
58+
Delete(fmt.Sprintf("/tasks/%d", createdTask.ID))
59+
60+
if err != nil {
61+
logger.Error("Failed to delete tasks", slog.Any("err", err))
62+
os.Exit(4)
63+
}
64+
logger.Info("Deleted Task", slog.Int("id", createdTask.ID))
65+
}

cmd/server/main.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package main
2+
3+
import (
4+
"context"
5+
"log/slog"
6+
"os"
7+
"os/signal"
8+
"syscall"
9+
10+
"github.com/leetcode-golang-classroom/golang-sample-with-resty/internal/application"
11+
"github.com/leetcode-golang-classroom/golang-sample-with-resty/internal/config"
12+
mlog "github.com/leetcode-golang-classroom/golang-sample-with-resty/internal/logger"
13+
)
14+
15+
func main() {
16+
// 建立 logger
17+
logger := slog.New(slog.NewJSONHandler(
18+
os.Stdout, &slog.HandlerOptions{
19+
AddSource: true,
20+
},
21+
))
22+
rootContext := context.WithValue(context.Background(), mlog.CtxKey{}, logger)
23+
// 建立 application instance
24+
app := application.New(rootContext, config.AppConfig)
25+
// 設定中斷訊號監聽
26+
ctx, cancel := signal.NotifyContext(rootContext, os.Interrupt,
27+
syscall.SIGTERM, syscall.SIGINT)
28+
29+
defer cancel()
30+
err := app.Start(ctx)
31+
if err != nil {
32+
logger.Error("failed to start app", slog.Any("err", err))
33+
}
34+
}

go.mod

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
module github.com/leetcode-golang-classroom/golang-sample-with-resty
2+
3+
go 1.22.4
4+
5+
require (
6+
github.com/magefile/mage v1.15.0
7+
github.com/spf13/viper v1.19.0
8+
)
9+
10+
require golang.org/x/net v0.33.0 // indirect
11+
12+
require (
13+
github.com/fsnotify/fsnotify v1.7.0 // indirect
14+
github.com/hashicorp/hcl v1.0.0 // indirect
15+
github.com/magiconair/properties v1.8.7 // indirect
16+
github.com/mitchellh/mapstructure v1.5.0 // indirect
17+
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
18+
github.com/sagikazarmark/locafero v0.4.0 // indirect
19+
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
20+
github.com/sourcegraph/conc v0.3.0 // indirect
21+
github.com/spf13/afero v1.11.0 // indirect
22+
github.com/spf13/cast v1.6.0 // indirect
23+
github.com/spf13/pflag v1.0.5 // indirect
24+
github.com/subosito/gotenv v1.6.0 // indirect
25+
go.uber.org/atomic v1.9.0 // indirect
26+
go.uber.org/multierr v1.9.0 // indirect
27+
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
28+
golang.org/x/sys v0.28.0 // indirect
29+
golang.org/x/text v0.21.0 // indirect
30+
gopkg.in/ini.v1 v1.67.0 // indirect
31+
gopkg.in/yaml.v3 v3.0.1 // indirect
32+
resty.dev/v3 v3.0.0-beta.2
33+
)

go.sum

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
2+
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
4+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
5+
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
6+
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
7+
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
8+
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
9+
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
10+
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
11+
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
12+
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
13+
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
14+
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
15+
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
16+
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
17+
github.com/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg=
18+
github.com/magefile/mage v1.15.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
19+
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
20+
github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
21+
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
22+
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
23+
github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
24+
github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
25+
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
26+
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
27+
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
28+
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
29+
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
30+
github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=
31+
github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4=
32+
github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
33+
github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
34+
github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo=
35+
github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0=
36+
github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
37+
github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY=
38+
github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0=
39+
github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
40+
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
41+
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
42+
github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI=
43+
github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg=
44+
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
45+
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
46+
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
47+
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
48+
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
49+
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
50+
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
51+
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
52+
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
53+
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
54+
github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
55+
github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
56+
go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
57+
go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
58+
go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI=
59+
go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ=
60+
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g=
61+
golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k=
62+
golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
63+
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
64+
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
65+
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
66+
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
67+
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
68+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
69+
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
70+
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
71+
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
72+
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
73+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
74+
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
75+
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
76+
resty.dev/v3 v3.0.0-beta.2 h1:xu4mGAdbCLuc3kbk7eddWfWm4JfhwDtdapwss5nCjnQ=
77+
resty.dev/v3 v3.0.0-beta.2/go.mod h1:OgkqiPvTDtOuV4MGZuUDhwOpkY8enjOsjjMzeOHefy4=

0 commit comments

Comments
 (0)