CIs run against an arbitrary commit, of all the CI servers I've worked with only one will trigger a new build specifically on the creation of a PR, travis.

In Travis you're guaranteed to have all the right ENV vars setup but only on that /pr build, the /push one is a _maybe_.
For example, Circle. A build is triggered from a commit push, then later it becomes connected to the PR, so you get builds like this: https://circleci.com/gh/artsy/eigen/2632
Which shows the PR connect on the right:

where it does't make the ENV vars correct

This makes Danger not check

Ideally there should be a way to look up, at runtime vs at CI build setup time to pull out the head/base commits.
https://github.com/danger/danger/pull/292 should help with this
I'm still seeing this - https://circleci.com/gh/artsy/eigen/3108
@orta Is it fixed by that? I have an associated PR, and no Danger comment?
Turns out, there are a few bugs on Circle's side:

@orta 😞 😢 I'm sure you've looked, but is there nothing that gets returned from the Circle API (assuming that is how you are hooking into Circle, I haven't read the code for Danger yet, just tried to get setup today) that would allow Danger to integrate and run?
There's a few workarounds inside Danger ( Circle is definitely our most complicated CI service because of this - https://github.com/danger/danger/search?q=circle&type=Issues&utf8=✓) which uses their API - you can give that a shot - docs are in the circle section of danger.systems.
I am also seeing something that seems related to this on Jenkins when using the "Github Pull Request Builder" Plugin along with the "Github Folder" plugin
I did something like this for GitLab to fake MR environment (because our Jenkins builder is not exposed to the Internet and GitLab instance cannot communicate with it).
Basically, it tries to fetch MR json by branch name.
I can share/contribute if needed.
Most helpful comment
https://circleci.com/changelog/
might be fixed with this