Skip to content

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
!57562 (merged) 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

Branch Switching

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

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
Edited by Mireya Andres

Merge request reports