Для корректного пожирания пуллреквестов необходимо склонировать данный репозиторий и проинсталлировать Node.js.
В коде используется await, потому пусть нода будет посвежее.
Потом
npm i
или
yarn i
Для поджирания обновлений достаточно выполнить:
node morj
Для последующей генерации результирующей таблицы:
node normalize
У гитхаба есть лимит на число запросов. (60 в час). Если будет не хватать — реализую авторизацию по токену
- МОРЖ запрашивает страницы пулл реквестов из апи и сохраняет полученные данные в папку pulls.
- МОРЖ читает каталог pulls перед запросами, а в нём читает файлы. Если в файле меньше 30 пулл-реквестов, то файл будет перезапрошен из API.
- Собрав все пулл реквесты с МОРЖа слетела шляпа и ОНа начинает запрашивать диффы по по примерно такому адресу: https://patch-diff.githubusercontent.com/raw/developers-against-repressions/case-212/pull/231.diff
- Диффы сохраняются в директорию diffs. Если дифф уже есть, то он не будет запрошен снова.
- Читаем все файлы из каталога diffs и директории pulls
- Сдабриваем диффы датой из информации об этом диффе из пулла
- Ищем строки начинающиеся с плюсика. Но чтоб он был один.
- В строке должна быть вертикальная палка
- Если взять кусок за или после этой палки и отбросить из него все символы кроме алфавитных — должно хоть что-то остаться
- Фамилией не должна быть «Фамилия»
- Данные складываем в хэш-объект чтоб исключить дубликаты. Попутно если обнаруживаем что такое Имя уже было, а должность отличается — пишем об этом в консоль. В итоговом варианте используется последний вариант (по id реквеста)
- Разуплотняем хэщ в массив и сортируем его по дате.
- Вычисляем максимальный размер ФИО и Информации и занимаемся аски артом
- Сохраняем полученную таблицу в файл out.md в исходной папке