/** * Return array of \Ace\RepoManUi\Remote\Repository objects * * @param string $user * @return array */ public function getRepositories(string $user) : array { try { $response = $this->client->request('GET', $this->repo_man_host . '/repositories?owner=' . $user, ['headers' => ['Accept' => 'application/json']]); $repositories = []; foreach (json_decode($response->getBody(), true) as $data) { $repository = new Repository($data['url'], $data['description'], $data['lang'], $data['private']); $repository->setTimezone($data['timezone']); $repository->setActive($data['active'] == '1'); $repositories[$repository->getFullName()] = $repository; } return $repositories; } catch (TransferException $ex) { throw new UnavailableException($ex->getMessage()); } }
/** * Return array of \Ace\RepoManUi\Remote\Repository objects * @param string $user * @param string $timezone * @return array * @throws UnavailableException */ public function getRepositories(string $user, string $timezone) : array { try { $token = $this->token_service->getToken($user); $response = $this->client->request('GET', $this->git_api_host . '/user/repos', ['query' => ['access_token' => $token], 'headers' => ['Accept' => 'application/json']]); $repositories = []; foreach (json_decode($response->getBody(), true) as $data) { $description = $data['description'] ?: ''; $language = $data['language'] ?: ''; $private = (bool) $data['private']; $repository = new Repository($data['html_url'], $description, $language, $private); $repository->setTimezone($timezone); $repositories[$repository->getFullName()] = $repository; } return $repositories; } catch (TransferException $ex) { throw new UnavailableException($ex->getMessage()); } }
public function testGetName() { $repository = new Repository('https://github.com/timr/repo', 'A repository', 'JavaScript', false); $this->assertSame('repo', $repository->getName()); }