[automated] Merge branch 'production' => 'main'#4248
Merged
Conversation
premun
approved these changes
Dec 16, 2024
dkurepa
added a commit
that referenced
this pull request
Oct 8, 2025
…ed (#5348) ## Problem When updating a subscription using `darc update-subscription` with the popup editor, changes to immutable fields were silently ignored. The command would report success, but fields like `TargetBranch`, `TargetRepository`, and `SourceEnabled` would not be updated, leading to user confusion. As noted in the documentation, these fields cannot be modified because of how Maestro++ tracks pull requests, but the tool was not validating or enforcing this restriction. **Example of the problem:** ```bash > darc update-subscription --id 58cbbaad-a57e-4327-865a-609fa1c10968 # User changes target branch in the popup from 'main' to 'dev' Successfully updated subscription with id '58cbbaad-a57e-4327-865a-609fa1c10968'. # But the target branch is still 'main' - change was silently ignored ``` ## Solution Added validation in `UpdateSubscriptionOperation` after popup values are extracted to detect and reject changes to immutable fields: - **Target Repository URL** - The repository receiving updates - **Target Branch** - The branch receiving updates - **Source Enabled** - Whether the subscription uses source-enabled (VMR) flow When users attempt to modify any of these fields, the operation now fails with a clear error message listing all immutable fields that were changed. **After this fix:** ```bash > darc update-subscription --id 58cbbaad-a57e-4327-865a-609fa1c10968 # User changes target branch in the popup from 'main' to 'dev' The following immutable fields cannot be modified: - Target Branch (cannot be changed from 'main') ``` ## Changes - **UpdateSubscriptionOperation.cs**: Added validation logic after popup values are extracted to compare against the original subscription and detect immutable field changes - **Darc.md**: Updated documentation to explicitly list all immutable fields and clarify that changes will result in an error ## Testing - All existing tests continue to pass (117 passed, 1 skipped) - Build succeeds with no warnings - Documentation updated to reflect the new behavior Fixes #4248 Fixes #4725 <!-- START COPILOT CODING AGENT SUFFIX --> <details> <summary>Original prompt</summary> > > ---- > > *This section details on the original issue you should resolve* > > <issue_title>darc update-subscription target branch doesn't work but also doesn't error</issue_title> > <issue_description>If I update a subscription's target branch, darc tells me that it successfully updated the subscription but the change is not respected: > > > C:\git\arcade-services\tools\FlatFlowMigrationCli>darc update-subscription --id 58cbbaad-a57e-4327-865a-609fa1c10968 > Successfully updated subscription with id '58cbbaad-a57e-4327-865a-609fa1c10968'. > > If we can't update target branches, we should at least error out during the save.</issue_description> > > ## Comments on the Issue (you are @copilot in this section) > > <comments> > <comment_new><author>@dkurepa</author><body> > @ViktorHofer when this happened, did you use the `update-subscription` with the pop-up? </body></comment_new> > <comment_new><author>@ViktorHofer</author><body> > Yes. Pop-up in notepad on Windows.</body></comment_new> > <comment_new><author>@dkurepa</author><body> > Ah I see, thanks</body></comment_new> > <comment_new><author>@dkurepa</author><body> > The best thing to do here is probably to error out. > Ideally we wouldn't do this just for the target branch, but for other non mutable fields: > - Id > - targetRepository > - target branch > - source enabled > > So after a popup is closed, we'd check if any of these are changed, and error out with all of them</body></comment_new> > </comments> > </details> Fixes #4725 <!-- START COPILOT CODING AGENT TIPS --> --- 💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click [here](https://survey3.medallia.com/?EAHeSx-AP01bZqG0Ld9QLQ) to start the survey. --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: dkurepa <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I detected changes in the production branch which have not been merged yet to main. I'm a robot and am configured to help you automatically keep main up to date, so I've opened this PR.
This PR merges commits made on production by the following committers:
Instructions for merging from UI
This PR will not be auto-merged. When pull request checks pass, complete this PR by creating a merge commit, not a squash or rebase commit.
If this repo does not allow creating merge commits from the GitHub UI, use command line instructions.
Instructions for merging via command line
Run these commands to merge this pull request from the command line.
or if you are using SSH
After PR checks are complete push the branch
Instructions for resolving conflicts
Instructions for updating this pull request
Contributors to this repo have permission update this pull request by pushing to the branch 'merge/production-to-main'. This can be done to resolve conflicts or make other changes to this pull request before it is merged.
The provided examples assume that the remote is named 'origin'. If you have a different remote name, please replace 'origin' with the name of your remote.
or if you are using SSH
Contact .NET Core Engineering (dotnet/dnceng) if you have questions or issues.
Also, if this PR was generated incorrectly, help us fix it. See https://github.com/dotnet/arcade/blob/main/.github/workflows/scripts/inter-branch-merge.ps1.