Skip to content

Commit 827d99c

Browse files
authored
Merge pull request #64 from cocoide/feature/refactor-proposal
Feature/refactor proposal
2 parents d4e57e4 + adf9b2a commit 827d99c

17 files changed

+222
-269
lines changed

cmd/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ var (
1818
{},
1919
{int(entity.EN), int(entity.JP)},
2020
{int(entity.NormalFormat), int(entity.EmojiFormat), int(entity.PrefixFormat)},
21-
{int(entity.WrapServer), int(entity.OpenAiAPI)},
21+
{int(entity.Server), int(entity.Local)},
2222
}
2323
configOptionLabel = [][]string{
2424
{},

cmd/suggest.go

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

33
import (
44
"fmt"
5+
"github.com/cocoide/commitify/internal/entity"
6+
"github.com/cocoide/commitify/internal/gateway"
7+
"github.com/cocoide/commitify/internal/service"
8+
"github.com/cocoide/commitify/internal/usecase"
9+
"golang.org/x/net/context"
510
"log"
611
"os"
712
"strings"
@@ -12,8 +17,6 @@ import (
1217
"github.com/charmbracelet/lipgloss"
1318
"github.com/fatih/color"
1419
"github.com/spf13/cobra"
15-
16-
"github.com/cocoide/commitify/internal/service"
1720
)
1821

1922
var (
@@ -29,7 +32,7 @@ type suggestModel struct {
2932
isEditing bool
3033
spinner spinner.Model
3134
textInput textinput.Model
32-
scs *service.SuggestCmdService
35+
scs *usecase.SuggestCmdUsecase
3336
}
3437

3538
func (sm *suggestModel) Init() tea.Cmd {
@@ -120,11 +123,20 @@ func NewSuggestModel() *suggestModel {
120123
ti.Focus()
121124

122125
// suggestコマンドのサービスの取得
123-
scs, err := service.NewSuggestCmdService()
126+
inputOutput := gateway.NewInputOutputGateway()
127+
var commitMessageService service.CommitMessageService
128+
config, err := entity.ReadConfig()
124129
if err != nil {
125-
log.Fatal(err)
126-
os.Exit(-1)
130+
log.Fatalf("設定ファイルの読み込みができませんでした")
131+
}
132+
switch config.WithGptRequestLocation() {
133+
case entity.Client:
134+
nlp := gateway.NewOpenAIGateway(context.Background())
135+
commitMessageService = gateway.NewClientCommitMessageGateway(nlp)
136+
case entity.Server:
137+
commitMessageService = gateway.NewGrpcServerGateway()
127138
}
139+
suggestCmdUsecase := usecase.NewSuggestCmdUsecase(commitMessageService, inputOutput)
128140

129141
return &suggestModel{
130142
choices: []string{""},
@@ -133,7 +145,7 @@ func NewSuggestModel() *suggestModel {
133145
isLoading: true,
134146
isEditing: false,
135147
textInput: ti,
136-
scs: scs,
148+
scs: suggestCmdUsecase,
137149
}
138150
}
139151

go.mod

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@ require (
66
github.com/charmbracelet/bubbles v0.16.1
77
github.com/charmbracelet/bubbletea v0.24.2
88
github.com/charmbracelet/lipgloss v0.7.1
9+
github.com/cocoide/commitify-grpc-server v0.0.0-20230925123729-e460fb67f971
910
github.com/fatih/color v1.15.0
10-
github.com/golang/mock v1.4.4
11-
github.com/sashabaranov/go-openai v1.15.1
11+
github.com/golang/mock v1.6.0
12+
github.com/sashabaranov/go-openai v1.15.2
1213
github.com/spf13/cobra v1.7.0
1314
github.com/spf13/viper v1.16.0
15+
golang.org/x/net v0.15.0
1416
google.golang.org/grpc v1.58.0
1517
google.golang.org/protobuf v1.31.0
1618
)
@@ -35,7 +37,6 @@ require (
3537
require (
3638
github.com/atotto/clipboard v0.1.4 // indirect
3739
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
38-
github.com/charmbracelet/lipgloss v0.7.1 // indirect
3940
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect
4041
github.com/golang/protobuf v1.5.3 // indirect
4142
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
@@ -47,7 +48,6 @@ require (
4748
github.com/muesli/reflow v0.3.0 // indirect
4849
github.com/muesli/termenv v0.15.1 // indirect
4950
github.com/rivo/uniseg v0.2.0 // indirect
50-
golang.org/x/net v0.15.0 // indirect
5151
golang.org/x/sync v0.3.0 // indirect
5252
golang.org/x/sys v0.12.0 // indirect
5353
golang.org/x/term v0.12.0 // indirect

go.sum

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk
5656
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
5757
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
5858
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
59+
github.com/cocoide/commitify-grpc-server v0.0.0-20230925123729-e460fb67f971 h1:u0ooNLw6PuHWUDLoVx5NiNt9858HvXqvvPNOpL+tpZw=
60+
github.com/cocoide/commitify-grpc-server v0.0.0-20230925123729-e460fb67f971/go.mod h1:iDkIWp+CfRdHHSm4Nix6uS9dVzEgDsYPeCn+yklpCJc=
5961
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 h1:q2hJAaP1k2wIvVRd/hEHD7lacgqrCPS+k8g1MndzfWY=
6062
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
6163
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
@@ -86,8 +88,9 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU
8688
github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
8789
github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
8890
github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
89-
github.com/golang/mock v1.4.4 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc=
9091
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
92+
github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
93+
github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
9194
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
9295
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
9396
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -190,8 +193,8 @@ github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJ
190193
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
191194
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
192195
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
193-
github.com/sashabaranov/go-openai v1.15.1 h1:BAV5LCVEzvZ3rN/Lh5NRVs2z6AahPt/jn5s2/cEEG0M=
194-
github.com/sashabaranov/go-openai v1.15.1/go.mod h1:lj5b/K+zjTSFxVLijLSTDZuP7adOgerWeFyZLUhAKRg=
196+
github.com/sashabaranov/go-openai v1.15.2 h1:0PW+ttxe+UNYKDkA1KTly7K6YhFBqnVBbblQ3t8AfY4=
197+
github.com/sashabaranov/go-openai v1.15.2/go.mod h1:lj5b/K+zjTSFxVLijLSTDZuP7adOgerWeFyZLUhAKRg=
195198
github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM=
196199
github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ=
197200
github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA=
@@ -213,14 +216,15 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5
213216
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
214217
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
215218
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
216-
github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY=
217219
github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
220+
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
218221
github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8=
219222
github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
220223
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
221224
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
222225
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
223226
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
227+
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
224228
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
225229
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
226230
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
@@ -267,6 +271,7 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
267271
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
268272
golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
269273
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
274+
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
270275
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
271276
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
272277
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -298,6 +303,7 @@ golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwY
298303
golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
299304
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
300305
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
306+
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
301307
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
302308
golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8=
303309
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
@@ -320,6 +326,7 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ
320326
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
321327
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
322328
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
329+
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
323330
golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
324331
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
325332
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -354,8 +361,10 @@ golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7w
354361
golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
355362
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
356363
golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
364+
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
357365
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
358366
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
367+
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
359368
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
360369
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
361370
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -426,6 +435,7 @@ golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4f
426435
golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
427436
golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
428437
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
438+
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
429439
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
430440
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
431441
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

internal/entity/config.go

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ package entity
33
import (
44
"encoding/json"
55
"fmt"
6-
"os"
7-
8-
pb "github.com/cocoide/commitify/pkg/grpc"
6+
"github.com/cocoide/commitify-grpc-server/pkg/pb"
97
"github.com/spf13/viper"
8+
"os"
109
)
1110

1211
// コミットメッセージの言語の列挙型
@@ -26,12 +25,12 @@ const (
2625
PrefixFormat
2726
)
2827

29-
// AIのソースの列挙型
30-
type AISource int
28+
// ChatGPTのAPIを叩く場所
29+
type GptRequestLocation int
3130

3231
const (
33-
WrapServer AISource = iota
34-
OpenAiAPI
32+
Server GptRequestLocation = iota
33+
Client
3534
)
3635

3736
type Config struct {
@@ -133,3 +132,14 @@ func SaveConfig(configIndex, updateConfigParamInt int, updateConfigParamStr stri
133132

134133
return nil
135134
}
135+
136+
func (c *Config) WithGptRequestLocation() GptRequestLocation {
137+
switch c.AISource {
138+
case 0:
139+
return Server
140+
case 1:
141+
return Client
142+
default:
143+
return Server
144+
}
145+
}

internal/gateway/ai_source_grpc.go

Lines changed: 0 additions & 65 deletions
This file was deleted.

internal/gateway/ai_source_interface.go

Lines changed: 0 additions & 5 deletions
This file was deleted.

internal/gateway/clinet.go

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package gateway
2+
3+
import (
4+
"fmt"
5+
"github.com/cocoide/commitify/internal/entity"
6+
"github.com/cocoide/commitify/internal/service"
7+
"regexp"
8+
"strings"
9+
)
10+
11+
const (
12+
NormalMessagePrompt = "Generate up to 5 commit messages for [%s]. Each message should be separated by only space"
13+
)
14+
15+
var CommitMessageRegex = regexp.MustCompile(`^(\d.\s+)|^(-\s+)|^(\s+)`)
16+
17+
type clientCommitMessageGateway struct {
18+
nlp service.NLPService
19+
}
20+
21+
func NewClientCommitMessageGateway(nlp service.NLPService) service.CommitMessageService {
22+
return &clientCommitMessageGateway{nlp: nlp}
23+
}
24+
25+
func (l *clientCommitMessageGateway) GenerateCommitMessageList(code string, conf entity.Config) ([]string, error) {
26+
prompt := fmt.Sprintf(NormalMessagePrompt, code)
27+
result, err := l.nlp.GetAnswerFromPrompt(prompt)
28+
if err != nil {
29+
return nil, err
30+
}
31+
messages := strings.Split(result, "\n")
32+
messages = l.removeFromArrayByRegex(messages, CommitMessageRegex)
33+
return messages, nil
34+
}
35+
36+
func (l *clientCommitMessageGateway) removeFromArrayByRegex(array []string, pattern *regexp.Regexp) []string {
37+
for i, msg := range array {
38+
array[i] = pattern.ReplaceAllString(msg, "")
39+
}
40+
return array
41+
}

0 commit comments

Comments
 (0)