public Cause getCause() {
if (isPullRequest()) {
JSONObject pullRequest = getPullRequest();
final String label = pullRequest.getJSONObject("head").getString("label");
String number = pullRequest.getString("number");
return new GitHubPullRequestCause(this, getSha(), label, number);
} else {
final String pusherName = payloadJson.getJSONObject("pusher").getString("name");
final String email = payloadJson.getJSONObject("pusher").getString("email");
return new GitHubPushCause(this, getSha(), pusherName, email);