Separate Pipelines Detail Bundle File
Summary
The app/assets/javascripts/pipelines directory has a few different Vue applications in it.
The pipeline_details_bundle.js contains the code to initialize all of the Vue applications. Often these initializations include code that only that specific app cares about.
We should split these initialize functions into their own files so that we can isolate these apps into their own codebases.
Improvements
We are migrating the apps in this directory to use GraphQL (see epic). In order to do this, we need to ensure that each app is isolated before we can start migrating them each to GraphQL. This will also help us work on migrations in parallel.
Another benefit is that we have cleaner, easier to follow, and more maintainable file structures inside of this directory.
This also ensures that we don't load extra unnecessary javascript code onto pages that don't need it.
Risks
Because these apps all use this same bundle file and mediator, it will be difficult to break them apart. There is a risk that we break some functionality in the process, but our spec tests will ensure that we don't merge breaking functionality into master.