/** * Get all repositories of a specific name. * * @param string $repository * @param bool $hooked * * @return \Illuminate\Database\Eloquent\Collection */ protected function getRepositories($repository, $hooked = false) { list($vendor, $package) = explode('/', $repository, 2); $repositories = Repository::query()->where('vendor', $vendor)->where('package', $package)->{'where' . ($hooked ? 'NotNull' : 'Null')}('hook_id')->get(); if (!$repositories || $repositories->count() === 0) { throw new NotFoundHttpException(); } return $repositories; }
/** * Removes a webhook from a repository. * *@param \App\Models\User\User $user * @param \App\Models\Repository\Repository $repository * * @return bool */ public function remove(User $user, Repository $repository) { $this->delete($user, '/repos/' . $repository->getRouteKey() . '/hooks/' . $repository->hook_id); $repository->update(['hook_id' => null]); return true; }
/** * Gets a download link to a repository's specific tag. * * @param \App\Models\Repository\Repository $repository * @param string $tag * * @return string|null */ public function link(Repository $repository, $tag) { $tag = strlen($tag) === 0 ? env('GIT_BRANCH') : $tag; return 'repos/' . $repository->getRouteKey() . '/zipball/' . $tag; }