@@ -221,26 +221,50 @@ func SubmitPlan(signals chan os.Signal, ready chan bool) int {
221221 }
222222
223223 client := AuthenticatedChangesClient (ctx )
224- createResponse , err := client .CreateChange (ctx , & connect.Request [sdp.CreateChangeRequest ]{
225- Msg : & sdp.CreateChangeRequest {
226- Properties : & sdp.ChangeProperties {
227- Title : viper .GetString ("title" ),
228- Description : viper .GetString ("description" ),
229- TicketLink : viper .GetString ("ticket-link" ),
230- Owner : viper .GetString ("owner" ),
231- // CcEmails: viper.GetString("cc-emails"),
232- },
224+
225+ var changeUUID * uuid.UUID
226+
227+ changesList , err := client .ListChangesByStatus (ctx , & connect.Request [sdp.ListChangesByStatusRequest ]{
228+ Msg : & sdp.ListChangesByStatusRequest {
229+ Status : sdp .ChangeStatus_CHANGE_STATUS_DEFINING ,
233230 },
234231 })
235232 if err != nil {
236- log .WithContext (ctx ).WithError (err ).WithFields (lf ).Error ("failed to create change " )
233+ log .WithContext (ctx ).WithError (err ).WithFields (lf ).Error ("failed to searching for existing changes " )
237234 return 1
238235 }
239236
240- changeUUID := createResponse .Msg .Change .Metadata .GetUUIDParsed ()
237+ for _ , c := range changesList .Msg .Changes {
238+ if c .Properties .TicketLink == viper .GetString ("ticket-link" ) {
239+ changeUUID = c .Metadata .GetUUIDParsed ()
240+ if changeUUID != nil {
241+ break
242+ }
243+ }
244+ }
245+
241246 if changeUUID == nil {
242- log .WithContext (ctx ).WithError (err ).WithFields (lf ).Error ("failed to read change id" )
243- return 1
247+ createResponse , err := client .CreateChange (ctx , & connect.Request [sdp.CreateChangeRequest ]{
248+ Msg : & sdp.CreateChangeRequest {
249+ Properties : & sdp.ChangeProperties {
250+ Title : viper .GetString ("title" ),
251+ Description : viper .GetString ("description" ),
252+ TicketLink : viper .GetString ("ticket-link" ),
253+ Owner : viper .GetString ("owner" ),
254+ // CcEmails: viper.GetString("cc-emails"),
255+ },
256+ },
257+ })
258+ if err != nil {
259+ log .WithContext (ctx ).WithError (err ).WithFields (lf ).Error ("failed to create change" )
260+ return 1
261+ }
262+
263+ changeUUID = createResponse .Msg .Change .Metadata .GetUUIDParsed ()
264+ if changeUUID == nil {
265+ log .WithContext (ctx ).WithError (err ).WithFields (lf ).Error ("failed to read change id" )
266+ return 1
267+ }
244268 }
245269
246270 lf ["change" ] = changeUUID
0 commit comments