public function getLogEndpoints()

in app/classes/ReleaseInsights/Beta.php [52:123]


    public function getLogEndpoints(): array
    {
        $hg_end_points = [];
        [$have_rc, $number_rc_builds] = $this->RCStatus();

        /*
            Analyse Beta logs first
        */
        foreach (range(0, $this->count) as $beta_number) {
            $beta_start = ($beta_number == 0)
                ? 'FIREFOX_BETA_' . BETA . '_BASE'
                : 'FIREFOX_' . BETA . '_0b' . $beta_number . '_RELEASE';

            $beta_end = 'FIREFOX_' . BETA . '_0b' . (string) ($beta_number + 1) . '_RELEASE';

            if ($beta_number == $this->count) {
                $beta_end = 'tip';
                // Just after merge day, we don't want to use tip for beta_end but the newly created tag
                if ($this->beta_cycle_ended) {
                    $beta_end = 'FIREFOX_BETA_' . BETA . '_END'; // @codeCoverageIgnore
                }
            }

            $beta_version = (string) BETA . '.0b' . (string) ($beta_number + 1);

            // This is what landed on mozilla-beta after the last beta but before the merge and RC1
            $beta_version = ($beta_number == $this->number_betas)
                ?  (string) BETA . '.0rc0' // @codeCoverageIgnore
                :  (string) BETA . '.0b' . (string) ($beta_number + 1);

            $hg_end_points[$beta_version] =
                'releases/mozilla-beta/json-pushes?fromchange='
                . $beta_start
                . '&tochange='
                . $beta_end
                . '&full&version=2';
        }

        /*
            Analyse Release logs for RCs if we are in RC week

            Check if we have already shipped a Release Candidate build to the beta channel
            Remote balrog API can give a 404, we have a fallback to N/A
        */

        if ($have_rc) {
            foreach (range(1, $number_rc_builds) as $rc_number) {
                if ($rc_number == 1) {
                    $rc_start = 'FIREFOX_RELEASE_' . BETA . '_BASE';
                    $rc_end = 'FIREFOX_' . BETA . '_0_BUILD1';
                } else {
                    // @codeCoverageIgnoreStart
                    $rc_start = 'FIREFOX_' . BETA . '_0_BUILD' . (string) ($rc_number - 1);
                    $rc_end = 'FIREFOX_' . BETA . '_0_BUILD' . (string) ($rc_number);
                    // @codeCoverageIgnoreEnd
                }

                $rc_version = (string) BETA . '.0rc' . (string) $rc_number;

                // This is what landed on mozilla-beta after the last beta but before the merge and RC1

                $hg_end_points[$rc_version] =
                    'releases/mozilla-release/json-pushes?fromchange='
                    . $rc_start
                    . '&tochange='
                    . $rc_end
                    . '&full&version=2';
            }
        }

        return $hg_end_points;
    }