@@ -252,9 +252,12 @@ export default class IntegrationService {
252252 }
253253
254254 if ( IntegrationService . isCodePlatform ( platform ) && platform !== PlatformType . GIT ) {
255- this . gitConnectOrUpdate ( {
256- remotes : repositories ,
257- } )
255+ await this . gitConnectOrUpdate (
256+ {
257+ remotes : repositories ,
258+ } ,
259+ txOptions ,
260+ )
258261 }
259262
260263 return integration
@@ -833,7 +836,11 @@ export default class IntegrationService {
833836 }
834837
835838 async githubNangoConnect ( settings , mapping , integrationId ?: string ) {
836- const transaction = await SequelizeRepository . createTransaction ( this . options )
839+ const existingTransaction = SequelizeRepository . getTransaction ( this . options )
840+
841+ const transaction =
842+ existingTransaction || ( await SequelizeRepository . createTransaction ( this . options ) )
843+
837844 const txOptions = {
838845 ...this . options ,
839846 transaction,
@@ -881,7 +888,9 @@ export default class IntegrationService {
881888 )
882889 }
883890
884- await SequelizeRepository . commitTransaction ( transaction )
891+ if ( ! existingTransaction ) {
892+ await SequelizeRepository . commitTransaction ( transaction )
893+ }
885894
886895 await this . options . temporal . workflow . start ( 'syncGithubIntegration' , {
887896 taskQueue : 'nango' ,
@@ -896,7 +905,9 @@ export default class IntegrationService {
896905 return integration
897906 } catch ( err ) {
898907 this . options . log . error ( err , 'Error while creating or updating GitHub integration!' )
899- await SequelizeRepository . rollbackTransaction ( transaction )
908+ if ( ! existingTransaction ) {
909+ await SequelizeRepository . rollbackTransaction ( transaction )
910+ }
900911 throw err
901912 }
902913 }
@@ -1280,7 +1291,9 @@ export default class IntegrationService {
12801291 return null
12811292 }
12821293
1283- const existingTransaction = SequelizeRepository . getTransaction ( options || this . options )
1294+ const currentOptions = options || this . options
1295+ const existingTransaction =
1296+ currentOptions . transaction || SequelizeRepository . getTransaction ( currentOptions )
12841297 const transaction =
12851298 existingTransaction || ( await SequelizeRepository . createTransaction ( options || this . options ) )
12861299 let integration
0 commit comments