@@ -98,6 +98,7 @@ const UpdateVercelConfigFormSchema = z.object({
9898 pullEnvVarsBeforeBuild : envSlugArrayField ,
9999 discoverEnvVars : envSlugArrayField ,
100100 vercelStagingEnvironment : z . string ( ) . nullable ( ) . optional ( ) ,
101+ autoPromote : z . string ( ) . optional ( ) . transform ( ( val ) => val !== "false" ) ,
101102} ) ;
102103
103104const DisconnectVercelFormSchema = z . object ( {
@@ -241,6 +242,7 @@ export async function action({ request, params }: ActionFunctionArgs) {
241242 pullEnvVarsBeforeBuild,
242243 discoverEnvVars,
243244 vercelStagingEnvironment,
245+ autoPromote,
244246 } = submission . value ;
245247
246248 const parsedStagingEnv = parseVercelStagingEnvironment ( vercelStagingEnvironment ) ;
@@ -256,6 +258,7 @@ export async function action({ request, params }: ActionFunctionArgs) {
256258 pullEnvVarsBeforeBuild,
257259 discoverEnvVars,
258260 vercelStagingEnvironment : parsedStagingEnv ,
261+ autoPromote,
259262 } ) ;
260263
261264 if ( result ) {
@@ -593,12 +596,14 @@ function ConnectedVercelProjectForm({
593596 discoverEnvVars : connectedProject . integrationData . config . discoverEnvVars ?? [ ] ,
594597 vercelStagingEnvironment :
595598 connectedProject . integrationData . config . vercelStagingEnvironment ?? null ,
599+ autoPromote : connectedProject . integrationData . config . autoPromote ?? true ,
596600 } ) ;
597601
598602 const originalAtomicBuilds = connectedProject . integrationData . config . atomicBuilds ?? [ ] ;
599603 const originalPullEnvVars = connectedProject . integrationData . config . pullEnvVarsBeforeBuild ?? [ ] ;
600604 const originalDiscoverEnvVars = connectedProject . integrationData . config . discoverEnvVars ?? [ ] ;
601605 const originalStagingEnv = connectedProject . integrationData . config . vercelStagingEnvironment ?? null ;
606+ const originalAutoPromote = connectedProject . integrationData . config . autoPromote ?? true ;
602607
603608 useEffect ( ( ) => {
604609 const atomicBuildsChanged =
@@ -611,9 +616,23 @@ function ConnectedVercelProjectForm({
611616 JSON . stringify ( [ ...configValues . discoverEnvVars ] . sort ( ) ) !==
612617 JSON . stringify ( [ ...originalDiscoverEnvVars ] . sort ( ) ) ;
613618 const stagingEnvChanged = configValues . vercelStagingEnvironment ?. environmentId !== originalStagingEnv ?. environmentId ;
614-
615- setHasConfigChanges ( atomicBuildsChanged || pullEnvVarsChanged || discoverEnvVarsChanged || stagingEnvChanged ) ;
616- } , [ configValues , originalAtomicBuilds , originalPullEnvVars , originalDiscoverEnvVars , originalStagingEnv ] ) ;
619+ const autoPromoteChanged = configValues . autoPromote !== originalAutoPromote ;
620+
621+ setHasConfigChanges (
622+ atomicBuildsChanged ||
623+ pullEnvVarsChanged ||
624+ discoverEnvVarsChanged ||
625+ stagingEnvChanged ||
626+ autoPromoteChanged
627+ ) ;
628+ } , [
629+ configValues ,
630+ originalAtomicBuilds ,
631+ originalPullEnvVars ,
632+ originalDiscoverEnvVars ,
633+ originalStagingEnv ,
634+ originalAutoPromote ,
635+ ] ) ;
617636
618637 const [ configForm , fields ] = useForm ( {
619638 id : "update-vercel-config" ,
@@ -718,6 +737,11 @@ function ConnectedVercelProjectForm({
718737 name = "vercelStagingEnvironment"
719738 value = { configValues . vercelStagingEnvironment ? JSON . stringify ( configValues . vercelStagingEnvironment ) : "" }
720739 />
740+ < input
741+ type = "hidden"
742+ name = "autoPromote"
743+ value = { String ( configValues . autoPromote ) }
744+ />
721745
722746 < Fieldset >
723747 < InputGroup fullWidth >
@@ -791,6 +815,10 @@ function ConnectedVercelProjectForm({
791815 }
792816 envVarsConfigLink = { `/orgs/${ organizationSlug } /projects/${ projectSlug } /env/${ environmentSlug } /environment-variables` }
793817 disabledEnvSlugs = { disabledEnvSlugsForBuildSettings }
818+ autoPromote = { configValues . autoPromote }
819+ onAutoPromoteChange = { ( value ) =>
820+ setConfigValues ( ( prev ) => ( { ...prev , autoPromote : value } ) )
821+ }
794822 />
795823
796824 { /* Warning: autoAssignCustomDomains must be disabled for atomic deployments */ }
0 commit comments