Используя 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 за помощь:)