Как просмотреть репозитории, созданные вами в Github, через командную строку? [закрыто]

Как мне увидеть репозитории, созданные вами в Github, через командную строку?

1
задан 18 October 2017 в 22:44

1 ответ

Можно сделать HTTP-запрос GET к REST GitHub API для запросов списка репозиториев, принадлежавших данному пользователю. Я буду использовать wget для запроса, который должен прибыть предварительно установленный в Ubuntu. Альтернативный инструмент мог быть, например. curl.

Ответ является довольно большим объектом JSON, поэтому я решил использовать jshon (установите его с sudo apt install jshon) как синтаксический анализатор JSON, чтобы только извлечь названия репозитория. Вы могли также просто посмотреть на полный ответ или использовать любые другие методы парсинга, которые Вы любите. Если это только для читателей, и Вы не заботитесь очень о форматировании, просто передавая его по каналу через grep full_name должен уже быть достаточным.


Так, давайте запустимся с команды. Для получения списка моего общедоступного GitHub repos (имя пользователя является "ByteCommander", очевидно), я выполнил бы это:

wget -qO- 'https://api.github.com/users/ByteCommander/repos' | jshon -a -e 'full_name' -u

Необходимо получить некоторый вывод, подобный тем строкам (еще многие...):

ByteCommander/AdventOfCode
ByteCommander/ByteCommander.github.io
ByteCommander/ChatExchange6
ByteCommander/dynamodb-local

Команда выше может быть разломана на Запрос HTTP, сделанный wget, который произвел его ответ на STDOUT и переданный по каналу в синтаксический анализатор JSON, который извлекает релевантную информацию.

wget -qO- 'https://api.github.com/users/ByteCommander/repos'

Это, очевидно, отправляет запрос к данному URL. Замена ByteCommander с Вашим соответствующим именем пользователя GitHub. -qO- опции, которые изменяют как wget производит ответ. Это коротко для -q (тихий, никакой вывод прогресса/состояния) и -O - (выходной файл является STDOUT). Читайте больше об этом в man wget.

jshon -a -e 'full_name' -u

Это делает jshon чтение синтаксического анализатора данные JSON из STDIN (где wgetвывод передается по каналу), и анализирует его согласно указанным опциям. -a применяет следующую операцию на все элементы массива ответа: -e 'full_name', который извлекает "full_name" свойство объектов к этому относятся. -u наконец просто удаляет кавычки вокруг значений извлеченной строки. Читайте больше об этом в man jshon.

Можно найти подробное объяснение GitHub v3 REST API и особенно конечной точки пользовательских репозиториев списка и ее формата ответа JSON в их официальной документации.

1
ответ дан 7 December 2019 в 15:29

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

Похожие вопросы: