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

Git plugin support for non standard branches during auto discover

    Details

    • Type: Improvement
    • Status: Open (View Workflow)
    • Priority: Minor
    • Resolution: Unresolved
    • Component/s: git-plugin
    • Labels:
      None
    • Environment:
      Windows 32, 64 - All versions
      Git plugin 3.5.0
      Jenkins minimum version 1.625.3
    • Similar Issues:

      Description

      Git auto discover branches should be able to respect included refspecs so that it can discover branches not located in refs/heads/* an example would be refs/pull-requests/*/merge. When this is implemented, the multistage pipeline will be well on its way to be able to automatically detect and build pull requests or other manually "described" branches in refpsecs

        Attachments

          Issue Links

            Activity

            Hide
            jolykins MARK ANDREWS added a comment -

            Related improvement request ticket JENKINS-45989

            Show
            jolykins MARK ANDREWS added a comment - Related improvement request ticket  JENKINS-45989
            Hide
            markewaite Mark Waite added a comment -

            The GitHub branch source, Bitbucket branch source, and in the gitea plugin seem to already provide support for pull requests. The Jenkins project itself relies on them as part of ci.jenkins.io. Can you explain further what you're seeking that is not already available?

            Show
            markewaite Mark Waite added a comment - The GitHub branch source, Bitbucket branch source, and in the gitea plugin seem to already provide support for pull requests. The Jenkins project itself relies on them as part of ci.jenkins.io. Can you explain further what you're seeking that is not already available?
            Hide
            jolykins MARK ANDREWS added a comment -

            Im using multibranch pipeline with auto discover branches. It only discovers branches in /refs/heads/* as far as i can tell it doesn't have options for git hub et.al. plugins. And pull requests are in /refs/pull-requests which are ignored. Before recent releases of git and git-client pligins i was able to use refspecs to "map" /refs/* to /refs/heads/* "namespace" which no longer works because of an optimisation of now using remote-ls to list branches and the git plugin sets "wantsbranches" which git-client uses to git ls-remote -h which ignores anything outside of /refs/heads i.e non standard branches. And because its remote theres nothing i can do locally to have those branches listed. From my initial investigations it looks like that both the git and git-client plugins would need changes tto provide the functionality that i want while still keepinng the optimisations recently intoduced.

            Show
            jolykins MARK ANDREWS added a comment - Im using multibranch pipeline with auto discover branches. It only discovers branches in /refs/heads/* as far as i can tell it doesn't have options for git hub et.al. plugins. And pull requests are in /refs/pull-requests which are ignored. Before recent releases of git and git-client pligins i was able to use refspecs to "map" /refs/* to /refs/heads/* "namespace" which no longer works because of an optimisation of now using remote-ls to list branches and the git plugin sets "wantsbranches" which git-client uses to git ls-remote -h which ignores anything outside of /refs/heads i.e non standard branches. And because its remote theres nothing i can do locally to have those branches listed. From my initial investigations it looks like that both the git and git-client plugins would need changes tto provide the functionality that i want while still keepinng the optimisations recently intoduced.
            Hide
            fbaeuerle Florian Bäuerle added a comment -

            I am working with VSTS and Jenkins.

            Since Multibranch Pipeline Jobs cannot detect branches outside refs/heads, I have to create an extra Pipeline Job which fetches refs/pull/* for verifying VSTS' pull-requests.

            Show
            fbaeuerle Florian Bäuerle added a comment - I am working with VSTS and Jenkins. Since Multibranch Pipeline Jobs cannot detect branches outside refs/heads, I have to create an extra Pipeline Job which fetches refs/pull/* for verifying VSTS' pull-requests.
            Hide
            fbaeuerle Florian Bäuerle added a comment - - edited

            This issue is fixed with 3.9.0, there is a new option called "Discover other refs".

             

            Thanks!

             

            Oh sorry, just noticed that "RESOLVED" would be more appropriate...

            Show
            fbaeuerle Florian Bäuerle added a comment - - edited This issue is fixed with 3.9.0, there is a new option called "Discover other refs".   Thanks!   Oh sorry, just noticed that "RESOLVED" would be more appropriate...
            Hide
            fbaeuerle Florian Bäuerle added a comment -

            I closed the Issue overzealously.

            The Multibranch pipeline actually detects the branch, but building them does not succeed.

            I get this message:
            ERROR: Could not determine exact tip revision of pull/2212/merge; falling back to nondeterministic checkout

            In the end, the correct commit is checked out but as soon as the actual pipeline script is executed on a node, the job fails with java.nio.file.NoSuchFileException. The Dockerfile cannot be found, which makes sense, because there is absolutetly nothing created on the slave (not even a workdir is being created).

            Show
            fbaeuerle Florian Bäuerle added a comment - I closed the Issue overzealously. The Multibranch pipeline actually detects the branch, but building them does not succeed. I get this message: ERROR: Could not determine exact tip revision of pull/2212/merge; falling back to nondeterministic checkout In the end, the correct commit is checked out but as soon as the actual pipeline script is executed on a node, the job fails with java.nio.file.NoSuchFileException. The Dockerfile cannot be found, which makes sense, because there is absolutetly nothing created on the slave (not even a workdir is being created).

              People

              • Assignee:
                Unassigned
                Reporter:
                jolykins MARK ANDREWS
              • Votes:
                4 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                • Created:
                  Updated: