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

Links to branch jobs on custom views in multibranch projects are broken

      Users are able to create custom views for multibranch projects, however if that view is not the primary view, all links to the branch projects are broken. This is because the URL child prefix for multibranch projects is branch (https://github.com/jenkinsci/branch-api-plugin/blob/branch-api-1.0/src/main/java/jenkins/branch/MultiBranchProject.java#L463).

      Views do not have a Stapler URL binding getBranch(String name), but the fallback for the primary view onto the MultiBranchProject class masks this issue.

      Reproduce:

      1. Create multibranch project (any type)
      2. Index some branches
      3. Create a new view with some branches in it
      4. Do not make it the primary view
      5. Click a link to a branch on the new view
      6. Observe broken link root/job/my-multibranch/view/custom-view/branch/branch-name
      7. Make the new view the primary view
      8. Click a link to a branch on the new view
      9. Observe branch project page

          [JENKINS-32178] Links to branch jobs on custom views in multibranch projects are broken

          Matthew DeTullio created issue -
          Matthew DeTullio made changes -
          Remote Link New: This issue links to "PR (Web Link)" [ 13711 ]
          Matthew DeTullio made changes -
          Description Original: Users are able to create custom views for multibranch projects, however if that view is not the primary view, all links to the branch projects are broken. This is because the URL child prefix for multibranch projects is "branch" (https://github.com/jenkinsci/branch-api-plugin/blob/branch-api-1.0/src/main/java/jenkins/branch/MultiBranchProject.java#L463).

          Views do not have a Stapler URL binding for "branch", but the fallback for the primary view onto MultiBranchProject class masks this issue.

          Reproduce:

          1. Create multibranch project (any type)
          2. Index some branches
          3. Create a new view with some branches in it
          4. Do not make it the primary view
          5. Click a link to a branch on the new view
          6. Observe broken link root/job/my-multibranch/view/custom-view/branch/branch-name
          7. Make the new view the primary view
          8. Click a link to a branch on the new view
          9. Observe branch project page
          New: Users are able to create custom views for multibranch projects, however if that view is not the primary view, all links to the branch projects are broken. This is because the URL child prefix for multibranch projects is {{branch}} (https://github.com/jenkinsci/branch-api-plugin/blob/branch-api-1.0/src/main/java/jenkins/branch/MultiBranchProject.java#L463).

          Views do not have a Stapler URL binding {{getBranch(String name)}}, but the fallback for the primary view onto MultiBranchProject class masks this issue.

          Reproduce:

          1. Create multibranch project (any type)
          2. Index some branches
          3. Create a new view with some branches in it
          4. Do not make it the primary view
          5. Click a link to a branch on the new view
          6. Observe broken link root/job/my-multibranch/view/custom-view/branch/branch-name
          7. Make the new view the primary view
          8. Click a link to a branch on the new view
          9. Observe branch project page
          Matthew DeTullio made changes -
          Description Original: Users are able to create custom views for multibranch projects, however if that view is not the primary view, all links to the branch projects are broken. This is because the URL child prefix for multibranch projects is {{branch}} (https://github.com/jenkinsci/branch-api-plugin/blob/branch-api-1.0/src/main/java/jenkins/branch/MultiBranchProject.java#L463).

          Views do not have a Stapler URL binding {{getBranch(String name)}}, but the fallback for the primary view onto MultiBranchProject class masks this issue.

          Reproduce:

          1. Create multibranch project (any type)
          2. Index some branches
          3. Create a new view with some branches in it
          4. Do not make it the primary view
          5. Click a link to a branch on the new view
          6. Observe broken link root/job/my-multibranch/view/custom-view/branch/branch-name
          7. Make the new view the primary view
          8. Click a link to a branch on the new view
          9. Observe branch project page
          New: Users are able to create custom views for multibranch projects, however if that view is not the primary view, all links to the branch projects are broken. This is because the URL child prefix for multibranch projects is {{branch}} (https://github.com/jenkinsci/branch-api-plugin/blob/branch-api-1.0/src/main/java/jenkins/branch/MultiBranchProject.java#L463).

          Views do not have a Stapler URL binding {{getBranch(String name)}}, but the fallback for the primary view onto the {{MultiBranchProject}} class masks this issue.

          Reproduce:

          1. Create multibranch project (any type)
          2. Index some branches
          3. Create a new view with some branches in it
          4. Do not make it the primary view
          5. Click a link to a branch on the new view
          6. Observe broken link root/job/my-multibranch/view/custom-view/branch/branch-name
          7. Make the new view the primary view
          8. Click a link to a branch on the new view
          9. Observe branch project page
          Jesse Glick made changes -
          Assignee Original: Stephen Connolly [ stephenconnolly ] New: Matthew DeTullio [ mjdetullio ]
          Jesse Glick made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]
          Matthew DeTullio made changes -
          Remote Link Original: This issue links to "PR (Web Link)" [ 13711 ]
          Matthew DeTullio made changes -
          Remote Link New: This issue links to "PR (Web Link)" [ 14237 ]
          Jesse Glick made changes -
          Link New: This issue is duplicated by JENKINS-34693 [ JENKINS-34693 ]

          Code changed in jenkins
          User: Matthew DeTullio
          Path:
          src/main/java/jenkins/branch/MultiBranchProject.java
          http://jenkins-ci.org/commit/branch-api-plugin/02e6a0010d94d2b8d913ef9a43de961c81bb061e
          Log:
          JENKINS-32178 Remove URL child prefix override.

          By removing the prefix override, links to the sub-projects
          on custom views will use the default "job", allowing the
          views' existing Stapler URL bindings to correctly load the
          page for the item.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Matthew DeTullio Path: src/main/java/jenkins/branch/MultiBranchProject.java http://jenkins-ci.org/commit/branch-api-plugin/02e6a0010d94d2b8d913ef9a43de961c81bb061e Log: JENKINS-32178 Remove URL child prefix override. By removing the prefix override, links to the sub-projects on custom views will use the default "job", allowing the views' existing Stapler URL bindings to correctly load the page for the item.

            mjdetullio Matthew DeTullio
            mjdetullio Matthew DeTullio
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: