From 513f3b1b15ca0bedd5193c5ccd09c93ed3786374 Mon Sep 17 00:00:00 2001 From: Steve Boyd Date: Fri, 18 Oct 2024 11:52:09 +1300 Subject: [PATCH] ENH Add param to not make network request --- README.md | 4 ++-- src/MetaData.php | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index fd5bcd6..534705c 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,11 @@ Metadata and some supporting PHP logic for determining which branches of various GitHub repositories relate to which versions of Silverstripe CMS. > [!IMPORTANT] -> Only the `main` branch of this repository is maintained. +> Only the `main` branch of this repository is maintained. Stable tags must be manually created from the `main` branch. There is no auto tagging via a GitHub action. All branches other than `main` are legacy and should not be referenced going forward. You can fetch the JSON by simply fetching the raw copy of `repositories.json` file, e.g. . -If you've included this module as a compser dependency then you can use `SilverStripe\SupportedModules\MetaData::getAllRepositoryMetaData()` which will fetch the latest version of the JSON file from raw.githubusercontent.com. +If you've included this module as a compser dependency then you can use `SilverStripe\SupportedModules\MetaData::getAllRepositoryMetaData()` which will fetch the latest version of the JSON file from raw.githubusercontent.com. There is a local copy of `repositories.json` in the module, though it is not guaranteed to be up to date, so only use this if fetching a fresh copy of this file is not viable. ## Format diff --git a/src/MetaData.php b/src/MetaData.php index fa0e42e..aa26f4a 100644 --- a/src/MetaData.php +++ b/src/MetaData.php @@ -181,11 +181,13 @@ public static function removeReposNotInCmsMajor(array $metadata, string|int $cms /** * Get all metadata about all repositories we have information about. * @param bool $categorised If true, output is grouped by category. + * @param bool $doFetch If true, make a network request to fetch a fresh version of the data + * from the supported-modules repository. If false, use the local copy. */ - public static function getAllRepositoryMetaData(bool $categorised = true): array + public static function getAllRepositoryMetaData(bool $categorised = true, bool $doFetch = true): array { if (empty(self::$repositoryMetaData)) { - if (self::$isRunningUnitTests) { + if (self::$isRunningUnitTests || !$doFetch) { $rawJson = file_get_contents(__DIR__ . '/../repositories.json'); } else { // Dynamicallly fetch the latest data from the supported-modules repository