APIs e Microsserviços

4 mai, 2018

Acessando dados dos repositórios GitHub com o PHP GitHub API

Publicidade

Às vezes é meio chato ter que acessar o GitHub toda vez para ver os status dos seus repositórios. Uma vez tivemos que utilizar a API diretamente para fazer uma ação, onde tínhamos que verificar as contribuições de algumas contas do GitHub em repositórios específicos.

No artigo de hoje vamos aprender a capturar os dados de repositórios GitHub em PHP utilizando o PHP GitHub API.

Bem, vamos colocar a mão na massa. Primeiramente vamos criar uma pasta GitHub e dar um:

composer require knplabs/github-api php-http/guzzle6-adapter

Agora vamos explorar a biblioteca um pouco. Verificaremos os repositórios do próprio Knplabs e salvaremos o código como repositories.php:

<?php

require_once('vendor/autoload.php'); //autoload do composer

use Github\Client; //usando a classe client do Github

$client = new Client(); //instanciando o client

$repositories = $client->api('user')->repositories('KnpLabs'); 

//retornando os repositórios do KnpLabs

foreach($repositories as $repository) //iterando os repositórios
{ 
	print ($repository['full_name'] . PHP_EOL); //exibindo os nomes dos repositórios
}

<?php

require_once('vendor/autoload.php'); //autoload do composer

use Github\Client; //usando a classe client do Github

$client = new Client(); //instanciando o client

$followers = $client->api('user')->followers('pokemaobr'); 

//retornando os repositórios do KnpLabs

foreach($followers as $follower) //iterando os repositórios
{ 
	print ($follower['login'] . PHP_EOL); //exibindo os nomes dos repositórios
}

O interessante da biblioteca é que ela abstrai quase toda a API do GitHub. Então, por exemplo, você pode retornar os repositórios com estrelas de uma conta GitHub dando um $client->api(‘user’)->starred($conta);

Caso queira os dados de uma conta em específico:

$client->api(‘user’)->show($conta);

E há muitos métodos para abstrair: usuários, repositórios, gists e etc. A biblioteca é muito bem documentada em seu código, então é só abrir o código no repositório da biblioteca que é sucesso.

Um grande abraço, pessoal! Até a próxima.