Skip to content

Commit 4d7990c

Browse files
committed
Merge branch 'develop' into feature/loading
2 parents 8fbdfa0 + 2076c67 commit 4d7990c

File tree

16 files changed

+368
-203
lines changed

16 files changed

+368
-203
lines changed

.github/workflows/release.yml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,6 @@ jobs:
1515
with:
1616
fetch-depth: 0 # Changelog を正しく動作させるために必要
1717

18-
- name: Install GoReleaser and mockgen
19-
run: |
20-
wget https://github.com/goreleaser/goreleaser/releases/latest/download/goreleaser_amd64 -O /tmp/goreleaser
21-
chmod +x /tmp/goreleaser
22-
sudo mv /tmp/goreleaser /usr/local/bin/goreleaser
23-
go get github.com/golang/mock/mockgen
24-
env:
25-
GO111MODULE: on
2618
# Go をセットアップ
2719
- uses: actions/setup-go@v3
2820
with:

Makefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
.PHONY: test
22

33
test:
4-
go generate ./...
54
go test -v ./internal/service

cmd/config.go

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,24 @@ import (
66

77
"github.com/charmbracelet/bubbles/textinput"
88
tea "github.com/charmbracelet/bubbletea"
9-
"github.com/cocoide/commitify/util"
9+
"github.com/cocoide/commitify/internal/entity"
1010
"github.com/fatih/color"
1111
"github.com/spf13/cobra"
1212
)
1313

