Files
sugar-cube-client/src/Api/Branches.php
Benjamin Blake 64315d7145 Created two new API requester
+ Created a new Tags API requester to allow us to make tag related API requests
+ Created a new Branches API requester to allow us to make branch related API requests
2020-02-25 12:13:05 -07:00

64 lines
2.0 KiB
PHP

<?php
namespace Gitea\Api;
use GuzzleHttp\Exception\ServerException;
use Gitea\Client;
use Gitea\Collections\ApiItemCollection;
use Gitea\Model\Branch;
use Gitea\Api\Abstracts\AbstractApiRequester;
class Branches extends AbstractApiRequester
{
/**
* Get all tags from a particular repository
* using the repository's name and owner
*
* Example:
* ```
* // Get all tags from a repository owned by a user
* $giteaClient->tags()->fromRepository("username", "test-repository");
*
* // Get all tags from a repository owned by an organization
* $giteaClient->tags()->fromRepository("organizationName", "test-repository");
* ```
*
* @param string $owner The name of the user or organization that owns the repository
* @param string $repository The name of the repository
* @author Benjamin Blake (sitelease.ca)
*
* @return ApiItemCollection
*/
public function fromRepository(string $owner, string $repository)
{
$client = $this->getClient();
$repositoryCollection = new ApiItemCollection();
try {
$response = $this->get("repos/$owner/$repository/branches");
$statusCode = $response->getStatusCode();
$body = $response->getBody();
if ($statusCode == 200) {
$jsonItemList = json_decode($body, true);
if (count($jsonItemList) > 0) {
foreach ($jsonItemList as $jsonItem) {
$encodedItem = json_encode($jsonItem);
$itemObject = Branch::fromJson(
$this->getClient(),
$this,
json_decode($encodedItem)
);
$repositoryCollection->addItem($itemObject, $itemObject->getName());
}
}
}
return $repositoryCollection;
} catch (ServerException $serverError) {
return $repositoryCollection;
}
}
}