для проекта мне нужно извлечь данные из множества различных профилей GitHub блокчейна в CSV.
После просмотра API GitHub я смог получить некоторые из необходимых данных, отображаемых в виде TXT /CSV-файлы с использованием команд bash и jq.
Теперь выполнение всего этого вручную, вероятно, займет 7 дней.У меня есть список профилей, которые мне нужно перебрать, сохраненные как CSV.
Список выглядит так -> https://docs.google.com/spreadsheets/d/1lFsewAYI7F8zSw7WPhI9E9WwR8f4G1clw1yjxY3wz_4/edit#gid=0
Мой подход к получению всех имен репо пока похожэто:
sample='[{"name":"0chain"},{"name":"0stateapp"},{"name":"0xcert"}]'
CSV принадлежит здесь, я еще не знал, как перенаправить его к этой переменной, но для целей тестирования этого было достаточно.Если кто-то знает, как это сделать, не стесняйтесь дать подсказку.
for row in $(echo "${sample}" | jq -r '.[] | @base64'); do
_jq()
{
echo ${row} | base64 --decode | jq -r ${1}
}
for GHUSER in $( echo $(_jq '.name')); do
curl -s https://api.github.com/users/$GHUSER/repos?per_page=100 | jq -r '.[]|.full_name'
done
done
Вывод выглядит так:
0chain / 0chain-token 0chain / client-sdk 0chain / docs 0chain / gorocksdb0chain / hostadmin 0chain / rocksdb 0stateapp / ZSCoin 0xcert / 0xcert 0xcert / условные обозначения 0xcert / docs 0xcert / erc721-validator 0xcert / erc721-validator-api 0xcert / erc721-validator-ui 0xcert / 0ecertumum0xcert / ethereum-dex 0xcert / ethereum-erc20 0xcert / ethereum-erc721 0xcert / ethereum-minter 0xcert / ethereum-utils 0xcert / ethereum-xcert 0xcert / ethereum-xcert-builder 0xcert / эфир-церц-фреймворк 0xcert / ethereum-zx Framework-test 0xcert / nonfungiblealliance-www 0xcert / solidity-style-guide 0xcert / techpaper 0xcert / truffle 0xcert / web3.js
Что мне нужно сделать, это использовать все вышеперечисленные значения и создать файл, который содержит:
- Профиль Github (уже хранится в прилагаемом листе)
- Дата доступа к этой информации
- Все репозиториипринадлежит этому профилю (код выше, но отфильтрован)
Теперь интересная часть: история коммитов
- номер коммита (ID)
- номеркоммит (ID)
- Дата коммита
- Описание коммита
- лицо, которое совершило
- проверки пройдены
- проверки не пройдены
Практически то же самое необходимо сделать для закрытых и открытых запросов извлечения, хотя я думаю, что при решении «проблемы» выше решение запросов извлечения является той же стратегией.
Для коммитов i 'сделать что-то вроде этого:
for commits in $( $repoarray) do curl -i https://api.github.com/repos/$commits/commits | jq -r '.[]|.author.lgoin (and whatever els is needed)' done
в основном, этот график здесь необходимо заполнить
https://docs.google.com/spreadsheets/d/1mFXiohiWNXNP8CVztFA1PFF41jn3J9sRUhYALZShsPY/edit?usp=sharing
что мне нужно помочь с:
- сохранение моего вывода из первого цикла в массиве
- цикл через этот массив, чтобы получить количество коммитов
- цикл через этот массив, чтобы получить данные для закрытых запросов pull
- цикл по этому массиву, чтобы получить данные для открытия запросов на извлечение
Извините за мой "нубистский" вопрос.В то время я использую bash / jq и github.api.
Буду признателен за любую помощь.