1414
var (
15-
configKey = [...]string{"api-key", "language", "format"}
16-
configOption = [][]string{
15+
configKey = [...]string{"api-key", "language", "format", "ai-source"}
16+
configOption = [][]int{
1717
{},
18-
{"Japanese", "English"},
19-
{"Format 1", "Format 2"},
18+
{int(entity.EN), int(entity.JP)},
19+
{int(entity.NormalFormat), int(entity.EmojiFormat), int(entity.PrefixFormat)},
20+
{int(entity.WrapServer), int(entity.OpenAiAPI)},
21+
}
22+
configOptionLabel = [][]string{
23+
{},
24+
{"English", "Japanese"},
25+
{"Normal Format", "Emoji Format", "PrefixFormat"},
26+
{"Wrap Server", "OpenAI API"},
2027
}
2128
)
2229

@@ -147,7 +154,7 @@ func (cm configModel) View() string {
147154
b.WriteString(color.WhiteString("設定内容を選んでください:\n"))
148155
b.WriteString(color.WhiteString(" ↑↓の矢印キーで項目を移動、Enterで選択\n"))
149156

150-
for i, option := range configOption[cm.configKeyIndex] {
157+
for i, option := range configOptionLabel[cm.configKeyIndex] {
151158
if i == cm.configOptionIndex {
152159
b.WriteString(fmt.Sprintf(color.HiCyanString("➡️ %s\n"), option))
153160
} else {
@@ -175,7 +182,7 @@ func init() {
175182
}
176183

177184
func saveConfig(cm configModel) {
178-
currentConfig, err := util.ReadConfig()
185+
currentConfig, err := entity.ReadConfig()
179186
if err != nil {
180187
fmt.Println(err)
181188
}
@@ -187,9 +194,11 @@ func saveConfig(cm configModel) {
187194
currentConfig.UseLanguage = configOption[cm.configKeyIndex][cm.configOptionIndex]
188195
case 2:
189196
currentConfig.CommitFormat = configOption[cm.configKeyIndex][cm.configOptionIndex]
197+
case 3:
198+
currentConfig.AISource = configOption[cm.configKeyIndex][cm.configOptionIndex]
190199
}
191200

192-
err = util.WriteConfig(currentConfig)
201+
err = entity.WriteConfig(currentConfig)
193202
if err != nil {
194203
fmt.Println(err)
195204
}

cmd/suggest.go

Lines changed: 58 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
package cmd
22

33
import (
4-
"context"
54
"fmt"
5+
"log"
6+
"os"
67
"strings"
78

89
"github.com/charmbracelet/bubbles/spinner"
10+
"github.com/charmbracelet/bubbles/textinput"
911
tea "github.com/charmbracelet/bubbletea"
12+
"github.com/cocoide/commitify/internal/entity"
1013
"github.com/cocoide/commitify/internal/gateway"
11-
"github.com/cocoide/commitify/internal/service"
1214
"github.com/cocoide/commitify/util"
1315
"github.com/fatih/color"
1416
"github.com/spf13/cobra"
@@ -20,42 +22,48 @@ type model struct {
2022
errorMsg string
2123
isLoading bool
2224
animationIdx int
23-
messages []string
24-
spinner spinner.Model
25+
isEditing bool
26+
spinner spinner.Model
27+
textInput textinput.Model
2528
}
2629

27-
type generateMessages struct {
28-
messages []string
29-
errorMsg string
30-
}
30+
func (m *model) Init() tea.Cmd {
31+
conf, err := entity.ReadConfig()
32+
if err != nil {
33+
log.Fatal("設定情報の取得に失敗: ", err)
34+
}
3135

32-
func (m model) Init() tea.Cmd {
33-
return func() tea.Msg {
34-
ctx := context.Background()
35-
og := gateway.NewOpenAIGateway(ctx)
36-
ms := service.NewMessageService(og)
37-
stagingCode := util.ExecGetStagingCode()
38-
messages, err := ms.GenerateCommitMessage(stagingCode)
39-
if err != nil {
40-
return generateMessages{errorMsg: "メッセージの生成に失敗: " + err.Error()}
41-
}
42-
return generateMessages{messages: messages}
36+
var gi gateway.GatewayInterface
37+
switch conf.AISource {
38+
case int(entity.WrapServer):
39+
gi = gateway.NewGrpcServeGateway()
40+
default:
41+
gi = gateway.NewGrpcServeGateway()
4342
}
43+
44+
messages, err := gi.FetchCommitMessages()
45+
if err != nil {
46+
log.Fatal("コミットメッセージの生成に失敗: ", err)
47+
os.Exit(-1)
48+
}
49+
m.choices = messages
50+
m.isLoading = false
51+
return textinput.Blink
4452
}
4553

46-
func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
54+
func (m *model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
55+
var cmd tea.Cmd
56+
m.textInput, cmd = m.textInput.Update(msg)
4757
switch msg := msg.(type) {
48-
case generateMessages:
49-
if msg.errorMsg != "" {
50-
m.errorMsg = msg.errorMsg
51-
m.isLoading = false
52-
return m, nil
53-
}
54-
m.choices = msg.messages
55-
m.isLoading = false
56-
return m, nil
5758
case tea.KeyMsg:
5859
switch msg.Type {
60+
case tea.KeyTab:
61+
m.isEditing = true
62+
m.textInput.Focus()
63+
m.textInput.SetValue(m.choices[m.currentIdx])
64+
m.textInput.CharLimit = 100
65+
m.textInput.Width = 100
66+
return m, cmd
5967
case tea.KeyUp:
6068
if m.currentIdx > 0 {
6169
m.currentIdx--
@@ -87,7 +95,7 @@ func (m *model) resetSpinner() {
8795
m.spinner.Spinner = spinner.Globe
8896
}
8997

90-
func (m model) View() string {
98+
func (m *model) View() string {
9199
if m.errorMsg != "" {
92100
return color.RedString(m.errorMsg)
93101
}
@@ -99,6 +107,10 @@ func (m model) View() string {
99107
if m.errorMsg != "" {
100108
b.WriteString(color.RedString(m.errorMsg) + "\n\n")
101109
}
110+
if m.isEditing {
111+
return m.textInput.View()
112+
}
113+
102114
b.WriteString(color.WhiteString("🍕Please select an option:"))
103115
b.WriteString(color.WhiteString("\n Use arrow ↑↓ to navigate and press Enter to select.\n\n"))
104116

@@ -112,14 +124,28 @@ func (m model) View() string {
112124
return b.String()
113125
}
114126

127+
func initialModel() model {
128+
ti := textinput.New()
129+
ti.Focus()
130+
131+
return model{
132+
choices: []string{""},
133+
currentIdx: 0,
134+
errorMsg: "",
135+
isLoading: true,
136+
isEditing: false,
137+
textInput: ti,
138+
}
139+
}
140+
115141
var suggestCmd = &cobra.Command{
116142
Use: "suggest",
117143
Short: "Suggestion of commit message for staging repository",
118144
Aliases: []string{"s", "suggest"},
119145
Run: func(cmd *cobra.Command, args []string) {
120-
m := model{isLoading: true}
146+
m := initialModel()
121147
m.resetSpinner()
122-
p := tea.NewProgram(m)
148+
p := tea.NewProgram(&m)
123149
p.Run()
124150
},
125151
}

go.mod

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ require (
1111
github.com/sashabaranov/go-openai v1.15.1
1212
github.com/spf13/cobra v1.7.0
1313
github.com/spf13/viper v1.16.0
14-
google.golang.org/grpc v1.55.0
15-
google.golang.org/protobuf v1.30.0
14+
google.golang.org/grpc v1.58.0
15+
google.golang.org/protobuf v1.31.0
1616
)
1717

1818
require (
@@ -47,10 +47,10 @@ require (
4747
github.com/muesli/reflow v0.3.0 // indirect
4848
github.com/muesli/termenv v0.15.1 // indirect
4949
github.com/rivo/uniseg v0.2.0 // indirect
50-
golang.org/x/net v0.10.0 // indirect
51-
golang.org/x/sync v0.1.0 // indirect
52-
golang.org/x/sys v0.8.0 // indirect
53-
golang.org/x/term v0.8.0 // indirect
54-
golang.org/x/text v0.9.0 // indirect
55-
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect
50+
golang.org/x/net v0.15.0 // indirect
51+
golang.org/x/sync v0.3.0 // indirect
52+
golang.org/x/sys v0.12.0 // indirect
53+
golang.org/x/term v0.12.0 // indirect
54+
golang.org/x/text v0.13.0 // indirect
55+
google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect
5656
)

go.sum

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -299,8 +299,8 @@ golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v
299299
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
300300
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
301301
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
302-
golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
303-
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
302+
golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8=
303+
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
304304
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
305305
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
306306
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -320,8 +320,8 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ
320320
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
321321
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
322322
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
323-
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
324-
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
323+
golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
324+
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
325325
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
326326
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
327327
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -361,11 +361,11 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc
361361
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
362362
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
363363
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
364-
golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
365-
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
364+
golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
365+
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
366366
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
367-
golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols=
368-
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
367+
golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU=
368+
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
369369
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
370370
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
371371
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -374,8 +374,8 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
374374
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
375375
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
376376
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
377-
golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
378-
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
377+
golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
378+
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
379379
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
380380
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
381381
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -492,8 +492,8 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D
492492
google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
493493
google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
494494
google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
495-
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A=
496-
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU=
495+
google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4=
496+
google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M=
497497
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
498498
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
499499
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
@@ -510,8 +510,8 @@ google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM
510510
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
511511
google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
512512
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
513-
google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag=
514-
google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8=
513+
google.golang.org/grpc v1.58.0 h1:32JY8YpPMSR45K+c3o6b8VL73V+rR8k+DeMIr4vRH8o=
514+
google.golang.org/grpc v1.58.0/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0=
515515
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
516516
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
517517
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -524,8 +524,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj
524524
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
525525
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
526526
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
527-
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
528-
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
527+
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
528+
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
529529
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
530530
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
531531
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

0 commit comments

Comments
 (0)