chore: Move vcs code into own packages #5990
Draft
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
Move each vcs into their own subpackage of
vcs.why
I always found it a bit confusing that some VCSs (bitbucketcloud, bitbucketserver, and recently gitea) had their own packages, whereas github, azuredevops, and gitlab lived side-by-side in
vcs. Especially as github has become bigger and more complicated, it makes sense to make these subpackages.This also makes it more clear where we think we're testing "general VCS behavior" but in fact are testing github specific behavior.
Finally, this can help move us more towards the "plugin" architecture for VCSs that has been discussed in other places, by first providing this isolation.
tests
This is a pure refactor; passing tests should be sufficient.
references
Relates to #5574