url = $url; $this->username = $username; $this->password = $password; } /** @inheritDoc */ protected function preUpdate() { // } /** @inheritDoc */ protected function postUpdate() { // } /** @inheritDoc */ protected function queryOrganizations($page) { $url = Utils::sharpFormat(Utils::urlCombine($this->url, self::API_BASE_URL, self::API_USER_ORG_LIST), ['page'=>$page, 'limit'=>64 ]); return Utils::getJSONWithTokenBasicAuth($this->logger, $url, $this->username, $this->password); } /** @inheritDoc */ protected function queryRepositories($user, $page) { $url = Utils::sharpFormat(Utils::urlCombine($this->url, self::API_BASE_URL, self::API_USER_REPO_LIST), ['user'=>$user, 'page'=>$page, 'limit'=>64 ]); return Utils::getJSONWithTokenBasicAuth($this->logger, $url, $this->username, $this->password); } /** @inheritDoc */ protected function queryBranches($reponame, $page) { $url = Utils::sharpFormat(Utils::urlCombine($this->url, self::API_BASE_URL, self::API_BRANCH_LIST), ['repo'=>$reponame, 'page'=>$page, 'limit'=>64]); return Utils::getJSONWithTokenBasicAuth($this->logger, $url, $this->username, $this->password); } /** @inheritDoc */ protected function queryCommits($reponame, $branchname, $startsha) { $url = Utils::sharpFormat(Utils::urlCombine($this->url, self::API_BASE_URL, self::API_COMMIT_LIST), [ 'repo'=>$reponame, 'sha'=>$startsha, 'limit'=>1024 ]); return Utils::getJSONWithTokenBasicAuth($this->logger, $url, $this->username, $this->password); } /** @inheritDoc */ protected function readRepository($data) { return [ 'full_name' => $data->{'full_name'}, 'html_url' => $data->{'html_url'}, ]; } /** @inheritDoc */ protected function readOrganization($data) { return [ 'id' => $data->{'id'}, 'full_name' => $data->{'full_name'}, 'key' => $data->{'username'}, ]; } /** @inheritDoc */ protected function readBranch($data) { return [ 'name' => $data->{'name'}, 'sha' => $data->{'commit'}->{'id'}, ]; } /** @inheritDoc */ protected function readCommit($data) { return [ 'sha' => $data->{'commit'}->{'tree'}->{'sha'}, 'author_name' => $data->{'commit'}->{'author'}->{'name'}, 'author_email' => $data->{'commit'}->{'author'}->{'email'}, 'committer_name' => $data->{'commit'}->{'committer'}->{'name'}, 'committer_email' => $data->{'commit'}->{'committer'}->{'email'}, 'message' => $data->{'commit'}->{'message'}, 'date' => (new DateTime($data->{'commit'}->{'author'}->{'date'}))->format("Y-m-d H:i:s"), 'parents' => array_map(function ($v){ return $v->{'sha'}; }, $data->{'parents'}), ]; } /** @inheritDoc */ public function toString() { return "[Gitea|".$this->url."|".$this->filter."]"; } }