2023-05-08 11:36:49 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Http\Livewire\Source\Github;
|
|
|
|
|
|
|
|
use App\Models\GithubApp;
|
|
|
|
use Livewire\Component;
|
|
|
|
|
|
|
|
class Change extends Component
|
|
|
|
{
|
2023-06-14 07:44:40 +00:00
|
|
|
public string $webhook_endpoint;
|
|
|
|
public string|null $ipv4;
|
|
|
|
public string|null $ipv6;
|
|
|
|
public string|null $fqdn;
|
2023-06-14 11:07:58 +00:00
|
|
|
|
|
|
|
public bool|null $default_permissions = true;
|
|
|
|
public bool|null $preview_deployment_permissions = true;
|
|
|
|
|
2023-05-08 11:36:49 +00:00
|
|
|
public $parameters;
|
|
|
|
public GithubApp $github_app;
|
2023-05-18 11:26:35 +00:00
|
|
|
public string $name;
|
2023-05-08 11:36:49 +00:00
|
|
|
public bool $is_system_wide;
|
|
|
|
|
|
|
|
protected $rules = [
|
|
|
|
'github_app.name' => 'required|string',
|
|
|
|
'github_app.organization' => 'nullable|string',
|
|
|
|
'github_app.api_url' => 'required|string',
|
|
|
|
'github_app.html_url' => 'required|string',
|
|
|
|
'github_app.custom_user' => 'required|string',
|
|
|
|
'github_app.custom_port' => 'required|int',
|
|
|
|
'github_app.app_id' => 'required|int',
|
2023-06-14 07:44:40 +00:00
|
|
|
'github_app.installation_id' => 'nullable',
|
|
|
|
'github_app.client_id' => 'nullable',
|
|
|
|
'github_app.client_secret' => 'nullable',
|
|
|
|
'github_app.webhook_secret' => 'nullable',
|
2023-05-08 11:36:49 +00:00
|
|
|
'github_app.is_system_wide' => 'required|bool',
|
|
|
|
];
|
2023-08-08 09:51:36 +00:00
|
|
|
|
2023-06-14 07:44:40 +00:00
|
|
|
public function mount()
|
|
|
|
{
|
2023-08-28 19:15:30 +00:00
|
|
|
if (is_cloud() && !isDev()) {
|
2023-08-28 19:03:07 +00:00
|
|
|
$this->webhook_endpoint = config('app.url');
|
|
|
|
} else {
|
|
|
|
$this->webhook_endpoint = $this->ipv4;
|
|
|
|
$this->is_system_wide = $this->github_app->is_system_wide;
|
|
|
|
}
|
2023-08-09 13:57:53 +00:00
|
|
|
$this->parameters = get_route_parameters();
|
2023-06-14 07:44:40 +00:00
|
|
|
}
|
2023-08-08 09:51:36 +00:00
|
|
|
|
2023-05-08 11:36:49 +00:00
|
|
|
public function submit()
|
|
|
|
{
|
|
|
|
try {
|
|
|
|
$this->validate();
|
|
|
|
$this->github_app->save();
|
|
|
|
} catch (\Exception $e) {
|
2023-06-09 13:55:21 +00:00
|
|
|
return general_error_handler(err: $e, that: $this);
|
2023-05-08 11:36:49 +00:00
|
|
|
}
|
|
|
|
}
|
2023-08-08 09:51:36 +00:00
|
|
|
|
2023-05-08 11:36:49 +00:00
|
|
|
public function instantSave()
|
|
|
|
{
|
|
|
|
}
|
2023-06-14 07:44:40 +00:00
|
|
|
|
2023-05-09 08:01:57 +00:00
|
|
|
public function delete()
|
2023-05-08 11:36:49 +00:00
|
|
|
{
|
2023-05-09 08:01:57 +00:00
|
|
|
try {
|
|
|
|
$this->github_app->delete();
|
2023-06-19 07:44:39 +00:00
|
|
|
redirect()->route('source.all');
|
2023-05-09 08:01:57 +00:00
|
|
|
} catch (\Exception $e) {
|
2023-06-09 13:55:21 +00:00
|
|
|
return general_error_handler(err: $e, that: $this);
|
2023-05-08 11:36:49 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|