Github-API mit PHP anzapfen 11.07.2017

Für ein handliches Monitoring will ich die aktuellen Versionen von TYPO3 und KirbyCMS anzeigen lassen. Bei Typo3 geht das recht einfach über get.typo3.org. Bei Kirby muss man sich das ganze über Github holen. Ich möchte mir die letzten Tags holen ...

$kirbyVersion = file_get_contents('https://api.github.com/repos/getkirby/starterkit/tags');
$kirbyJson = json_decode($kirbyVersion);

 

Beim direkten Aufruf von https://api.github.com/repos/getkirby/starterkit/tags klappt alles gut, über php aber nicht mehr. Dort wird man mit dem Fehler 403 raus geworfen.

Die Lösung ist ganz einfach. Github will euer user_agent. Das ganze sieht dann so aus.

 

$agent = array('http' => array('user_agent'=> $_SERVER['HTTP_USER_AGENT']));
$context  = stream_context_create($agent);

$tags = file_get_contents('https://api.github.com/repos/getkirby/starterkit/tags');
$json = json_decode($tags);

 

Und schon kann man sich über php alles abholen, was man benötigt.

 

echo "<strong>Version: " . $json[0]->name . "</strong><br />";
echo "Download: <a href='" . $json[0]->tarball_url . "'>Tarball</a>";

 

Die Lösung dazu habe ich hier gefunden.