@@ -635,6 +635,8 @@ class PackageBackend {
635635 final p = await tx.lookupValue <Package >(pkg.key);
636636 final githubConfig = body.github;
637637 final gcpConfig = body.gcp;
638+ final manualConfig = body.manual;
639+
638640 if (githubConfig != null ) {
639641 final isEnabled = githubConfig.isEnabled;
640642
@@ -648,7 +650,9 @@ class PackageBackend {
648650 final repository = githubConfig.repository? .trim () ?? '' ;
649651 githubConfig.repository = repository.isEmpty ? null : repository;
650652 final tagPattern = githubConfig.tagPattern? .trim () ?? '' ;
651- verifyTagPattern (tagPattern: tagPattern);
653+ if (isEnabled) {
654+ verifyTagPattern (tagPattern: tagPattern);
655+ }
652656 githubConfig.tagPattern = tagPattern.isEmpty ? null : tagPattern;
653657 final environment = githubConfig.environment? .trim () ?? '' ;
654658 githubConfig.environment = environment.isEmpty ? null : environment;
@@ -726,9 +730,14 @@ class PackageBackend {
726730 }
727731
728732 // finalize changes
729- p.automatedPublishing ?? = AutomatedPublishing ();
730- p.automatedPublishing! .githubConfig = githubConfig;
731- p.automatedPublishing! .gcpConfig = gcpConfig;
733+ final automatedPublishing = p.automatedPublishing ?? =
734+ AutomatedPublishing ();
735+ automatedPublishing.githubConfig =
736+ githubConfig ?? automatedPublishing.githubConfig;
737+ automatedPublishing.gcpConfig =
738+ gcpConfig ?? automatedPublishing.gcpConfig;
739+ automatedPublishing.manualConfig =
740+ manualConfig ?? automatedPublishing.manualConfig;
732741
733742 p.updated = clock.now ().toUtc ();
734743 tx.insert (p);
@@ -742,6 +751,7 @@ class PackageBackend {
742751 return api.AutomatedPublishingConfig (
743752 github: p.automatedPublishing! .githubConfig,
744753 gcp: p.automatedPublishing! .gcpConfig,
754+ manual: p.automatedPublishing! .manualConfig,
745755 );
746756 });
747757 }
@@ -1606,6 +1616,11 @@ class PackageBackend {
16061616 }
16071617 if (agent is AuthenticatedUser &&
16081618 await packageBackend.isPackageAdmin (package, agent.user.userId)) {
1619+ final isDisabled =
1620+ package.automatedPublishing? .manualConfig? .isDisabled ?? false ;
1621+ if (isDisabled) {
1622+ throw AuthorizationException .manualPublishingDisabled ();
1623+ }
16091624 return ;
16101625 }
16111626 if (agent is AuthenticatedGitHubAction ) {
0 commit comments