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

Support draft pull requests from GitHub

    Details

    • Type: Improvement
    • Status: Closed (View Workflow)
    • Priority: Minor
    • Resolution: Fixed
    • Labels:
      None
    • Environment:
      OpenJDK 1.8.0_212-8u212-b01-1~deb9u1-b01, Jenkins 2,164.2, github-branch-source 2.4.5
      os.arch amd64
      os.name Linux
      os.version 4.15.0-1037-azure
    • Similar Issues:

      Description

      We use GitHub PRs as conditions to build prerelease version of our applications using the following pipeline clause:

      {{when { changeRequest() } }}

      However, if we create the pull requests as draft pull requests (a nice feature for in-progress work), Jenkins does not detect the PR or create any build for it.  We have enabled the traits below, but I cannot find any hints regarding draft PRs:

      <traits>
      <org.jenkinsci.plugins.github_branch_source.BranchDiscoveryTrait>
      <strategyId>1</strategyId>
      </org.jenkinsci.plugins.github_branch_source.BranchDiscoveryTrait>
      <org.jenkinsci.plugins.github_branch_source.OriginPullRequestDiscoveryTrait>
      <strategyId>1</strategyId>
      </org.jenkinsci.plugins.github_branch_source.OriginPullRequestDiscoveryTrait>
      <org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait>
      <strategyId>1</strategyId>
      <trust class="org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustContributors"/>
      </org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait>
      <org.jenkinsci.plugins.github_branch_source.TagDiscoveryTrait/>
      </traits>

        Attachments

          Issue Links

            Activity

            Hide
            asgeirn asgeirn added a comment -

            It would appear the issue is related to the GitHub webhook - after the scheduled repository scan, the PR was detected.

            Show
            asgeirn asgeirn added a comment - It would appear the issue is related to the GitHub webhook - after the scheduled repository scan, the PR was detected.
            Hide
            benlangfeld Ben Langfeld added a comment - - edited

            I'm seeing the following event log entries when a draft PR is created:

            Examining powerhome/nitro-web
            
              Checking branches...
            
              Getting remote branch benlangfeld-patch-1...
            
                Checking branch benlangfeld-patch-1
            
              1 branches were processed
            
              Checking pull-requests...
            
              Getting remote pull request #12231...
            
                Checking pull request #12231
                  ‘Jenkinsfile’ not found
                Does not meet criteria
            
                Checking pull request #12231
                  ‘Jenkinsfile’ not found
                Does not meet criteria
            
              2 pull requests were processed
            
            Finished examining powerhome/nitro-web
            

            The branch does of course contain a Jenkinsfile. When the same diff is used to open a non-draft PR, the Jenkinsfile is found.

            The only difference in the webhook received is the following:

             

            "draft": true,
            "mergeable_state": "draft",
            

            vs

             

             

            "draft": false,
            "mergeable_state": "unknown",
            

            This difference should not cause the divergence in detection of the Jenkinsfile, but I can't figure out what does; the code is a massive jumble of dependencies. Can someone help me unravel it so I can figure out what's going on here?

             

            Show
            benlangfeld Ben Langfeld added a comment - - edited I'm seeing the following event log entries when a draft PR is created: Examining powerhome/nitro-web Checking branches... Getting remote branch benlangfeld-patch-1... Checking branch benlangfeld-patch-1 1 branches were processed Checking pull-requests... Getting remote pull request #12231... Checking pull request #12231 ‘Jenkinsfile’ not found Does not meet criteria Checking pull request #12231 ‘Jenkinsfile’ not found Does not meet criteria 2 pull requests were processed Finished examining powerhome/nitro-web The branch does of course contain a Jenkinsfile. When the same diff is used to open a non-draft PR, the Jenkinsfile is found. The only difference in the webhook received is the following:   "draft" : true , "mergeable_state" : "draft" , vs     "draft" : false , "mergeable_state" : "unknown" , This difference should not cause the divergence in detection of the Jenkinsfile, but I can't figure out what does; the code is a massive jumble of dependencies. Can someone help me unravel it so I can figure out what's going on here?  
            Hide
            synalogik Ebrahim Moshaya added a comment -

            Still having this issue here... We don't use draft pull requests... we keep having to delete the cache and run the scan repository again which is not ideal

            Show
            synalogik Ebrahim Moshaya added a comment - Still having this issue here... We don't use draft pull requests... we keep having to delete the cache and run the scan repository again which is not ideal
            Hide
            jsoref Josh Soref added a comment -
            Show
            jsoref Josh Soref added a comment - Ebrahim Moshaya : that's  JENKINS-54126
            Hide
            twunderlich Thomas Wunderlich added a comment -

            I'll note that draft PRs are currently building for me, so this may have been fixed and can likely be closed.

            Show
            twunderlich Thomas Wunderlich added a comment - I'll note that draft PRs are currently building for me, so this may have been fixed and can likely be closed.
            Hide
            jordanjennings Jordan Jennings added a comment -

            Draft PRs working here as well now. Maybe a complete coincidence, but as soon as we upgraded after the fix for JENKINS-54126 was released everything has been working as expected.

            Show
            jordanjennings Jordan Jennings added a comment - Draft PRs working here as well now. Maybe a complete coincidence, but as soon as we upgraded after the fix for JENKINS-54126 was released everything has been working as expected.

              People

              • Assignee:
                Unassigned
                Reporter:
                asgeirn asgeirn
              • Votes:
                5 Vote for this issue
                Watchers:
                11 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: