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

No commit found for SHA after updating github branch source plugin

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • None
    • Jenkins 2.164.2 on fully updated CentOS 7 host

      Many plugins installed (all updated), I can provide a list if necessary.

      I have been experiencing problems with my pipeline after updating the "GitHub Branch Source" plugin from 2.4.5 to 2.5.0. I'm running the latest Jenkins with all plugins updated. After updating my pipeline is immediately failing with the following error. As soon as I roll the plugin back to 2.4.5 the tests begin passing again. Some have suggested to close and re-open the PR. I tried another test this morning, first I updated the plugin then I pushed up a completely new PR, it failed immediately. I then rolled the GitHub Branch Source plugin back to 2.4.5 and the pipeline completed successfully.  

       

      The commit SHA referenced in the error is not found even when I do a manual call to the API using the same info.  I'm not sure where this commit SHA in the error is coming from. 

       

      The full trace:
       
       
      Pull request #12 opened

      Connecting to https://api.github.com using xxxxxxxx/****** (xxxxxxxxx Github Personal Access Token)

      GitHub has been notified of this commit’s build result

      java.io.FileNotFoundException: https://api.github.com/repos/xxxxxxx/xxxxx/commits/xxxxxxxxxxxxx1db43d9ee079016f549a11a0
      at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:243)
      at com.squareup.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)
      at com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:25)
      at org.kohsuke.github.Requester.parse(Requester.java:625)
      at org.kohsuke.github.Requester.parse(Requester.java:607)
      at org.kohsuke.github.Requester._to(Requester.java:285)
      Caused: org.kohsuke.github.GHFileNotFoundException: {"message":"No commit found for SHA: xxxxxxxxxxxxxxxxdb43d9ee079016f549a11a0","documentation_url":"https://developer.github.com/v3/repos/commits/#get-a-single-commit"}
      at org.kohsuke.github.Requester.handleApiError(Requester.java:699)
      at org.kohsuke.github.Requester._to(Requester.java:306)
      at org.kohsuke.github.Requester.to(Requester.java:247)
      at org.kohsuke.github.GHRepository.getCommit(GHRepository.java:973)
      at org.jenkinsci.plugins.github_branch_source.PullRequestSCMRevision.validateMergeHash(PullRequestSCMRevision.java:118)
      at org.jenkinsci.plugins.github_branch_source.GitHubSCMFileSystem.<init>(GitHubSCMFileSystem.java:91)
      at org.jenkinsci.plugins.github_branch_source.GitHubSCMFileSystem$BuilderImpl.build(GitHubSCMFileSystem.java:296)
      at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:294)
      at org.jenkinsci.plugins.workflow.multibranch.SCMBinder.create(SCMBinder.java:103)
      at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:293)
      at hudson.model.ResourceController.execute(ResourceController.java:97)
      at hudson.model.Executor.run(Executor.java:429)

      Finished: FAILURE

          [JENKINS-57257] No commit found for SHA after updating github branch source plugin

          Liam Newman added a comment -

          silverorange
          The PR above (#12), is that the new PR that you opened? Or is that the old PR?

          Liam Newman added a comment - silverorange The PR above (#12), is that the new PR that you opened? Or is that the old PR?

          James F. added a comment - - edited

          PR #12 is a brand new PR opened for testing after updating the github branch source plugin.  I get the same error when I open any other new PR, until downgrading github branch source plugin to previous verison (2.4.5) 

          James F. added a comment - - edited PR #12 is a brand new PR opened for testing after updating the github branch source plugin.  I get the same error when I open any other new PR, until downgrading github branch source plugin to previous verison (2.4.5) 

          Caleb D added a comment -

          Also just ran into this issue. Jenkins 2.164.2 running in a container inside GKE. Downgrading GitHub Branch Source from 2.5.0 down to 2.4.5 resolved the issue. It seems Jenkins is combining the PR commit with the master branch commit to produce a new commit, which does not exist at GitHub, but Jenkins is making an API call into GitHub for commit info, resulting in the error.

          Caleb D added a comment - Also just ran into this issue. Jenkins 2.164.2 running in a container inside GKE. Downgrading GitHub Branch Source from 2.5.0 down to 2.4.5 resolved the issue. It seems Jenkins is combining the PR commit with the master branch commit to produce a new commit, which does not exist at GitHub, but Jenkins is making an API call into GitHub for commit info, resulting in the error.

          James F. added a comment -

          Caleb that is similar to what I'm seeing.  The commit referenced in the error does not exist as far as I can see, I cannot access it through the github api manually either.  The commit SHA does NOT match the commit SHA shown on the PR in github. 

          James F. added a comment - Caleb that is similar to what I'm seeing.  The commit referenced in the error does not exist as far as I can see, I cannot access it through the github api manually either.  The commit SHA does NOT match the commit SHA shown on the PR in github. 

          Liam Newman added a comment - - edited

          calebd
          Stack trace would be helpful. Also, is this occurring when scanning the PR or from github hook? Has the PR that is failing been around a while untouched or has it been opened/updated recently?

          silverorange, calebd
          The commit sha that 2.5.0 is looking for is the

          {merge_commit_sha} of the PR. If you query the PR via the GitHub API, that is where you will see this SHA. The reason I'm asking you to try closing and reopening the PR in question is that I believe closing and reopening will cause GitHub to generate a new {merge_commit_sha}

          that is valid. Could you please give that a try?

          To be clear, there is still a bug here and I'm working on that, but I want to make sure my theory is correct so I'm fixing the right thing.

          Liam Newman added a comment - - edited calebd Stack trace would be helpful. Also, is this occurring when scanning the PR or from github hook? Has the PR that is failing been around a while untouched or has it been opened/updated recently? silverorange , calebd The commit sha that 2.5.0 is looking for is the {merge_commit_sha} of the PR. If you query the PR via the GitHub API, that is where you will see this SHA. The reason I'm asking you to try closing and reopening the PR in question is that I believe closing and reopening will cause GitHub to generate a new {merge_commit_sha} that is valid. Could you please give that a try? To be clear, there is still a bug here and I'm working on that, but I want to make sure my theory is correct so I'm fixing the right thing.

          James F. added a comment - - edited

          Liam, here are the steps I followed.  Hope this is helpful:

           

          1. Updated github branch source plugin to 2.5.0 again
          2. Closed PR #12 (same PR as mentioned in original post).  
          3. Re-opened PR #12

          In jenkins the closing of the PR spawned a CI check which failed with similar error as before. 

           

          Pull request #12 closed

          Connecting to https://api.github.com using xxxxxxxx/****** (xxxxxxxx Github Personal Access Token)

          GitHub has been notified of this commit’s build result

          java.io.FileNotFoundException: https://api.github.com/repos/xxxxxx/xxxxxxxxx/commits/xxxxxxxxxxxxdbe80d1e82bf97cb9e6ae867
          at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:243)
          at com.squareup.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)
          at com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:25)
          at org.kohsuke.github.Requester.parse(Requester.java:625)
          at org.kohsuke.github.Requester.parse(Requester.java:607)
          at org.kohsuke.github.Requester._to(Requester.java:285)

          Caused: org.kohsuke.github.GHFileNotFoundException: {"message":"No commit found for SHA: xxxxxxxxxxxxc14dbe80d1e82bf97cb9e6ae867","documentation_url":"https://developer.github.com/v3/repos/commits/#get-a-single-commit"}
          at org.kohsuke.github.Requester.handleApiError(Requester.java:699)
          at org.kohsuke.github.Requester._to(Requester.java:306)
          at org.kohsuke.github.Requester.to(Requester.java:247)
          at org.kohsuke.github.GHRepository.getCommit(GHRepository.java:973)
          at org.jenkinsci.plugins.github_branch_source.PullRequestSCMRevision.validateMergeHash(PullRequestSCMRevision.java:118)
          at org.jenkinsci.plugins.github_branch_source.GitHubSCMFileSystem.<init>(GitHubSCMFileSystem.java:91)
          at org.jenkinsci.plugins.github_branch_source.GitHubSCMFileSystem$BuilderImpl.build(GitHubSCMFileSystem.java:296)
          at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:294)
          at org.jenkinsci.plugins.workflow.multibranch.SCMBinder.create(SCMBinder.java:103)
          at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:293)
          at hudson.model.ResourceController.execute(ResourceController.java:97)
          at hudson.model.Executor.run(Executor.java:429)

          Finished: FAILURE

           

          The GitHub PR re-open process did not seem to spawn a new CI run so I added a new commit, the new commit spawned CI which also failed:

           

          Pull request #12 updated

          Connecting to https://api.github.com using xxxxxxxxxx/****** (xxxxx Github Personal Access Token)

          GitHub has been notified of this commit’s build result

          java.io.FileNotFoundException: https://api.github.com/repos/xxxxxxx/xxxxxxxxxxx/commits/xxxxxxxxxxxxc2b7cd41940bbc762409886a5e84ef
          at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:243)
          at com.squareup.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)
          at com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:25)
          at org.kohsuke.github.Requester.parse(Requester.java:625)
          at org.kohsuke.github.Requester.parse(Requester.java:607)
          at org.kohsuke.github.Requester._to(Requester.java:285)

          Caused: org.kohsuke.github.GHFileNotFoundException: {"message":"No commit found for SHA: xxxxxxxxxxx7cd41940bbc762409886a5e84ef","documentation_url":"https://developer.github.com/v3/repos/commits/#get-a-single-commit"}
          at org.kohsuke.github.Requester.handleApiError(Requester.java:699)
          at org.kohsuke.github.Requester._to(Requester.java:306)
          at org.kohsuke.github.Requester.to(Requester.java:247)
          at org.kohsuke.github.GHRepository.getCommit(GHRepository.java:973)
          at org.jenkinsci.plugins.github_branch_source.PullRequestSCMRevision.validateMergeHash(PullRequestSCMRevision.java:118)
          at org.jenkinsci.plugins.github_branch_source.GitHubSCMFileSystem.<init>(GitHubSCMFileSystem.java:91)
          at org.jenkinsci.plugins.github_branch_source.GitHubSCMFileSystem$BuilderImpl.build(GitHubSCMFileSystem.java:296)
          at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:294)
          at org.jenkinsci.plugins.workflow.multibranch.SCMBinder.create(SCMBinder.java:103)
          at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:293)
          at hudson.model.ResourceController.execute(ResourceController.java:97)
          at hudson.model.Executor.run(Executor.java:429)

          Finished: FAILURE

           

           

          James F. added a comment - - edited Liam, here are the steps I followed.  Hope this is helpful:   Updated github branch source plugin to 2.5.0 again Closed PR #12 (same PR as mentioned in original post).   Re-opened PR #12 In jenkins the closing of the PR spawned a CI check which failed with similar error as before.    Pull request #12 closed Connecting to https://api.github.com using xxxxxxxx/****** (xxxxxxxx Github Personal Access Token) GitHub has been notified of this commit’s build result java.io.FileNotFoundException: https://api.github.com/repos/xxxxxx/xxxxxxxxx/commits/xxxxxxxxxxxxdbe80d1e82bf97cb9e6ae867 at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:243) at com.squareup.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210) at com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:25) at org.kohsuke.github.Requester.parse(Requester.java:625) at org.kohsuke.github.Requester.parse(Requester.java:607) at org.kohsuke.github.Requester._to(Requester.java:285) Caused: org.kohsuke.github.GHFileNotFoundException: {"message":"No commit found for SHA: xxxxxxxxxxxxc14dbe80d1e82bf97cb9e6ae867","documentation_url":"https://developer.github.com/v3/repos/commits/#get-a-single-commit"} at org.kohsuke.github.Requester.handleApiError(Requester.java:699) at org.kohsuke.github.Requester._to(Requester.java:306) at org.kohsuke.github.Requester.to(Requester.java:247) at org.kohsuke.github.GHRepository.getCommit(GHRepository.java:973) at org.jenkinsci.plugins.github_branch_source.PullRequestSCMRevision.validateMergeHash(PullRequestSCMRevision.java:118) at org.jenkinsci.plugins.github_branch_source.GitHubSCMFileSystem.<init>(GitHubSCMFileSystem.java:91) at org.jenkinsci.plugins.github_branch_source.GitHubSCMFileSystem$BuilderImpl.build(GitHubSCMFileSystem.java:296) at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:294) at org.jenkinsci.plugins.workflow.multibranch.SCMBinder.create(SCMBinder.java:103) at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:293) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:429) Finished: FAILURE   The GitHub PR re-open process did not seem to spawn a new CI run so I added a new commit, the new commit spawned CI which also failed:   Pull request #12 updated Connecting to https://api.github.com using xxxxxxxxxx/****** (xxxxx Github Personal Access Token) GitHub has been notified of this commit’s build result java.io.FileNotFoundException: https://api.github.com/repos/xxxxxxx/xxxxxxxxxxx/commits/xxxxxxxxxxxxc2b7cd41940bbc762409886a5e84ef at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:243) at com.squareup.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210) at com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:25) at org.kohsuke.github.Requester.parse(Requester.java:625) at org.kohsuke.github.Requester.parse(Requester.java:607) at org.kohsuke.github.Requester._to(Requester.java:285) Caused: org.kohsuke.github.GHFileNotFoundException: {"message":"No commit found for SHA: xxxxxxxxxxx7cd41940bbc762409886a5e84ef","documentation_url":"https://developer.github.com/v3/repos/commits/#get-a-single-commit"} at org.kohsuke.github.Requester.handleApiError(Requester.java:699) at org.kohsuke.github.Requester._to(Requester.java:306) at org.kohsuke.github.Requester.to(Requester.java:247) at org.kohsuke.github.GHRepository.getCommit(GHRepository.java:973) at org.jenkinsci.plugins.github_branch_source.PullRequestSCMRevision.validateMergeHash(PullRequestSCMRevision.java:118) at org.jenkinsci.plugins.github_branch_source.GitHubSCMFileSystem.<init>(GitHubSCMFileSystem.java:91) at org.jenkinsci.plugins.github_branch_source.GitHubSCMFileSystem$BuilderImpl.build(GitHubSCMFileSystem.java:296) at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:294) at org.jenkinsci.plugins.workflow.multibranch.SCMBinder.create(SCMBinder.java:103) at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:293) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:429) Finished: FAILURE    

          Caleb D added a comment - - edited

          In my case, the pull request that I first noticed with this issue existed before updating to 2.5.0. Before 2.5.0 the pipeline timed out while waiting for an approval.

          After upgrading to 2.5.0 the PR couldn't be built because it immediately failed on the first attempt to interact with GitHub. Builds failed regardless of how the build was triggered, via GitHub webhook or as a rerun inside Jenkins.

          I also made a brand new PR with different commits and it failed the same way, both via webhook and rerun attempts.

          Here is a stacktrace with some of the details made private:

          Pull request #1 updated
          14:14:01 Connecting to https://api.github.com using xxxxxx/******
          
          GitHub has been notified of this commit’s build result
          
          java.io.FileNotFoundException: https://api.github.com/repos/xxxxxx/xxxxxx/commits/xxxxxxxxxxxxxxxxxxxxabec08e96270c1de09bb
          	at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:243)
          	at com.squareup.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)
          	at com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:25)
          	at org.kohsuke.github.Requester.parse(Requester.java:625)
          	at org.kohsuke.github.Requester.parse(Requester.java:607)
          	at org.kohsuke.github.Requester._to(Requester.java:285)
          Caused: org.kohsuke.github.GHFileNotFoundException: {"message":"No commit found for SHA: xxxxxxxxxxxxxxxxxxxxabec08e96270c1de09bb","documentation_url":"https://developer.github.com/v3/repos/commits/#get-a-single-commit"}
          	at org.kohsuke.github.Requester.handleApiError(Requester.java:699)
          	at org.kohsuke.github.Requester._to(Requester.java:306)
          	at org.kohsuke.github.Requester.to(Requester.java:247)
          	at org.kohsuke.github.GHRepository.getCommit(GHRepository.java:973)
          	at org.jenkinsci.plugins.github_branch_source.PullRequestSCMRevision.validateMergeHash(PullRequestSCMRevision.java:118)
          	at org.jenkinsci.plugins.github_branch_source.GitHubSCMFileSystem.<init>(GitHubSCMFileSystem.java:91)
          	at org.jenkinsci.plugins.github_branch_source.GitHubSCMFileSystem$BuilderImpl.build(GitHubSCMFileSystem.java:296)
          	at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:294)
          	at org.jenkinsci.plugins.workflow.multibranch.SCMBinder.create(SCMBinder.java:103)
          	at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:293)
          	at hudson.model.ResourceController.execute(ResourceController.java:97)
          	at hudson.model.Executor.run(Executor.java:429)
          Finished: FAILURE
          

          From the pull request event log:

          Changes detected: PR-1 (xxxxxxxxxxxxxxxxxxxx723d39265d8c2206c7f9+xxxxxxxxxxxxxxxxxxxxe1ca98cf39f9c2c75b54 (UNKNOWN_MERGE_STATE) → xxxxxxxxxxxxxxxxxxxx0b218e1baa39a7af38ca+xxxxxxxxxxxxxxxxxxxxe1ca98cf39f9c2c75b54 (xxxxxxxxxxxxxxxxxxxxabec08e96270c1de09bb))
          Scheduled build for branch: PR-1
          

          Where xxxxxxxxxxxxxxxxxxxxe1ca98cf39f9c2c75b54 is the master branch commit.

          The commit xxxxxxxxxxxxxxxxxxxxabec08e96270c1de09bb exists as part of the org but not the PR author's repo fork.

          Caleb D added a comment - - edited In my case, the pull request that I first noticed with this issue existed before updating to 2.5.0. Before 2.5.0 the pipeline timed out while waiting for an approval. After upgrading to 2.5.0 the PR couldn't be built because it immediately failed on the first attempt to interact with GitHub. Builds failed regardless of how the build was triggered, via GitHub webhook or as a rerun inside Jenkins. I also made a brand new PR with different commits and it failed the same way, both via webhook and rerun attempts. Here is a stacktrace with some of the details made private: Pull request #1 updated 14:14:01 Connecting to https://api.github.com using xxxxxx/****** GitHub has been notified of this commit’s build result java.io.FileNotFoundException: https://api.github.com/repos/xxxxxx/xxxxxx/commits/xxxxxxxxxxxxxxxxxxxxabec08e96270c1de09bb at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:243) at com.squareup.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210) at com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:25) at org.kohsuke.github.Requester.parse(Requester.java:625) at org.kohsuke.github.Requester.parse(Requester.java:607) at org.kohsuke.github.Requester._to(Requester.java:285) Caused: org.kohsuke.github.GHFileNotFoundException: {"message":"No commit found for SHA: xxxxxxxxxxxxxxxxxxxxabec08e96270c1de09bb","documentation_url":"https://developer.github.com/v3/repos/commits/#get-a-single-commit"} at org.kohsuke.github.Requester.handleApiError(Requester.java:699) at org.kohsuke.github.Requester._to(Requester.java:306) at org.kohsuke.github.Requester.to(Requester.java:247) at org.kohsuke.github.GHRepository.getCommit(GHRepository.java:973) at org.jenkinsci.plugins.github_branch_source.PullRequestSCMRevision.validateMergeHash(PullRequestSCMRevision.java:118) at org.jenkinsci.plugins.github_branch_source.GitHubSCMFileSystem.<init>(GitHubSCMFileSystem.java:91) at org.jenkinsci.plugins.github_branch_source.GitHubSCMFileSystem$BuilderImpl.build(GitHubSCMFileSystem.java:296) at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:294) at org.jenkinsci.plugins.workflow.multibranch.SCMBinder.create(SCMBinder.java:103) at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:293) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:429) Finished: FAILURE From the pull request event log: Changes detected: PR-1 (xxxxxxxxxxxxxxxxxxxx723d39265d8c2206c7f9+xxxxxxxxxxxxxxxxxxxxe1ca98cf39f9c2c75b54 (UNKNOWN_MERGE_STATE) → xxxxxxxxxxxxxxxxxxxx0b218e1baa39a7af38ca+xxxxxxxxxxxxxxxxxxxxe1ca98cf39f9c2c75b54 (xxxxxxxxxxxxxxxxxxxxabec08e96270c1de09bb)) Scheduled build for branch: PR-1 Where xxxxxxxxxxxxxxxxxxxxe1ca98cf39f9c2c75b54 is the master branch commit. The commit xxxxxxxxxxxxxxxxxxxxabec08e96270c1de09bb exists as part of the org but not the PR author's repo fork.

          James F. added a comment - - edited

          So to add a little more information here.   Forgive me, I'm not an expert on this subject.  Jenkins is looking for the SHA on the GitHub user the repo was forked by (in which the commits were pushed from).  I.e. https://api.github.com/repos/MY-GITHUB-USER

           

          If I query the github API for htps://api.github.com/repos/MY-GITHUB-USER/MY-REPO/pulls I get nothing returned (because there are no PRs under my fork). 

           

          If I query the user (our org's github username) in which the commits were pushed to I get results returned.

           

          Could this issue be related to how the PR is opened from a user's fork? 

           

          I get info about the commit SHA if I query:

           

          api.github.com/repos/MY-ORGS-GITHUB-ACCOUNT/xxxxxx/commits/xxxxxx7cd41940bbc762409886a5e84ef

           

          but not if I query my user account in which the PR was opened from:

           

          api.github.com/repos/MY-GITHUB-USER/xxxxx/commits/xxxxxxxx7cd41940bbc762409886a5e84ef

          James F. added a comment - - edited So to add a little more information here.   Forgive me, I'm not an expert on this subject.  Jenkins is looking for the SHA on the GitHub user the repo was forked by (in which the commits were pushed from).  I.e.  https://api.github.com/repos/MY-GITHUB-USER   If I query the github API for htps://api.github.com/repos/ MY-GITHUB-USER /MY-REPO/pulls I get nothing returned (because there are no PRs under my fork).    If I query the user (our org's github username) in which the commits were pushed to I get results returned.   Could this issue be related to how the PR is opened from a user's fork?    I get info about the commit SHA if I query:   api.github.com/repos/MY-ORGS-GITHUB-ACCOUNT/xxxxxx/commits/xxxxxx7cd41940bbc762409886a5e84ef   but not if I query my user account in which the PR was opened from:   api.github.com/repos/MY-GITHUB-USER/xxxxx/commits/xxxxxxxx7cd41940bbc762409886a5e84ef

          Caleb D added a comment - - edited

          After double checking I can confirm the same behavior on my side as silverorange observed. The commit can be seen from the org repo but not the PR author's repo fork. GitHub Branch Source 2.5.0 looks to be querying against the PR author's repo fork which leads to the error.

          Caleb D added a comment - - edited After double checking I can confirm the same behavior on my side as silverorange observed. The commit can be seen from the org repo but not the PR author's repo fork. GitHub Branch Source 2.5.0 looks to be querying against the PR author's repo fork which leads to the error.

          Liam Newman added a comment - - edited

          calebd silverorange
          Thanks for taking the time to do this.
          Are you working on a private repo? I assume that is why you are redacting repo, org, and commit info.
          I wonder if there's some problem private repo's.

          calebd

          The produced commit xxxxxxxxxxxxxxxxxxxxabec08e96270c1de09bb doesn't exist in GitHub.

          I believe the commit does exist, and this feature depends on it existing.
          Let's see if we can verify that. On a local clone (not on Jenkins):

          git fetch REMOTE pull/PR_ID/head:pr-PR_ID-head
          {{ git fetch REMOTE pull/PR_ID/merge:pr-PR_ID-merge}}

          REMOTE = remote where the PR is (not your fork, but it's upstream)
          PR_ID = the PR number

          Then if you

          {git checkout pr-PR_ID-merge}

          , it should have the SHA. If it doesn't... Well, I'll be very confused.
          (Based on https://help.github.com/en/articles/checking-out-pull-requests-locally but with one modification)

          silverorange

          Jenkins is looking for the SHA on the GitHub user the repo was forked by (in which the commits were pushed from). I.e. https://api.github.com/repos/MY-GITHUB-USER

          Could you be a bit more specific? The query should be going to the repo the pull is in not the forked repo. But what you're saying is that the "not found" is coming from the fork?

          Liam Newman added a comment - - edited calebd silverorange Thanks for taking the time to do this. Are you working on a private repo? I assume that is why you are redacting repo, org, and commit info. I wonder if there's some problem private repo's. calebd The produced commit xxxxxxxxxxxxxxxxxxxxabec08e96270c1de09bb doesn't exist in GitHub. I believe the commit does exist, and this feature depends on it existing. Let's see if we can verify that. On a local clone (not on Jenkins): git fetch REMOTE pull/PR_ID/head:pr-PR_ID-head {{ git fetch REMOTE pull/PR_ID/merge:pr-PR_ID-merge}} REMOTE = remote where the PR is (not your fork, but it's upstream) PR_ID = the PR number Then if you {git checkout pr-PR_ID-merge} , it should have the SHA. If it doesn't... Well, I'll be very confused. (Based on https://help.github.com/en/articles/checking-out-pull-requests-locally but with one modification) silverorange Jenkins is looking for the SHA on the GitHub user the repo was forked by (in which the commits were pushed from). I.e. https://api.github.com/repos/MY-GITHUB-USER Could you be a bit more specific? The query should be going to the repo the pull is in not the forked repo. But what you're saying is that the "not found" is coming from the fork?

          James F. added a comment -

          Liam,

           

          I am indeed working on a private repo in the examples I've provided. 

          To me it looks like the query is going to the user the repo is forked by and the commit does not exist there.   

           

          https://api.github.com/repos/MY-GITHUB-USERNAME/repo/commits/xxxxxx5c2b7cd41940bbc762409886a5e84ef  <-- this is what is shown in the jenkins error. 

           

          A query for that commit results in a not found message from the github api but works if I do the same query against my github ORG's username

           

           

          James F. added a comment - Liam,   I am indeed working on a private repo in the examples I've provided.  To me it looks like the query is going to the user the repo is forked by and the commit does not exist there.      https://api.github.com/repos/MY-GITHUB-USERNAME/repo/commits/xxxxxx5c2b7cd41940bbc762409886a5e84ef   <-- this is what is shown in the jenkins error.    A query for that commit results in a not found message from the github api but works if I do the same query against my github ORG's username    

          James F. added a comment -

          $ git fetch upstream pull/12/head:pr-12-head
          $ git fetch upstream pull/12/merge:pr-12-merge
          $ git checkout pr-12-merge
          Switched to branch 'pr-12-merge'

           

          $ git show
          commit xxxxxxxd41940bbc762409886a5e84ef (HEAD -> pr-12-merge)
          Merge: 4721939 e6f1a82
          Author: xxxxxx <32715263+xxxxxxxx@users.noreply.github.com>
          Date: Tue Apr 30 17:09:11 2019 +0000

          Merge xxxxxxxx5096722968a844f45447 into xxxxxx14faf2f0db4199a06cfb17440c209b7

          James F. added a comment - $ git fetch upstream pull/12/head:pr-12-head $ git fetch upstream pull/12/merge:pr-12-merge $ git checkout pr-12-merge Switched to branch 'pr-12-merge'   $ git show commit xxxxxxxd41940bbc762409886a5e84ef (HEAD -> pr-12-merge) Merge: 4721939 e6f1a82 Author: xxxxxx <32715263+xxxxxxxx@users.noreply.github.com> Date: Tue Apr 30 17:09:11 2019 +0000 Merge xxxxxxxx5096722968a844f45447 into xxxxxx14faf2f0db4199a06cfb17440c209b7

          Liam Newman added a comment -

          silverorange
          Thank you that is really useful information. This is good progress.
          I think I see where the problem is.

          Liam Newman added a comment - silverorange Thank you that is really useful information. This is good progress. I think I see where the problem is.

          James F. added a comment -

          No problem at all, thanks for working on it!  Let me know if you want me to do any more tests/provide any further details about my environment.  Thanks!

          James F. added a comment - No problem at all, thanks for working on it!  Let me know if you want me to do any more tests/provide any further details about my environment.  Thanks!

          Caleb D added a comment -

          My observations match silverorange. bitwiseman, you're right, the merge commit exists. I can even see it in the GitHub web UI at https://github.com/MY-GITHUB-ORG/REPO/commit/xxxxxxxxxxxxxxxxxxxxabec08e96270c1de09bb

          GitHub Branch Source is trying to get commit details by hitting https://api.github.com/repos/MY-GITHUB-USERNAME/REPO/commits/xxxxxxxxxxxxxxxxxxxxabec08e96270c1de09bb when it seems it should be hitting MY-GITHUB-ORG.

          Caleb D added a comment - My observations match silverorange . bitwiseman , you're right, the merge commit exists. I can even see it in the GitHub web UI at https://github.com/MY-GITHUB-ORG/REPO/commit/xxxxxxxxxxxxxxxxxxxxabec08e96270c1de09bb GitHub Branch Source is trying to get commit details by hitting https://api.github.com/repos/MY-GITHUB-USERNAME/REPO/commits/xxxxxxxxxxxxxxxxxxxxabec08e96270c1de09bb when it seems it should be hitting MY-GITHUB-ORG.

          Liam Newman added a comment -

          Liam Newman added a comment - calebd silverorange If you're willing, please try this plugin on your Jenkins. https://drive.google.com/open?id=1v06oUnCiN0KSZF47JXjteByPxIS6FBZ1 It incorporates the code from https://github.com/jenkinsci/github-branch-source-plugin/pull/222

          James F. added a comment -

          Liam,

           

          For sure, I can give it a try tomorrow morning and will report my findings.

          James F. added a comment - Liam,   For sure, I can give it a try tomorrow morning and will report my findings.

          Caleb D added a comment -

          bitwiseman, I tested the provided 2.5.1 snapshot build and it worked as expected. The bug reported by this issue appears to be resolved by that build.

          Thank you for the swift action on this!

          Caleb D added a comment - bitwiseman , I tested the provided 2.5.1 snapshot build and it worked as expected. The bug reported by this issue appears to be resolved by that build. Thank you for the swift action on this!

          James F. added a comment -

          I can confirm that this build appears to have resolved the problem for me as well.  I'll echo what Caleb said, thanks for the quick help with this!

          James F. added a comment - I can confirm that this build appears to have resolved the problem for me as well.  I'll echo what Caleb said, thanks for the quick help with this!

          Liam Newman added a comment - - edited

          silverorangecalebd
          Thanks for the fast turn around on information and testing. Update released - 2.5.1.

          Liam Newman added a comment - - edited silverorange calebd Thanks for the fast turn around on information and testing. Update released - 2.5.1.

            bitwiseman Liam Newman
            silverorange James F.
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: