Fixes to default selected SCM code #6426
Merged
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.
What it does
There are a couple of related issues here that are fixed.
When setting the selected repository in ScmService to
undefined
, it does not set it toundefined
but sets it to the first repository in its list. This prevents extenders from setting the selection to be 'no selection'. It is generally considered bad practice to put business logic in setters so I moved this out of the setter.When one has two or more SCM provider implementations then the setting of the selection fails. This is because if the selected repository is not a Git repository then the Git provider sets the repository to
undefined
(because toScmRepository will returnundefined
for repositories other than Git repositories). This forces the selected repository to the first repository in the list, overwriting the selection set by any other SCM provider.How to test
You can test that all works the same as before when there is only the Git provider. If you want to see a problem that is fixed by this change then the steps are as follows:
Review checklist
Reminder for reviewers