Classes/Console/Install/InstallStepActionExecutor.php
public function executeActionWithArguments($actionName, array $arguments = [], $dryRun = false)
    {
        $actionMethod = 'execute' . ucfirst($actionName) . 'Action';
        $checkMethod = 'check' . ucfirst($actionName) . 'Action';
        $messages = [];
        $needsExecution = file_exists(PATH_site . 'FIRST_INSTALL');
        if (is_callable([$this->installerController, $checkMethod])) {
            $needsExecution = !\json_decode((string)$this->installerController->$checkMethod()->getBody(), true)['success'];
        }
        if ($needsExecution && !$dryRun) {
            $request = ($this->requestFactory)($arguments);
            try {
                $response = \json_decode((string)$this->installerController->$actionMethod($request)->getBody(), true);
                if (!$response['success']) {
                    $messages = $response['status'];
                }
            } catch (\Throwable $e) {
                $messages = [
                    [
                        'severity' => AbstractMessage::ERROR,
                        'message' => $e->getMessage(),
                    ],
                ];
            }
            $this->silentConfigurationUpgrade->executeSilentConfigurationUpgradesIfNeeded();
            $needsExecution = false;
        }

        return new InstallStepResponse($needsExecution, $messages);
    }
public function executeActionWithArguments($actionName, array $arguments = [], $dryRun = false)
    {
        $actionMethod = 'execute' . ucfirst($actionName) . 'Action';
        $checkMethod = 'check' . ucfirst($actionName) . 'Action';
        $messages = [];
        $needsExecution = file_exists(PATH_site . 'FIRST_INSTALL');
        if (is_callable([$this->installerController, $checkMethod])) {
            $needsExecution = !\json_decode((string)$this->installerController->$checkMethod()->getBody(), true)['success'];
        }
        if ($needsExecution && !$dryRun) {
            $request = ($this->requestFactory)($arguments);
            try {
                $response = \json_decode((string)$this->installerController->$actionMethod($request)->getBody(), true);
                if (!$response['success']) {
                    $messages = $response['status'];
                }
            } catch (\Throwable $e) {
                $messages = [
                    [
                        'severity' => AbstractMessage::ERROR,
                        'message' => $e->getMessage(),
                    ],
                ];
            }
            $this->silentConfigurationUpgrade->executeSilentConfigurationUpgradesIfNeeded();
            $needsExecution = false;
        }

        return new InstallStepResponse($needsExecution, $messages);
    }
Executes the given action and returns their response messages

@param string $actionName Name of the install step
@param array $arguments Arguments for the install step
@param bool $dryRun If true, do not execute the action, but only check if execution is necessary
@return InstallStepResponse