экспортировать коммиты / имена github в CSV с помощью bash & jq - PullRequest
0 голосов
/ 26 февраля 2019

для проекта мне нужно извлечь данные из множества различных профилей 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.

Буду признателен за любую помощь.

...