Используя curl, как загрузить a.diff-файл из частного репозитория на github

у меня есть частное РЕПО на github, принадлежащее организации. Для данного запроса на вытягивание есть url-адрес файла diff, например:

https://github.com/<ORG>/<REPO>/pull/<PR_NUMBER>.diff

но РЕПО является частным, так как я могу загрузить этот файл с помощью curl? Я создал "личный токен доступа", но немного потерял, как его использовать.

Я попытался это:

curl -H 'Authorization: token <TOKEN>' -H 'Accept: application/vnd.github.v3.raw' -O -L "https://github.com/<ORG>/<REPO>/pull/<PR_NUMBER>.diff"

но все, что было отправлено обратно, было "не найдено".

2 ответов


вы можете использовать url запроса pull из api.github.com с другим типом контента accept. например,

curl -H 'Authorization: token mytoken' -H "Accept: application/vnd.github.v3.diff" https://api.github.com/repos/orgname/repo/pulls/1234

обратите внимание: пожалуйста, удалите ".суффикс "diff" из url-адреса.


на по API на GitHub возвращает 404 для всех несанкционированных запросов - в основном, чтобы скрыть существование / несуществование данных пользователя / организации по запрошенному URL-адресу. Итак, 404 вы возвращаетесь мая на самом деле 401.

при отправке запроса в api GH через curl вы должны использовать u возможность отправить свой токен, а не Authorization заголовок, в результате чего следующий запрос:

curl -u <USERNAME>:<TOKEN> \ -H 'Accept: application/vnd.github.v3.raw' -O -L \ "https://github.com/<ORG>/<REPO>/pull/<PR_NUMBER>.diff"