public function crashes()

in app/classes/ReleaseInsights/Beta.php [210:279]


    public function crashes(): array
    {
        $data = [];
        foreach (range(1, $this->count) as $beta_number) {
            $beta_number = (string) $this->release . '.0b' . (string) $beta_number;
            if (defined('TESTING_CONTEXT')) {
                $beta_number = str_replace('94', '131', $beta_number);
                $target = URL::Socorro->target() . 'crash-stats.mozilla.org_' . $beta_number . '.json';
            } else {
                $target = URL::Socorro->value . 'SuperSearch/?version=' . $beta_number . '&_facets=signature&product=Firefox';  // @codeCoverageIgnore
            }

            $temp = Json::load($target, 3600);

            // In local tests, we always have test data
            // @codeCoverageIgnoreStart
            if (empty($temp)) {
                $data[$beta_number] = [
                    'total'      => 0,
                    'signatures' => [],
                ];
                continue;
            }
            // @codeCoverageIgnoreEnd

            $data[$beta_number] = [
                'total'      => $temp['total'],
                'signatures' => $temp['facets']['signature'],
            ];
        }

        // Add crashes per RC
        [$have_rc, $number_rc_builds] = $this->RCStatus();
        if ($have_rc) {
            foreach (range(1, $number_rc_builds) as $rc_number) {
                $rc_number = (string) $this->release . '.0rc' . (string) $rc_number;
                if (defined('TESTING_CONTEXT')) {
                    $rc_number = str_replace('94', '131', $rc_number);
                    $target = URL::Socorro->target() . 'crash-stats.mozilla.org_' . $rc_number . '.json';
                } else {
                    $target = URL::Socorro->value . 'SuperSearch/?version=' . $rc_number . '&_facets=signature&product=Firefox';  // @codeCoverageIgnore
                }

               $temp = Json::load($target, 3600);

                // In local tests, we always have test data
                // @codeCoverageIgnoreStart
                if (empty($temp)) {
                    $data[$rc_number] = [
                        'total'      => 0,
                        'signatures' => [],
                    ];
                    continue;
                }
                // @codeCoverageIgnoreEnd
                $data[$rc_number] = [
                    'total'      => $temp['total'],
                    'signatures' => $temp['facets']['signature'],
                ];
            }
        }


        // Create a summary of the crashes across betas
        $data['summary'] = [
           'total'   => array_sum(array_column($data, 'total')),
        ];

        return $data;
    }