<?php namespace App\Jobs\Site; use App\Jobs\Job; use App\Models\Site; use App\Models\SourceControl; use Throwable; class UpdateSourceControlsRemote extends Job { protected SourceControl $sourceControl; /** * Create a new job instance. * * @return void */ public function __construct(SourceControl $sourceControl) { $this->sourceControl = $sourceControl; } /** * Execute the job. * * @throws Throwable */ public function handle(): void { $sites = Site::query() ->where('user_id', $this->sourceControl->user_id) ->where('source_control', $this->sourceControl->provider) ->get(); foreach ($sites as $site) { $site->server->ssh()->exec( 'cd '.$site->path.' && git remote set-url origin '.$site->full_repository_url ); } } }