Я пытаюсь получить все измененные строки, которые пользователь сделал в своей учетной записи Github. Я сделал небольшой PHP-скрипт с несколькими циклами foreach(). Проблема в том, что я каждый раз получаю ошибку 403 от Github API.
Я уже пытался изменить заголовок. Я делал это:
$get_options = array('http' => array('user_agent' => 'Dev-Purpose'));
$context = stream_context_create($options);
$jsonurl = "https://api.github.com/users/" . $github_user . "/repos";
$json = file_get_contents($jsonurl, false, $context);
Поэтому я изменил на это:
$get_options = [
'http' => [
'method' => 'GET',
'header' => [
'User-Agent: e'
]
]
];
$context = stream_context_create($get_options);
$jsonurl = "https://api.github.com/users/" . $github_user . "/repos";
$json = file_get_contents($jsonurl, false, $context);
Но это не решило проблему. Я все еще получаю эту ошибку 403.
Я делаю это, чтобы получить все измененные строки из учетной записи Github:
foreach ($repositeries as $id => $value) {
$repo_name = $value["name"];
$jsonurl = "https://api.github.com/repos/" . $github_user . "/" . $repo_name . "/commits";
$json = file_get_contents($jsonurl, false, $context);
$commits = json_decode($json, true);
foreach ($commits as $id => $value) {
$sha = $value["sha"];
$jsonurl = "https://api.github.com/repos/" . $github_user . "/" . $repo_name . "/commits/" . $sha;
$json = file_get_contents($jsonurl, false, $context);
$datas = json_decode($json, true);
/* Adding lines to vars */
$totalLines = $totalLines + $datas["stats"]["total"];
$addedLines = $addedLines + $datas["stats"]["additions"];
$deletedLines = $deletedLines + $datas["stats"]["deletions"];
}
}
Ожидаемые результаты — это все статистические данные из Github Commits API.
При первом запуске скрипта сработали самые первые циклы, и у меня получается что-то вроде 195 за $totalLines. Но после просмотра моего локального сервера PHP я увидел 403 ошибки для других циклов.
Кто-нибудь знает, как я могу это исправить, чтобы я мог получать все измененные строки из определенной учетной записи Github?
Большое спасибо за ваше время
Мне непонятно, отправляете ли вы заголовок авторизации с каждым запросом. Ответ HTTP 403 Forbidden предполагает, что вы пытаетесь получить доступ к частному репозиторию.






Я хотел бы добавить, что этот скрипт очень долго выполняется...