private function getCommits($org, $repo, $version)
    {
        $url = sprintf(
            self::GITHUB_COMPARE_ENDPOINT,
            $org,
            $repo,
            $version
        );

        $res = json_decode($this->http->get($url, [
            'auth' => [null, $this->token]
        ])->getBody(), true);
        $commits = [];
        foreach ($res['commits'] as $commit) {
            $message = $commit['commit']['message'];

            $description = explode("\n", $message)[0];
            $matches = [];
            if (preg_match('/(.{0,})\(\#(\d{1,})\)/', $description, $matches) === 1) {
                $message = trim($matches[1]);
                $prNumber = isset($matches[2]) ? $matches[2] : null;
            } else {
                $prNumber = $this->askForPrNumber($message);
            }

            if (strpos($message, '[CHANGE ME]') === 0 && $prNumber) {
                $message = $this->getMessageFromPullRequest($org, $repo, $prNumber);
            }

            $commits[] = [
                'url' => $commit['url'],
                'htmlUrl' => $commit['html_url'],
                'message' => $message,
                'reference' => $prNumber,
                'hash' => $commit['sha']
            ];
        }

        return $commits;
    }