diff --git a/app/Analyzers/Jenkins/JenkinsPayloadAnalyzer.php b/app/Analyzers/BasePayloadAnalyzer.php copy from app/Analyzers/Jenkins/JenkinsPayloadAnalyzer.php copy to app/Analyzers/BasePayloadAnalyzer.php --- a/app/Analyzers/Jenkins/JenkinsPayloadAnalyzer.php +++ b/app/Analyzers/BasePayloadAnalyzer.php @@ -1,13 +1,14 @@ project . '.json'; if (!Storage::has($filename)) { @@ -77,12 +79,43 @@ return $filename; } + /** + * Gets full qualified class name for configuration. + * + * @return string + */ + private function getCandidateConfigurationClassName() { + $namespace = 'Nasqueron\Notifications\Analyzers\\' . static::SERVICE_NAME; + return $namespace . "\\" . static::SERVICE_NAME . 'PayloadAnalyzerConfiguration'; + } + + /** + * Gets full qualified class name for configuration if existing, + * or PayloadAnalyzerConfiguration class if not. + * + * @return string The configuration class to use + */ + private function getConfigurationClassName () { + $class = $this->getCandidateConfigurationClassName(); + + if (class_exists($class)) { + return $class; + } + + return PayloadAnalyzerConfiguration::class; + } + + /** + * Loads configuration for the analyzer + */ public function loadConfiguration () { $fileName = $this->getConfigurationFileName(); + $class = $this->getConfigurationClassName(); + $mapper = new \JsonMapper(); $this->configuration = $mapper->map( json_decode(Storage::get($fileName)), - new JenkinsPayloadAnalyzerConfiguration($this->project) + new $class($this->project) ); } @@ -91,12 +124,22 @@ /// /** - * Gets the name of the repository. + * Gets the name of the item. * * @var string */ - public function getJobName () { - return $this->payload->name; + public function getItemName () { + throw new BadMethodCallException("The getItemName method must be implemented in the analyzer class if used."); + } + + /** + * Determines if the event isn't related to a specific item, + * but to the general service. + * + * @return bool + */ + public function isAdministrativeEvent () { + return false; } /** @@ -105,10 +148,16 @@ * @return string The group, central part of the routing key */ public function getGroup () { + // Some events are organization-level only and can't be mapped + // to projects. + if ($this->isAdministrativeEvent()) { + return $this->configuration->administrativeGroup; + } + // If the payload is about some repository matching a table of // symbols, we need to sort it to the right group. - $item = $this->getJobName(); - foreach ($this->configuration->groupsMapping as $mapping) { + $item = $this->getItemName(); + foreach ($this->configuration->map as $mapping) { if ($mapping->doesItemBelong($item)) { return $mapping->group; } @@ -117,57 +166,4 @@ return $this->configuration->getDefaultGroup(); } - /// - /// Notify only on failure helper methods - /// - - /** - * Tries to get build status. - * - * @param out string $status - * @return bool indicates if the build status is defined in the payload - */ - private function tryGetBuildStatus (&$status) { - if (!isset($this->payload->build->status)) { - return false; - } - - $status = $this->payload->build->status; - return true; - } - - /** - * @return bool - */ - public function shouldNotifyOnlyOnFailure () { - return in_array( - $this->getJobName(), - $this->configuration->notifyOnlyOnFailure - ); - } - - /** - * Determines if the build status is a failure. - * - * @return bool - */ - public function isFailure () { - if (!$this->tryGetBuildStatus($status)) { - return false; - } - - return $status === "FAILURE" - || $status === "ABORTED" - || $status === "UNSTABLE"; - } - - /** - * Indicates if we should handle this payload to trigger a notification. - * - * @return bool if false, this payload is to be ignored for notifications - */ - public function shouldNotify () { - return $this->isFailure() || !$this->shouldNotifyOnlyOnFailure(); - } - } diff --git a/app/Analyzers/GitHub/GitHubPayloadAnalyzer.php b/app/Analyzers/GitHub/GitHubPayloadAnalyzer.php --- a/app/Analyzers/GitHub/GitHubPayloadAnalyzer.php +++ b/app/Analyzers/GitHub/GitHubPayloadAnalyzer.php @@ -2,43 +2,28 @@ namespace Nasqueron\Notifications\Analyzers\GitHub; +use Nasqueron\Notifications\Analyzers\BasePayloadAnalyzer; use Nasqueron\Notifications\Analyzers\GitHub\Events\Event; use Nasqueron\Notifications\Analyzers\GitHub\Events\UnknownEvent; -use Config; -use Storage; +class GitHubPayloadAnalyzer extends BasePayloadAnalyzer { -class GitHubPayloadAnalyzer { + /** + * The name of the service, used to get specific classes and config + */ + const SERVICE_NAME = "GitHub"; /// /// Private members /// /** - * The project name, used to load specific configuration and offer defaults - * @var string - */ - private $project; - - /** * The GitHub event triggering this request * @var string */ private $event; /** - * The request content, as a structured data - * @var stdClass - */ - private $payload; - - /** - * The configuration for the payload analyzer - * @var Nasqueron\Notifications\Analyzers\GitHub\GitHubPayloadAnalyzerConfiguration; - */ - private $configuration; - - /** * The payload analyzer event * * @var Nasqueron\Notifications\Analyzers\GitHub\Events\Event; @@ -57,15 +42,9 @@ * @param stdClass $payload */ public function __construct($project, $event, $payload) { - if (!is_object($payload)) { - throw new \InvalidArgumentException("Payload must be an object."); - } + parent::__construct($project, $payload); - $this->project = $project; $this->event = $event; - $this->payload = $payload; - - $this->loadConfiguration($project); try { $this->analyzerEvent = Event::forPayload($event, $payload); @@ -75,49 +54,15 @@ } /// - /// Configuration - /// - - /** - * The default name of the configuration file - */ - const CONFIG_DEFAULT_FILE = 'default.json'; - - /** - * Gets the full path to the configuration file. - * - * @return string - */ - public function getConfigurationFileName () { - $dir = Config::get('services.github.analyzer.configDir'); - $filename = $dir . '/' . $this->project . '.json'; - - if (!Storage::has($filename)) { - return $dir . '/' . static::CONFIG_DEFAULT_FILE; - } - - return $filename; - } - - public function loadConfiguration () { - $fileName = $this->getConfigurationFileName(); - $mapper = new \JsonMapper(); - $this->configuration = $mapper->map( - json_decode(Storage::get($fileName)), - new GitHubPayloadAnalyzerConfiguration($this->project) - ); - } - - /// /// Properties /// /** - * Gets the name of the repository. + * Gets the name of the item, ie here of the name of the repository. * * @var string */ - public function getRepository () { + public function getItemName () { if ($this->isAdministrativeEvent()) { return ''; } @@ -142,30 +87,6 @@ return in_array($this->event, $administrativeEvents); } - /** - * Gets the group for a specific payload. - * - * @return string The group, central part of the routing key - */ - public function getGroup () { - // Some events are organization-level only and can't be mapped to an - // existing repository. - if ($this->isAdministrativeEvent()) { - return $this->configuration->administrativeGroup; - } - - // If the payload is about some repository matching a table of - // symbols, we need to sort it to the right group. - $repository = $this->getRepository(); - foreach ($this->configuration->repositoryMapping as $mapping) { - if ($mapping->doesItemBelong($repository)) { - return $mapping->group; - } - } - - return $this->configuration->getDefaultGroup(); - } - /// /// Description of the payload /// diff --git a/app/Analyzers/Jenkins/JenkinsPayloadAnalyzer.php b/app/Analyzers/Jenkins/JenkinsPayloadAnalyzer.php --- a/app/Analyzers/Jenkins/JenkinsPayloadAnalyzer.php +++ b/app/Analyzers/Jenkins/JenkinsPayloadAnalyzer.php @@ -2,121 +2,33 @@ namespace Nasqueron\Notifications\Analyzers\Jenkins; +use Nasqueron\Notifications\Analyzers\BasePayloadAnalyzer; + use Config; use Storage; use InvalidArgumentException; -class JenkinsPayloadAnalyzer { - - /// - /// Private members - /// - - /** - * The project name, used to load specific configuration and offer defaults - * @var string - */ - private $project; - - /** - * The request content, as a structured data - * @var stdClass - */ - private $payload; - - /** - * The configuration for the payload analyzer - * @var Nasqueron\Notifications\Analyzers\Jenkins\JenkinsPayloadAnalyzerConfiguration; - */ - private $configuration; - - /// - /// Constructor - /// - - /** - * Creates a new JenkinsPayloadAnalyzer instance. - * - * @param string $project - * @param stdClass $payload - */ - public function __construct($project, $payload) { - if (!is_object($payload)) { - throw new InvalidArgumentException("Payload must be an object."); - } - - $this->project = $project; - $this->payload = $payload; - - $this->loadConfiguration($project); - } - - /// - /// Configuration - /// - - /** - * The default name of the configuration file - */ - const CONFIG_DEFAULT_FILE = 'default.json'; +class JenkinsPayloadAnalyzer extends BasePayloadAnalyzer { /** - * Gets the full path to the configuration file. - * - * @return string + * The name of the service, used to get specific classes and config */ - public function getConfigurationFileName () { - $dir = Config::get('services.jenkins.analyzer.configDir'); - $filename = $dir . '/' . $this->project . '.json'; - - if (!Storage::has($filename)) { - return $dir . '/' . static::CONFIG_DEFAULT_FILE; - } - - return $filename; - } - - public function loadConfiguration () { - $fileName = $this->getConfigurationFileName(); - $mapper = new \JsonMapper(); - $this->configuration = $mapper->map( - json_decode(Storage::get($fileName)), - new JenkinsPayloadAnalyzerConfiguration($this->project) - ); - } + const SERVICE_NAME = "Jenkins"; /// - /// Properties + /// Payload custom properties /// /** - * Gets the name of the repository. + * Gets the name of the item, ie here of the job. * * @var string */ - public function getJobName () { + public function getItemName () { return $this->payload->name; } - /** - * Gets the group for a specific payload. - * - * @return string The group, central part of the routing key - */ - public function getGroup () { - // If the payload is about some repository matching a table of - // symbols, we need to sort it to the right group. - $item = $this->getJobName(); - foreach ($this->configuration->groupsMapping as $mapping) { - if ($mapping->doesItemBelong($item)) { - return $mapping->group; - } - } - - return $this->configuration->getDefaultGroup(); - } - /// /// Notify only on failure helper methods /// @@ -141,7 +53,7 @@ */ public function shouldNotifyOnlyOnFailure () { return in_array( - $this->getJobName(), + $this->getItemName(), $this->configuration->notifyOnlyOnFailure ); } diff --git a/app/Analyzers/Jenkins/JenkinsPayloadAnalyzerConfiguration.php b/app/Analyzers/Jenkins/JenkinsPayloadAnalyzerConfiguration.php --- a/app/Analyzers/Jenkins/JenkinsPayloadAnalyzerConfiguration.php +++ b/app/Analyzers/Jenkins/JenkinsPayloadAnalyzerConfiguration.php @@ -2,71 +2,17 @@ namespace Nasqueron\Notifications\Analyzers\Jenkins; -class JenkinsPayloadAnalyzerConfiguration { +use Nasqueron\Notifications\Analyzers\PayloadAnalyzerConfiguration; - /// - /// Private members - /// - - /** - * The project this configuration is for - * - * @var string - */ - private $project; +class JenkinsPayloadAnalyzerConfiguration extends PayloadAnalyzerConfiguration { /// /// Public properties /// /** - * The default group to fallback for any event not mapped in another group - * - * @var string - */ - public $defaultGroup; - - /** - * An array of RepositoryGroupMapping objects to match jobs & groups - * - * @var \Nasqueron\Notifications\Analyzers\ItemGroupMapping[] - */ - public $groupsMapping; - - /** * @var array */ public $notifyOnlyOnFailure; - /// - /// Constructor - /// - - /** - * Initializes a new instance of the GitHubPayloadAnalyzerConfiguration class - * - * @param string $project The project name this configuration is related to - */ - public function __construct ($project) { - $this->project = $project; - } - - /// - /// Helper methods - /// - - /** - * Gets the default group - * - * @return string the default group, as set in the configuration, - * or if omitted, the project name as fallback. - */ - public function getDefaultGroup () { - if (empty($this->defaultGroup)) { - return strtolower($this->project); - } - - return $this->defaultGroup; - } - } diff --git a/app/Analyzers/GitHub/GitHubPayloadAnalyzerConfiguration.php b/app/Analyzers/PayloadAnalyzerConfiguration.php rename from app/Analyzers/GitHub/GitHubPayloadAnalyzerConfiguration.php rename to app/Analyzers/PayloadAnalyzerConfiguration.php --- a/app/Analyzers/GitHub/GitHubPayloadAnalyzerConfiguration.php +++ b/app/Analyzers/PayloadAnalyzerConfiguration.php @@ -1,8 +1,8 @@ defaultGroup; } + } diff --git a/app/Analyzers/Phabricator/PhabricatorPayloadAnalyzer.php b/app/Analyzers/Phabricator/PhabricatorPayloadAnalyzer.php --- a/app/Analyzers/Phabricator/PhabricatorPayloadAnalyzer.php +++ b/app/Analyzers/Phabricator/PhabricatorPayloadAnalyzer.php @@ -2,35 +2,27 @@ namespace Nasqueron\Notifications\Analyzers\Phabricator; +use Nasqueron\Notifications\Analyzers\BasePayloadAnalyzer; + use Nasqueron\Notifications\Phabricator\PhabricatorStory; -use Config; -use Storage; +class PhabricatorPayloadAnalyzer extends BasePayloadAnalyzer { -class PhabricatorPayloadAnalyzer { + /** + * The name of the service, used to get specific classes and config + */ + const SERVICE_NAME = "Phabricator"; /// /// Private members /// /** - * The project name, used to load specific configuration and offer defaults - * @var string - */ - private $project; - - /** * The story * @var PhabricatorStory */ private $story; - /** - * The configuration for the payload analyzer - * @var PhabricatorPayloadAnalyzerConfiguration; - */ - private $configuration; - /// /// Constructor /// @@ -49,71 +41,18 @@ } /// - /// Configuration - /// - - /** - * The default name of the configuration file - */ - const CONFIG_DEFAULT_FILE = 'default.json'; - - /** - * Gets the full path to the configuration file. - * - * @return string - */ - public function getConfigurationFileName () { - $dir = Config::get('services.phabricator.analyzer.configDir'); - $filename = $dir . '/' . $this->project . '.json'; - - if (!Storage::has($filename)) { - return $dir . '/' . static::CONFIG_DEFAULT_FILE; - } - - return $filename; - } - - /** - * Gets the full path to the configuration file. - * - * @return string - */ - public function loadConfiguration () { - $fileName = $this->getConfigurationFileName(); - - $mapper = new \JsonMapper(); - $this->configuration = $mapper->map( - json_decode(Storage::get($fileName)), - new PhabricatorPayloadAnalyzerConfiguration() - ); - } - - /// /// Qualification of the story /// /** - * @return bool - */ - public function isAdministrativeEvent () { - return false; - } - - /** * Gets the group for a specific story. * * @return string the group, central part of the routing key */ public function getGroup () { - // Some events are organization-level only and can't be mapped - // to projects. - if ($this->isAdministrativeEvent()) { - return $this->configuration->administrativeGroup; - } - // If the payload is about some repository matching a table of // symbols, we need to sort it to the right group. - foreach ($this->configuration->groupsMapping as $mapping) { + foreach ($this->configuration->map as $mapping) { foreach ($this->story->getProjects() as $project) { if ($mapping->doesItemBelong($project)) { return $mapping->group; @@ -122,7 +61,7 @@ } // Words - foreach ($this->configuration->groupsMapping as $mapping) { + foreach ($this->configuration->map as $mapping) { if ($mapping->doesStoryBelong($this->story)) { return $mapping->group; } @@ -135,4 +74,4 @@ return $this->configuration->defaultGroup; } -} +} \ No newline at end of file diff --git a/app/Analyzers/Phabricator/PhabricatorPayloadAnalyzerConfiguration.php b/app/Analyzers/Phabricator/PhabricatorPayloadAnalyzerConfiguration.php --- a/app/Analyzers/Phabricator/PhabricatorPayloadAnalyzerConfiguration.php +++ b/app/Analyzers/Phabricator/PhabricatorPayloadAnalyzerConfiguration.php @@ -2,25 +2,15 @@ namespace Nasqueron\Notifications\Analyzers\Phabricator; -class PhabricatorPayloadAnalyzerConfiguration { - /** - * The group for organization only events - * - * @var string - */ - public $administrativeGroup; +use Nasqueron\Notifications\Analyzers\PayloadAnalyzerConfiguration; - /** - * The default group to fallback for any event not mapped in another group - * - * @var string - */ - public $defaultGroup; +class PhabricatorPayloadAnalyzerConfiguration extends PayloadAnalyzerConfiguration { /** * An array of RepositoryGroupMapping objects to match repositories & groups * * @var PhabricatorGroupMapping[] */ - public $groupsMapping; + public $map; + } diff --git a/storage/app/GitHubPayloadAnalyzer/default.json b/storage/app/GitHubPayloadAnalyzer/default.json --- a/storage/app/GitHubPayloadAnalyzer/default.json +++ b/storage/app/GitHubPayloadAnalyzer/default.json @@ -1,5 +1,5 @@ { "administrativeGroup": "orgz", "defaultGroup": "", - "repositoryMapping": [] + "map": [] } diff --git a/storage/app/JenkinsPayloadAnalyzer/default.json b/storage/app/JenkinsPayloadAnalyzer/default.json --- a/storage/app/JenkinsPayloadAnalyzer/default.json +++ b/storage/app/JenkinsPayloadAnalyzer/default.json @@ -1,5 +1,5 @@ { "defaultGroup": "ci", - "groupsMapping": [], + "map": [], "notifyOnlyOnFailure": [] } diff --git a/storage/app/PhabricatorPayloadAnalyzer/default.json b/storage/app/PhabricatorPayloadAnalyzer/default.json --- a/storage/app/PhabricatorPayloadAnalyzer/default.json +++ b/storage/app/PhabricatorPayloadAnalyzer/default.json @@ -1,5 +1,5 @@ { "administrativeGroup": "orgz", "defaultGroup": "", - "groupsMapping": [] + "map": [] } diff --git a/tests/Analyzers/GitHub/GitHubPayloadAnalyzerTest.php b/tests/Analyzers/GitHub/GitHubPayloadAnalyzerTest.php --- a/tests/Analyzers/GitHub/GitHubPayloadAnalyzerTest.php +++ b/tests/Analyzers/GitHub/GitHubPayloadAnalyzerTest.php @@ -98,15 +98,15 @@ } /// - /// Test getRepository + /// Test getItemName /// - public function testGetRepositoryWhenEventIsAdministrative () { - $this->assertEmpty($this->pingAnalyzer->getRepository()); + public function testGetItemNameWhenEventIsAdministrative () { + $this->assertEmpty($this->pingAnalyzer->getItemName()); } - public function testGetRepositoryWhenEventIsRepositoryRelative () { - $this->assertSame("public-repo", $this->pushAnalyzer->getRepository()); + public function testGetItemNameWhenEventIsRepositoryRelative () { + $this->assertSame("public-repo", $this->pushAnalyzer->getItemName()); } /// diff --git a/tests/Analyzers/Jenkins/JenkinsPayloadAnalyzerConfigurationTest.php b/tests/Analyzers/Jenkins/JenkinsPayloadAnalyzerConfigurationTest.php --- a/tests/Analyzers/Jenkins/JenkinsPayloadAnalyzerConfigurationTest.php +++ b/tests/Analyzers/Jenkins/JenkinsPayloadAnalyzerConfigurationTest.php @@ -37,7 +37,7 @@ public function testProperties () { $this->assertSame("ci", $this->configuration->defaultGroup); - foreach ($this->configuration->groupsMapping as $item) { + foreach ($this->configuration->map as $item) { $this->assertInstanceOf(ItemGroupMapping::class, $item); } } diff --git a/tests/Analyzers/Jenkins/JenkinsPayloadAnalyzerTest.php b/tests/Analyzers/Jenkins/JenkinsPayloadAnalyzerTest.php --- a/tests/Analyzers/Jenkins/JenkinsPayloadAnalyzerTest.php +++ b/tests/Analyzers/Jenkins/JenkinsPayloadAnalyzerTest.php @@ -31,8 +31,8 @@ $this->analyzer = new JenkinsPayloadAnalyzer("Nasqueron", $this->payload); } - public function testGetJobName () { - $this->assertSame("test-prod-env", $this->analyzer->getJobName()); + public function testGetItemName () { + $this->assertSame("test-prod-env", $this->analyzer->getItemName()); } public function testGetGroup () { diff --git a/tests/Analyzers/GitHub/GitHubPayloadAnalyzerConfigurationTest.php b/tests/Analyzers/PayloadAnalyzerConfigurationTest.php rename from tests/Analyzers/GitHub/GitHubPayloadAnalyzerConfigurationTest.php rename to tests/Analyzers/PayloadAnalyzerConfigurationTest.php --- a/tests/Analyzers/GitHub/GitHubPayloadAnalyzerConfigurationTest.php +++ b/tests/Analyzers/PayloadAnalyzerConfigurationTest.php @@ -4,16 +4,16 @@ use Illuminate\Foundation\Testing\WithoutMiddleware; -use Nasqueron\Notifications\Analyzers\GitHub\GitHubPayloadAnalyzerConfiguration; +use Nasqueron\Notifications\Analyzers\PayloadAnalyzerConfiguration; use Nasqueron\Notifications\Analyzers\ItemGroupMapping; use Nasqueron\Notifications\Tests\TestCase; -class GitHubPayloadAnalyzerConfigurationTest extends TestCase { +class PayloadAnalyzerConfigurationTest extends TestCase { /** * Configuration * - * @var Nasqueron\Notifications\Analyzers\GitHub\GitHubPayloadAnalyzerConfiguration + * @var Nasqueron\Notifications\Analyzers\PayloadAnalyzerConfiguration */ protected $configuration; @@ -21,11 +21,11 @@ * Prepares the test */ public function setUp () { - $filename = __DIR__ . '/../../data/GitHubPayloadAnalyzer/Nasqueron.json'; + $filename = __DIR__ . '/../data/GitHubPayloadAnalyzer/Nasqueron.json'; $mapper = new \JsonMapper(); $this->configuration = $mapper->map( json_decode(file_get_contents($filename)), - new GitHubPayloadAnalyzerConfiguration('Nasqueron') + new PayloadAnalyzerConfiguration('Nasqueron') ); parent::setUp(); @@ -38,7 +38,7 @@ $this->assertSame("orgz", $this->configuration->administrativeGroup); $this->assertSame("nasqueron", $this->configuration->defaultGroup); - foreach ($this->configuration->repositoryMapping as $item) { + foreach ($this->configuration->map as $item) { $this->assertInstanceOf(ItemGroupMapping::class, $item); } } diff --git a/tests/Analyzers/Phabricator/PhabricatorGroupMappingTest.php b/tests/Analyzers/Phabricator/PhabricatorGroupMappingTest.php --- a/tests/Analyzers/Phabricator/PhabricatorGroupMappingTest.php +++ b/tests/Analyzers/Phabricator/PhabricatorGroupMappingTest.php @@ -30,7 +30,7 @@ 'strongWords', ]; - $this->mappings = array_combine($keys, $config->groupsMapping); + $this->mappings = array_combine($keys, $config->map); $this->story = $this->getStory(); } diff --git a/tests/Analyzers/Phabricator/PhabricatorPayloadAnalyzerTest.php b/tests/Analyzers/Phabricator/PhabricatorPayloadAnalyzerTest.php --- a/tests/Analyzers/Phabricator/PhabricatorPayloadAnalyzerTest.php +++ b/tests/Analyzers/Phabricator/PhabricatorPayloadAnalyzerTest.php @@ -86,4 +86,11 @@ ); } + /** + * @expectedException \BadMethodCallException + */ + public function testGetItemThrowsBadMethodCallException () { + $this->analyzer->getItemName(); + } + } diff --git a/tests/data/GitHubPayloadAnalyzer/Nasqueron.json b/tests/data/GitHubPayloadAnalyzer/Nasqueron.json --- a/tests/data/GitHubPayloadAnalyzer/Nasqueron.json +++ b/tests/data/GitHubPayloadAnalyzer/Nasqueron.json @@ -1,7 +1,7 @@ { "administrativeGroup": "orgz", "defaultGroup": "nasqueron", - "repositoryMapping": [ + "map": [ { "group": "docker", "items": [ diff --git a/tests/data/GitHubPayloadAnalyzer/default.json b/tests/data/GitHubPayloadAnalyzer/default.json --- a/tests/data/GitHubPayloadAnalyzer/default.json +++ b/tests/data/GitHubPayloadAnalyzer/default.json @@ -1,5 +1,5 @@ { "administrativeGroup": "orgz", "defaultGroup": "", - "repositoryMapping": [] + "map": [] } diff --git a/tests/data/JenkinsPayloadAnalyzer/Nasqueron.json b/tests/data/JenkinsPayloadAnalyzer/Nasqueron.json --- a/tests/data/JenkinsPayloadAnalyzer/Nasqueron.json +++ b/tests/data/JenkinsPayloadAnalyzer/Nasqueron.json @@ -1,6 +1,6 @@ { "defaultGroup": "ci", - "groupsMapping": [ + "map": [ { "group": "wikidata", "items": [ diff --git a/tests/data/JenkinsPayloadAnalyzer/default.json b/tests/data/JenkinsPayloadAnalyzer/default.json --- a/tests/data/JenkinsPayloadAnalyzer/default.json +++ b/tests/data/JenkinsPayloadAnalyzer/default.json @@ -1,5 +1,5 @@ { "defaultGroup": "ci", - "groupsMapping": [], + "map": [], "notifyOnlyOnFailure": [] } diff --git a/tests/data/PhabricatorPayloadAnalyzer/Nasqueron.json b/tests/data/PhabricatorPayloadAnalyzer/Nasqueron.json --- a/tests/data/PhabricatorPayloadAnalyzer/Nasqueron.json +++ b/tests/data/PhabricatorPayloadAnalyzer/Nasqueron.json @@ -1,7 +1,7 @@ { "administrativeGroup": "orgz", "defaultGroup": "nasqueron", - "groupsMapping": [ + "map": [ { "group": "docker", "items": [ diff --git a/tests/data/PhabricatorPayloadAnalyzer/default.json b/tests/data/PhabricatorPayloadAnalyzer/default.json --- a/tests/data/PhabricatorPayloadAnalyzer/default.json +++ b/tests/data/PhabricatorPayloadAnalyzer/default.json @@ -1,5 +1,5 @@ { "administrativeGroup": "orgz", "defaultGroup": "", - "groupsMapping": [] + "map": [] }