pull_requests = collect(); $this->parameters = get_parameters(); } public function loadStatus($pull_request_id) { dispatch(new ContainerStatusJob( application: $this->application, container_name: generate_container_name($this->application->uuid, $pull_request_id), pull_request_id: $pull_request_id )); } protected function set_deployment_uuid() { $this->deployment_uuid = new Cuid2(7); $this->parameters['deployment_uuid'] = $this->deployment_uuid; } public function load_prs() { ['rate_limit_remaining' => $rate_limit_remaining, 'data' => $data] = get_from_git_api($this->application->source, "/repos/{$this->application->git_repository}/pulls"); $this->rate_limit_remaining = $rate_limit_remaining; $this->pull_requests = $data; } public function deploy(int $pull_request_id) { try { $this->set_deployment_uuid(); ApplicationPreview::create([ 'application_id' => $this->application->id, 'pull_request_id' => $pull_request_id, ]); queue_application_deployment( application_id: $this->application->id, deployment_uuid: $this->deployment_uuid, force_rebuild: true, pull_request_id: $pull_request_id, ); } catch (\Throwable $th) { return general_error_handler($th, $this); } } public function stop(int $pull_request_id) { try { $container_name = generate_container_name($this->application->uuid, $pull_request_id); ray('Stopping container: ' . $container_name); instant_remote_process(["docker rm -f $container_name"], $this->application->destination->server, throwError: false); dispatch(new ContainerStatusJob( application: $this->application, container_name: $container_name, pull_request_id: $pull_request_id )); } catch (\Throwable $th) { return general_error_handler($th, $this); } } }