Fork pull request build did not display in upstream repo

Our project’s setting:

GitHub Status updates: On
Free and Open Source: On
Build forked pull requests: On
Pass secrets to builds from forked pull requests: Off
Only build pull requests: On
Auto-cancel redundant builds: On
Enable pipelines: On

If I configured forked repo in CircleCI to build, then the pull request status will not update when the fork pull request build got passed. However, if I pushed some changes to the fork pull request, the next build will update its status correctly.

If I stop build in forked repo in CircleCI, only rely on main repo, everything back to normal.

Some example pull request

  1. Forked pull request seems stuck:
    https://github.com/home-assistant/home-assistant/pull/22822

  2. It actually got passed in its fork repo:
    https://circleci.com/workflow-run/b82e5fb5-bdc2-4427-9cd1-5f83b6fbc73a

  3. But it cannot be found in upstream repo’s workflow

This happened to me too yesterday at https://github.com/aws-amplify/amplify-js/pull/3059. GitHub reported “waiting for status to be reported” but on the CircleCI side the builds worked fine. See https://circleci.com/gh/justingrant/amplify-js builds #16 and #15. (I can’t post links to them because new users can only post 2 links per post).

I was able to fix it by pushing a new commit to my fork. GitHub got status correctly this time.

Not sure if it’s related but my previous commit (the one whose status was stuck in GitHub was a force-push, not a regular push.

Jason’s behavior is, I think, normal. (that we will only build under the fork if it is followed, and not the parent) The issue with the GitHub Status not getting a link back is a restriction of how that works, but looking for more information.

Justin, was your issue also with a forked repo where the parent was also on CircleCI? (I’ve updated your user status on the forums from new user)

@drazisil - the upstream repo (https://github.com/aws-amplify/amplify-js) uses CircleCI, and my fork (https://github.com/justingrant/amplify-js/tree/fix-sourcemaps) inherits the same CircleCI config as the upstream repo. Let me know if this is the info you were looking for, or if there’s any other help I can provide to help you fix this.

Sorry, what I meant was, if you are following your fork on CircleCI, it will only build on that fork and not the parent, so the parent’s PR will not get status updates.

@drazisil - I didn’t change anything about my CircleCI config (including following) between yesterday, when the status wasn’t updated in GitHub, and today when status was reported properly. The only thing I did today was push another commit, and GitHub integration worked as expected.

The only difference on my end is that my push yesterday was a force-push while today’s was a normal push.

This sounds like a separate issue than the OP. I know that force-pushes tend to sometimes cause issues, but I haven’t heard of anything recently. Can I ask you to open a ticket if this happens again with the payload id from the GitHub webhook settings so we can dig through the logs and see what happened?

You can open for this one too, but given you have pushes after this one it may be harder for you to locate.

Sure, I’ll open a ticket if I see it. Where do I find this ID?

This isn’t the clearest, but I’ll try :slight_smile:

https://github.com/:org/:repo/settings/hooks

Expand the https://circleci.com/hooks/github hook. At the bottom, under recent deliveries, are all the hooks sent to us. (as well as all the ones we send back for statuses, iirc)

OK I’ve got that page open. Which info from that page should I include in my support ticket?

Arg. It’s been a long day, sorry. I’m following the wrong mental troubleshooting flowchart. The build ran on CircleCI. So I don’t need the hook. What we need to figure out is why the job never got a status back to GitHub. it will have a type of status

I didn’t realize this was public, that makes it easier. It doesn’t look like this first commit ever got a status back from us, not even a pending. Checking our logs, I see we sent a status back:

marking build-name=justingrant/amplify-js/15 for project=justingrant/amplify-js (commit=4972fc1af43b067e3b968fe5841bf49ef34bfac2) (build-status=:success) as vcs-state=:success, vcs-description=Your tests passed on CircleCI!

at 2019-04-10T00:32:57.761Z, I have no idea why GitHub didn’t show it or other prior statuses for that commit. Yes, please let us know if this happens again.

Sorry for the prior rabbit hole before.

OK, so should I file a ticket for this instance?

BTW, looks like this isn’t the first time this has happened: GitHub required check stuck on "Waiting for status to be reported"

That thread links to other similar threads.

I think this might have happened during the time we had notifications disabled for troubleshooting. https://status.circleci.com/incidents/l5rrl6588vd0

Please open a ticket if it happens again.

1 Like

However, if I pushed another commit to the pull request, the GitHub status will get update although it still pointed to fork repo’s CircleCI link.

Hmm. Can I ask you to open a ticket so we can dig deeper as well?

Hi,
We have noticed the same behavior thus we do face the same issue, that is the Github status is not updated for a new pull request on the parent repo, when the fork repo uses circleci, until one updates the pull request with a new commit.
Is this issue going to be resolved?

Hi Bertrand. Can you please open a ticket with Job URLs so we can take a look?

done, request 51936

1 Like