/**
  * 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;
 }
Example #2
0
 /**
  * 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;
 }
Example #3
0
 /**
  * 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;
 }