Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-44208

Make Blue Ocean link url resolution extensible by plugins and take into account Organizations

    • Blue Ocean 1.1-beta4, Blue Ocean 1.1

      The Blue Ocean link from the classical view should be customizable by plugins. Plugins should be able to define or override the url mapping for a given ModelObject.

      Also by default this link should take into account when an organization has been defined and if this organization root Item is different from the root of the Jenkins instance

          [JENKINS-44208] Make Blue Ocean link url resolution extensible by plugins and take into account Organizations

          Alvaro Lobato created issue -
          Alvaro Lobato made changes -
          Description Original: The "Try Blue Ocean" button goes to the Blue Ocean url defined by BlueOceanWebURLBuilder|https://github.com/jenkinsci/blueocean-plugin/blob/master/blueocean-pipeline-api-impl/src/main/java/io/jenkins/blueocean/BlueOceanWebURLBuilder.java#L70] this behaviour is not extensible and there is no way to define URLs for other Items.

          Also when you are in the classical view inside a folder that is the root item of an org, you should go to /blue/organization/org_name/ instead of /blue/ which could easily be done when this is extensible
          New: The "Try Blue Ocean" button goes to the Blue Ocean url defined by [BlueOceanWebURLBuilder | https://github.com/jenkinsci/blueocean-plugin/blob/master/blueocean-pipeline-api-impl/src/main/java/io/jenkins/blueocean/BlueOceanWebURLBuilder.java#L70] this behaviour is not extensible and there is no way to define URLs for other Items.

          Also when you are in the classical view inside a folder that is the root item of an org, you should go to {{/blue/organization/org_name/}} instead of {{/blue/}} which could easily be done when this is extensible
          Alvaro Lobato made changes -
          Summary Original: Blue Ocean button url should be extensible and take into account the organization New: Blue Ocean button url should take into account organization root GroupItem
          Alvaro Lobato made changes -
          Description Original: The "Try Blue Ocean" button goes to the Blue Ocean url defined by [BlueOceanWebURLBuilder | https://github.com/jenkinsci/blueocean-plugin/blob/master/blueocean-pipeline-api-impl/src/main/java/io/jenkins/blueocean/BlueOceanWebURLBuilder.java#L70] this behaviour is not extensible and there is no way to define URLs for other Items.

          Also when you are in the classical view inside a folder that is the root item of an org, you should go to {{/blue/organization/org_name/}} instead of {{/blue/}} which could easily be done when this is extensible
          New: The "Try Blue Ocean" button goes to the Blue Ocean url defined by [BlueOceanWebURLBuilder | https://github.com/jenkinsci/blueocean-plugin/blob/master/blueocean-pipeline-api-impl/src/main/java/io/jenkins/blueocean/BlueOceanWebURLBuilder.java#L70] this
          When you are in the classical view inside a folder that is the root item of an org, you should go to {{/blue/organization/org_name/}} instead of {{/blue/}} which could easily be done when this is extensible

          This behaviour is not extensible and there is no way to define URLs for other Items not taken into account by [BlueOceanWebURLBuilder | https://github.com/jenkinsci/blueocean-plugin/blob/master/blueocean-pipeline-api-impl/src/main/java/io/jenkins/blueocean/BlueOceanWebURLBuilder.java#L70]

          Alvaro Lobato made changes -
          Labels New: cloudbees-internal-steel
          Alvaro Lobato made changes -
          Issue Type Original: Improvement [ 4 ] New: Bug [ 1 ]

          Vivek Pandey added a comment -

          alobato I am trying to understand this, so when you are in org folder and click on 'Try Blue Ocean', then it redirects to /blue URL? 

          Looking at the code, BlueOceanWebURLBuilder is computing org name using OrganizationFactory.], In this case if it can find OrganiationResolver then it can compute url correctly.

          Vivek Pandey added a comment - alobato I am trying to understand this, so when you are in org folder and click on 'Try Blue Ocean', then it redirects to /blue URL?  Looking at the code, BlueOceanWebURLBuilder is computing org name using OrganizationFactory .], In this case if it can find OrganiationResolver then it can compute url correctly.

          Alvaro Lobato added a comment - - edited

          Alvaro Lobato added a comment - - edited vivek Yes, for Jobs, Runs and Multibranches, for the rest will return null URL which defaults to /blue without org. https://github.com/jenkinsci/blueocean-plugin/blob/master/blueocean-pipeline-api-impl/src/main/java/io/jenkins/blueocean/BlueOceanWebURLBuilder.java#L133 https://github.com/jenkinsci/blueocean-plugin/blob/master/blueocean-pipeline-api-impl/src/main/java/io/jenkins/blueocean/BlueOceanWebURLBuilder.java#L91

          Vivek Pandey added a comment -

          alobato Ah, this we can fix easily if we handle instance of ModifiableTopLevelItemGroup. ModifiableTopLevelItemGroup maps to BlueOrganization, which is handled via OrganizationFactory extension, so this should just work in your case.

          Vivek Pandey added a comment - alobato Ah, this we can fix easily if we handle instance of ModifiableTopLevelItemGroup. ModifiableTopLevelItemGroup maps to BlueOrganization, which is handled via OrganizationFactory extension, so this should just work in your case.
          James Dumay made changes -
          Assignee New: Vivek Pandey [ vivek ]

            vivek Vivek Pandey
            alobato Alvaro Lobato
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: