Why is Bitrise not reporting build results on my GitHub pull requests?

I’ve set up my Bitrise project using GitHub webhooks, is this not sufficient for GitHub build status reporting for pull requests?

I have not given Bitrise full read/write access to all my private repositories. Mainly because I don’t want to give Bitrise write access to my repositories, and I don’t want Bitrise to have access to client code in our organization that is not mine to give access to.

1 Like

Hi,

Unfortunately no, the webhook you configure on GitHub doesn’t allow any communication back, from bitrise.io to GitHub, it only registers events to be pushed from GitHub to bitrise.io.

In order for bitrise.io to be able to push back build statuses to your git hosting service (GitHub, Bitbucket, GitLab, …) bitrise.io requires authentication.

To allow/authenticate bitrise.io to push back build status infos (or perform other operations, like auto-registering an SSH key or Webhook) you have to specify a Service credential User on the Team tab of the app on bitrise.io

There’s also a “test the connection” button if you specified a user, which can help you debugging connection issues. Once you select a user in the dropdown please click this “Test …” button to make sure the selected user’s connection can be used for sending back the build status for the PR/commit.

When bitrise.io communicates with a third party service’s API (e.g. to push back the build status) it’ll use the specified Service credential User’s related connections. E.g. to push back build status to GitHub it’ll try to use the Service credential User’s connected GitHub account to do that.

This means that the specified Service credential User have to have a connected GitHub/Bitbucket/… account on bitrise.io. You connect an account to your bitrise.io account on your Account Settings page, on the left side, by enabling the related service’s toggle:

Once the account is connected bitrise.io can start to use that “connection” to communicate with the service.

2 Likes

In case of GitHub there’s one more possibility, although that won’t give you the exact same experience: you add the GitHub Status step to your workflow (you can add more than one, if you want to), and configure that step.

The step doesn’t require any connected account on bitrise.io, only a GitHub Access Token with repo:status (or repo) scope. For more info see the step’s description.

What this step can’t do what the bitrise.io integrated status can is to report the status if the build was aborted before the step would run. It can run even if previous steps failed, so it can report both success and failure, but if the build is aborted before the step would run it can’t report back the fact of abort.

@viktorbenei,
How that feedback to the PR works?

Im thinking about running tests when a PR is created and Bitrise would send the results back to Github, if the tests passed or not.

Do you have any example of that?

@hearst you should just connect a GitHub account to your bitrise.io account which can be used for communicating back to GitHub (the feedback is sent via the official GitHub API).

Please follow this troubleshooting guide http://devcenter.bitrise.io/faq/github-pull-request-status-troubleshooting/, that should help! Highlight: as mentioned in this troubleshooting guide, you can find a “connection tester” feature on the Team tab of the app (on bitrise.io). If that returns an “OK” / “green” response there then the connection is :+1: and bitrise.io will be able to send the status to GitHub.

I have followed all the tips in the FAQ, my builds are kicked off fine, and the status is reported from AppVeyor just fine, but not from BitRise. Any additional thoughts/steps?

Never mind, this is most likely related to: Github webhook not receiving build status