Load correct data when switching branches in pipeline editor
What does this MR do?
For #321655 (closed)
This is an iterative step that adds the dropdown functionality to the branch switcher. When the user selects a different branch from their current one, the pipeline editor will refetch and load the content of the CI file from that branch.
Being able to commit and make changes to non-default branches is already addressed in !55413 (merged).
The breakdown of the implementation for the branch switcher is as follows:
State | Progress |
---|---|
|
Add dropdown UI to the pipeline editor |
!59217 (merged) | Fetch the branch list from GraphQL (when query is available) |
you are here |
When clicking on a branch, switch to that branch and load the correct data |
TODO | Special Case: add branch switcher to empty state |
Testing
Note that the feature is under the :pipeline-editor-branch-switcher
feature flag, so please enable it first when testing.
Since the graphql query is not yet integrated into the branch switcher, we are using a client resolver. Make sure to test with a branch included in the resolver, or add your own test branch in pipeline_editor/graphql/resolvers.js.
project() {
return {
__typename: 'Project',
repository: {
__typename: 'Repository',
branches: [
{ __typename: 'Branch', name: 'master' },
{ __typename: 'Branch', name: 'main' },
{ __typename: 'Branch', name: 'develop' },
{ __typename: 'Branch', name: 'production' },
{ __typename: 'Branch', name: 'test' },
],
},
};
},
Screenshots
Does this MR meet the acceptance criteria?
Conformity
-
📋 Does this MR need a changelog?-
I have included a changelog entry. -
I have not included a changelog entry because this feature is behind a feature flag.
-
- [-] Documentation (if required)
-
Code review guidelines -
Merge request performance guidelines -
Style guides - [-] Database guides
- [-] Separation of EE specific content
Availability and Testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Tested in all supported browsers - [-] Informed Infrastructure department of a default or new setting change, if applicable per definition of done
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
- [-] Label as security and @ mention
@gitlab-com/gl-security/appsec
- [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
- [-] Security reports checked/validated by a reviewer from the AppSec team