Skip to content

[Rollout] Production Rollout 2025-10-13#5367

Merged
premun merged 5 commits into
dotnet:productionfrom
dkurepa:rollout/2025-10-13
Oct 13, 2025
Merged

[Rollout] Production Rollout 2025-10-13#5367
premun merged 5 commits into
dotnet:productionfrom
dkurepa:rollout/2025-10-13

Conversation

@dkurepa

@dkurepa dkurepa commented Oct 13, 2025

Copy link
Copy Markdown
Member

Copilot AI and others added 5 commits October 8, 2025 14:50
…ed (dotnet#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 dotnet#4248

Fixes dotnet#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 dotnet#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]>
… provided (dotnet#5357)

dotnet#5220
a small UX fix that makes updating subscriptions a better experience

---------

Co-authored-by: Copilot <[email protected]>
<!-- Link the GitHub or AzDO issue this pull request is associated with.
Please copy and paste the full URL rather than using the
dotnet/arcade-services# syntax -->
dotnet#5263
@premun premun enabled auto-merge October 13, 2025 10:05
@premun premun merged commit 82ac610 into dotnet:production Oct 13, 2025
6 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants