class GithubScraper {

    @Cacheable("github_issues")
    public GithubIssue fetchGithubIssue(final String owner, final String repo, final String number) {
        Document document;
        try {
            document = jsoup.connect("https://github.com/" + owner + "/" + repo + "/issues/" + number).get();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return GithubIssue.builder()
                          .owner(owner)
                          .repo(repo)
                          .number(number)
                          .solver(solverResolver.resolve(document, GithubId.builder().owner(owner).repo(repo).number(number).build()).orElse(null))
                          .status(statusResolver.resolve(document))
                          .build();
    }

    public  GithubScraper(final JsoupSpringWrapper jsoup, final GithubSolverResolver solverResolver, final GithubStatusResolver statusResolver);

}