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

Cannot build merge requests from Gitlab on a multibranch pipeline job after Git plugin update to version 3.5.0

    XMLWordPrintable

Details

    Description

      Previous to the update of the git plugin everything was working fine (with Git plugin version 3.4.1).

      After updating to version 3.5.0 now I am not able to build neither merque-requests nor tags, I only see regular branches from the repository (GitLab by the way).

      I've been looking changes made in the code, more precisely changes made in

      src/main/java/jenkins/plugins/git/AbstractGitSCMSource.java

      There has been a major change in the way branches are discovered (that can be seen in the function "discoverBranches"):

      • 3.4.1 - In this version, "client.getRemoteBranches" is used, which I guess, corresponds to a "git branch -r". Then it parses the output to get the names of the branches.
      • 3.5.0 - In this version, "client.getRemoteReferences" is used, that corresponds to a "git ls-remote -h". Then, it parses the output to get the names of the branches.

      I've set "Specify ref specs" with the needed values to be able to fetch  the merge-requests and the tags ('+refs/merge-requests//head:refs/remotes/origin/merge-requests/' and '+refs/tags/:refs/remotes/origin/tags/').

      If I perform manually both operations ("git branch -r" and "git ls-remote -h") the output is not the same:

      $ git branch -r
      origin/HEAD -> origin/master

      origin/feature/generic-tag-attribute
      origin/merge-requests/1
      origin/merge-requests/2
      origin/merge-requests/3
      origin/tags/v1.5.0-alpha.0

      and

      $ git ls-remote -h 
      From http:/**********
      2c26dca25a748017ff52b22d81c549506abc12be refs/heads/feature/generic-tag-attribute
      1f43ef826799500cb585273eca3517c8a5eb026a refs/heads/master

      In the first example (mimics Git plugin 3.4.1) I get merge-requests and tags, in the second (mimics 3.5.0) I don't.

      Attachments

        Issue Links

          Activity

            amarruedo Asier Marruedo created issue -
            amarruedo Asier Marruedo made changes -
            Field Original Value New Value
            Description Previous to the update of the git plugin everything was working fine (with Git plugin version 3.4.1).

            After updating to version 3.5.0 now I am not able to build neither merque-requests nor tags, I only see regular branches from the repository (GitLab by the way).

            I've been looking changes made in the code, more precisely changes made in
            {quote}{{src/main/java/jenkins/plugins/git/AbstractGitSCMSource.java}}
            {quote}
            There has been a major change in the way branches are discovered (that can be seen in the function "discoverBranches"):
             * 3.4.1 - In this version, "client.getRemoteBranches" is used, which I guess, corresponds to a "git branch -r". Then it parses the output to get the names of the branches.
             * 3.5.0 - In this version, "client.getRemoteReferences" is used, that corresponds to a "git ls-remote -h". Then, it parses the output to get the names of the branches.

            I've set "Specify ref specs" with the needed values to be able to fetch  the merge-requests and the tags (+refs/merge-requests/*/head:refs/remotes/origin/merge-requests/* and +refs/tags/*:refs/remotes/origin/tags/*).

            If I perform manually both operations ("git branch -r" and "git ls-remote -h") the output is not the same:
            {quote}$ git branch -r
             origin/HEAD -> origin/masterorigin/feature/generic-tag-attribute
            origin/master
             origin/merge-requests/1
             origin/merge-requests/2
             origin/merge-requests/3
            origin/tags/v1.5.0-alpha.0{quote}
            and
            {quote}$ git ls-remote -h 
            From http://gitlab.rnd.saltosystems.com/pro-access/salto.commons.git
            2c26dca25a748017ff52b22d81c549506abc12be refs/heads/feature/generic-tag-attribute
            1f43ef826799500cb585273eca3517c8a5eb026a refs/heads/master
            {quote}
            In the first example (mimics Git plugin 3.4.1) I get merge-requests and tags, in the second (mimics 3.5.0) I don't.
            Previous to the update of the git plugin everything was working fine (with Git plugin version 3.4.1).

            After updating to version 3.5.0 now I am not able to build neither merque-requests nor tags, I only see regular branches from the repository (GitLab by the way).

            I've been looking changes made in the code, more precisely changes made in
            {quote}{{src/main/java/jenkins/plugins/git/AbstractGitSCMSource.java}}
            {quote}
            There has been a major change in the way branches are discovered (that can be seen in the function "discoverBranches"):
             * 3.4.1 - In this version, "client.getRemoteBranches" is used, which I guess, corresponds to a "git branch -r". Then it parses the output to get the names of the branches.
             * 3.5.0 - In this version, "client.getRemoteReferences" is used, that corresponds to a "git ls-remote -h". Then, it parses the output to get the names of the branches.

            I've set "Specify ref specs" with the needed values to be able to fetch  the merge-requests and the tags (+refs/merge-requests/*/head:refs/remotes/origin/merge-requests/* and +refs/tags/*:refs/remotes/origin/tags/*).

            If I perform manually both operations ("git branch -r" and "git ls-remote -h") the output is not the same:
            {quote}$ git branch -r
             origin/HEAD -> origin/master

            origin/feature/generic-tag-attribute
             origin/merge-requests/1
             origin/merge-requests/2
             origin/merge-requests/3
             origin/tags/v1.5.0-alpha.0
            {quote}
            and
            {quote}$ git ls-remote -h 
             From http:/**********
             2c26dca25a748017ff52b22d81c549506abc12be refs/heads/feature/generic-tag-attribute
             1f43ef826799500cb585273eca3517c8a5eb026a refs/heads/master
            {quote}
            In the first example (mimics Git plugin 3.4.1) I get merge-requests and tags, in the second (mimics 3.5.0) I don't.
            amarruedo Asier Marruedo made changes -
            Description Previous to the update of the git plugin everything was working fine (with Git plugin version 3.4.1).

            After updating to version 3.5.0 now I am not able to build neither merque-requests nor tags, I only see regular branches from the repository (GitLab by the way).

            I've been looking changes made in the code, more precisely changes made in
            {quote}{{src/main/java/jenkins/plugins/git/AbstractGitSCMSource.java}}
            {quote}
            There has been a major change in the way branches are discovered (that can be seen in the function "discoverBranches"):
             * 3.4.1 - In this version, "client.getRemoteBranches" is used, which I guess, corresponds to a "git branch -r". Then it parses the output to get the names of the branches.
             * 3.5.0 - In this version, "client.getRemoteReferences" is used, that corresponds to a "git ls-remote -h". Then, it parses the output to get the names of the branches.

            I've set "Specify ref specs" with the needed values to be able to fetch  the merge-requests and the tags (+refs/merge-requests/*/head:refs/remotes/origin/merge-requests/* and +refs/tags/*:refs/remotes/origin/tags/*).

            If I perform manually both operations ("git branch -r" and "git ls-remote -h") the output is not the same:
            {quote}$ git branch -r
             origin/HEAD -> origin/master

            origin/feature/generic-tag-attribute
             origin/merge-requests/1
             origin/merge-requests/2
             origin/merge-requests/3
             origin/tags/v1.5.0-alpha.0
            {quote}
            and
            {quote}$ git ls-remote -h 
             From http:/**********
             2c26dca25a748017ff52b22d81c549506abc12be refs/heads/feature/generic-tag-attribute
             1f43ef826799500cb585273eca3517c8a5eb026a refs/heads/master
            {quote}
            In the first example (mimics Git plugin 3.4.1) I get merge-requests and tags, in the second (mimics 3.5.0) I don't.
            Previous to the update of the git plugin everything was working fine (with Git plugin version 3.4.1).

            After updating to version 3.5.0 now I am not able to build neither merque-requests nor tags, I only see regular branches from the repository (GitLab by the way).

            I've been looking changes made in the code, more precisely changes made in
            {quote}{{src/main/java/jenkins/plugins/git/AbstractGitSCMSource.java}}
            {quote}
            There has been a major change in the way branches are discovered (that can be seen in the function "discoverBranches"):
             * 3.4.1 - In this version, "client.getRemoteBranches" is used, which I guess, corresponds to a "git branch -r". Then it parses the output to get the names of the branches.
             * 3.5.0 - In this version, "client.getRemoteReferences" is used, that corresponds to a "git ls-remote -h". Then, it parses the output to get the names of the branches.

            I've set "Specify ref specs" with the needed values to be able to fetch  the merge-requests and the tags ('+refs/merge-requests/*/head:refs/remotes/origin/merge-requests/*' and '+refs/tags/*:refs/remotes/origin/tags/*').

            If I perform manually both operations ("git branch -r" and "git ls-remote -h") the output is not the same:
            {quote}$ git branch -r
             origin/HEAD -> origin/master

            origin/feature/generic-tag-attribute
             origin/merge-requests/1
             origin/merge-requests/2
             origin/merge-requests/3
             origin/tags/v1.5.0-alpha.0
            {quote}
            and
            {quote}$ git ls-remote -h 
             From http:/**********
             2c26dca25a748017ff52b22d81c549506abc12be refs/heads/feature/generic-tag-attribute
             1f43ef826799500cb585273eca3517c8a5eb026a refs/heads/master
            {quote}
            In the first example (mimics Git plugin 3.4.1) I get merge-requests and tags, in the second (mimics 3.5.0) I don't.
            markewaite Mark Waite made changes -
            Assignee Mark Waite [ markewaite ]
            markewaite Mark Waite made changes -
            Summary Cannot build mergue requests from Gitlab on a multibranch pipeline job after Git plugin update to version 3.5.0 Cannot build merge requests from Gitlab on a multibranch pipeline job after Git plugin update to version 3.5.0
            joejulian Joe Julian added a comment -

            I, too, am having this problem with 3.5.0.

            joejulian Joe Julian added a comment - I, too, am having this problem with 3.5.0.
            aloehr Andreas Löhr added a comment - - edited

            ... exactly same issue here, but with 3.5.1

            aloehr Andreas Löhr added a comment - - edited ... exactly same issue here, but with 3.5.1
            aloehr Andreas Löhr added a comment -

            ... any plans/ideas to resolve this? I depend on it and have to think of a workaround otherwise

            aloehr Andreas Löhr added a comment - ... any plans/ideas to resolve this? I depend on it and have to think of a workaround otherwise
            aloehr Andreas Löhr made changes -
            Priority Major [ 3 ] Blocker [ 1 ]
            amarruedo Asier Marruedo made changes -
            amarruedo Asier Marruedo added a comment - - edited

            After 10 months sticking to the old git plugin implementation, I decided to try the last version of the plugin (i.e 3.9.1). I observed two things:

            Now, "Discover tags" works as expected (by the time I reported this issue it was semi-implemented, meaning that you could choose that option in the UI, but it wasn´t implemented), and, there is a new option called "Discover other refs".

            After several ours playing with that "Discover other refs" option and other options, I came to this working configuration (against Gitlab)

             

             

            Now I am again able to see on Jenkins, Gitlab tags and merge-requests.

             

            amarruedo Asier Marruedo added a comment - - edited After 10 months sticking to the old git plugin implementation, I decided to try the last version of the plugin (i.e 3.9.1). I observed two things: Now, "Discover tags" works as expected (by the time I reported this issue it was semi-implemented, meaning that you could choose that option in the UI, but it wasn´t implemented), and, there is a new option called "Discover other refs". After several ours playing with that "Discover other refs" option and other options, I came to this working configuration (against Gitlab)     Now I am again able to see on Jenkins, Gitlab tags and merge-requests.  

            As explained previously, version 3.9.1 works after you configure it to fetch merge-requests properly.

            amarruedo Asier Marruedo added a comment - As explained previously, version 3.9.1 works after you configure it to fetch merge-requests properly.
            amarruedo Asier Marruedo made changes -
            Assignee Asier Marruedo [ amarruedo ]
            Resolution Fixed [ 1 ]
            Status Open [ 1 ] Closed [ 6 ]
            amarruedo Asier Marruedo made changes -
            Link This issue is blocked by JENKINS-51134 [ JENKINS-51134 ]
            amarruedo Asier Marruedo made changes -
            Link This issue duplicates JENKINS-46487 [ JENKINS-46487 ]
            lxbzmy Alex Lei added a comment -

            amarruedo

            I came across same problem,

            When I use new git multip branch plugin and add "discover other refs" as your picture shown.

            jenkins can found merge-requests ,but it cannot build correct.

            the workspace checkouted is empty.

            Have any ideas?

             

             

            lxbzmy Alex Lei added a comment - amarruedo I came across same problem, When I use new git multip branch plugin and add "discover other refs" as your picture shown. jenkins can found merge-requests ,but it cannot build correct. the workspace checkouted is empty. Have any ideas?    

            lxbzmy

            I face the same issue. Anyway, this issue is duplicated and you can follow the progress on this related issue JENKINS-46487 (issue that still remains open, which is frustrating).

            On our side, we are moving to Gitlab CI since Jenkins-GItlab integration does not work well.

            amarruedo Asier Marruedo added a comment - lxbzmy I face the same issue. Anyway, this issue is duplicated and you can follow the progress on this related issue JENKINS-46487 (issue that still remains open, which is frustrating). On our side, we are moving to Gitlab CI since Jenkins-GItlab integration does not work well.

            Finall note, If I remeber well, I think I managed to make it work with scripted pipelines (that's why I posted a "solution"), but then, I realized that it would'nt work with declarative pipelines (empty worskpace problem).

            amarruedo Asier Marruedo added a comment - Finall note, If I remeber well, I think I managed to make it work with scripted pipelines (that's why I posted a "solution"), but then, I realized that it would'nt work with declarative pipelines (empty worskpace problem).
            lxbzmy Alex Lei added a comment -

            amarruedo

            Oh.
            I fall in bug.
            Thanks your advise.

            May be I should fix it myself.

            lxbzmy Alex Lei added a comment - amarruedo Oh. I fall in bug. Thanks your advise. May be I should fix it myself.

            People

              amarruedo Asier Marruedo
              amarruedo Asier Marruedo
              Votes:
              3 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: