Как экспортировать проблемы GitHub в Excel?

Как я могу экспортировать все мои проблемы из репозитория Enterprise GitHub в файл Excel? Я попытался найти ответы на многие ответы на переполнение стека, но не удалось. Я также пробовал это решение (экспортировал Git проблемы в CSV и получал ошибки "ImportError: No module named requests". Есть ли какой-либо инструмент или какой-либо простой способ экспортировать все проблемы с Excel?

Ответ 1

Чтобы экспортировать из частного репо с помощью curl, вы можете запустить следующее:

curl -i "https://api.github.com/repos/<repo-owner>/<repo-name>/issues" -u "<user-name>"

Если пользователь имеет доступ к частному репо. Затем вы можете преобразовать полученный json в csv с помощью любого подходящего конвертера, как предложено в других ответах.

Найти ссылку на подтверждение здесь.

Ответ 2

Если это одноразовая задача, вы можете играть с GitHub WebAPI. Он позволяет экспортировать проблемы в формате JSON. Затем вы можете преобразовать его в Excel (например, используя онлайн-конвертер).

Просто откройте следующий URL-адрес в браузере, заменив {owner} и {repo} на реальные значения:

https://api.github.com/repos/{owner}/{repo}/issues?page=1&per_page=100

Ответ 3

Я попробовал методы, описанные в других комментариях относительно экспорта проблем в формате JSON. Работало нормально, но форматирование как-то облажалось. Затем в справке Excel я обнаружил, что он может напрямую обращаться к API-интерфейсам и аккуратно загружать данные из ответа JSON в мои листы Excel.

Google, которые я использовал, чтобы найти нужную мне помощь, был "excel power query web.content GET json". Я нашел видео How To Excel, которое очень помогло.

URL, который работал в запросе Excel (как и в других сообщениях):

https://api.github.com/repos/{owner}/{repo}/issues?page=1&per_page=100

Лично я также добавляю параметр & state = open, в противном случае мне нужно запросить сотни страниц. В какой-то момент я достиг лимита GitHub для неаутентифицированных вызовов API/час для моего IP-адреса.

Ответ 4

К сожалению, github.com не делает это проще.

В то же время, если у вас есть jq и curl, вы можете сделать это в две строки, используя что-то вроде следующего примера, который выводит номер выпуска, заголовок и метки (теги) и работает также для частных репозиториев (если вы не хотите чтобы отфильтровать по метке, просто удалите labels={label}& часть URL). Вам нужно будет заменить владельца, репо, метку и имя пользователя:

echo "number, title,tags" > issues.csv
curl "https://api.github.com/repos/{owner}/{repo}/issues?labels={label}&page=1&per_page=100" -u "username" \
| jq -r '.[] | [.number, .title, (.labels|map(.name)|join("/"))]|@csv' >> issues.csv

Обратите внимание, что если ваши данные превышают 1 страницу, это может потребовать дополнительных звонков

Ответ 5

Оболочка командной строки hub для github делает это довольно просто.

Вы можете сделать что-то вроде этого:

$ hub issue -f "%t,%l%n" > list.csv

что дает вам что-то вроде этого

$ more issue.csv

Issue 1 title, tag1 tag2
Issue 2 title, tag3 tag2
Issue 3 title, tag1

Ответ 6

Export Pull Requests может экспортировать проблемы в файл CSV, который можно открыть в Excel. Он также поддерживает GitLab и Bitbucket.

Из его документации:

Экспортируйте открытые PR и вопросы в sshaw/git-link и sshaw/itunes_store_transporter:

epr sshaw/git-link sshaw/itunes_store_transporter> pr.csv

Экспортировать открытый запрос извлечения, не созданный sshaw в padrino/padrino-framework:

epr -x pr -c '! sshaw' padrino/padrino-framework> pr.csv

У него есть несколько вариантов фильтрации того, что экспортируется.