Используя Githup api - -i нужно найти наиболее совершающего человека за последний год с помощью java-кода

Таким образом я вытащил все репозитории:

public static void getAllCommitUrlReader() throws MalformedURLException, IOException {

    HttpURLConnection httpURLConnection = (HttpURLConnection) new URL(
            "https://api.github.com/repositories?since="+ page)
                    .openConnection();
    httpURLConnection.addRequestProperty("User-Agent",
            "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36");

    BufferedReader in = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));

    String line = "", inputLine;
    while ((inputLine = in.readLine()) != null) {

        line += "\n" + inputLine;
        //System.out.println(inputLine);
    }

    in.close();
Arrays.stream(line.split("\"full_name\":")).skip(1).map(av-> av.split(",")[0]).forEach(av -> {String owner = av.substring(2, av.indexOf("/")).trim();
String repoName = av.substring(av.indexOf("/")+1,av.length()-1).trim();
searchCommit(owner,repoName);
});

//Arrays.stream(line.split("\"id\":")).skip(1).map(av-> av.split(",")[0]).forEach(av -> {System.out.println(av.valueOf(av.length()));
//;
//});
   //  int total  = Arrays.stream(line.split("\"total\":")).skip(1).mapToInt(av -> Integer.parseInt(av.split(",")[0])).sum();
   //  System.out.println(total);
}

Таким образом я получил все коммиты из всех репозиториев:

public static void searchCommit(String owner, String repoName) {
    final int size = 25;

    final RepositoryId repo = new RepositoryId(owner, repoName);
    final String message = "   {0} by {1} on {2}";
    final CommitService service = new CommitService();
    int pages = 1;
     Calendar cal = Calendar.getInstance();
        cal.set(2019, 1, 1);
        Date since = cal.getTime();
        cal.set(2020, 1, 1);
        Date until = cal.getTime();

    for (Collection<RepositoryCommit> commits : service.pageCommits(repo,size)) {
        System.out.println("Commit Page " + pages++);
        for (RepositoryCommit commit : commits) {
            String sha = commit.getSha().substring(0, 7);
            String author = commit.getCommit().getAuthor().getName();
            Date date = commit.getCommit().getAuthor().getDate();
            if(date.after(since) && date.after(until)) {

             System.out.println(MessageFormat.format(message, sha, author, date));

            }

        }
    }
}

Сначала у меня два вопроса: вот как отсортировать обязательства по лицам. Итак, x человек совершил до y. Второй вопрос -> Но вот и хорошие новости: для аутентифицированных запросов устанавливается более высокий предел скорости. Ознакомьтесь с документацией для получения более подробной информации. какое решение. Ty за помощь:)

0 ответов

Другие вопросы по тегам