• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

eliashaeussler / composer-update-check / 15127653356

19 May 2025 08:30PM UTC coverage: 20.538%. First build
15127653356

Pull #130

github

web-flow
[TASK] Update cuyz/valinor to v1.16.1

| datasource | package      | from   | to     |
| ---------- | ------------ | ------ | ------ |
| packagist  | cuyz/valinor | 1.15.0 | 1.16.1 |
Pull Request #130: [!!!][FEATURE] Modernize plugin

356 of 1832 new or added lines in 57 files covered. (19.43%)

382 of 1860 relevant lines covered (20.54%)

1.11 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/Configuration/Adapter/ChainedConfigAdapter.php
1
<?php
2

3
declare(strict_types=1);
4

5
/*
6
 * This file is part of the Composer package "eliashaeussler/composer-update-check".
7
 *
8
 * Copyright (C) 2020-2025 Elias Häußler <elias@haeussler.dev>
9
 *
10
 * This program is free software: you can redistribute it and/or modify
11
 * it under the terms of the GNU General Public License as published by
12
 * the Free Software Foundation, either version 3 of the License, or
13
 * (at your option) any later version.
14
 *
15
 * This program is distributed in the hope that it will be useful,
16
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
 * GNU General Public License for more details.
19
 *
20
 * You should have received a copy of the GNU General Public License
21
 * along with this program. If not, see <https://www.gnu.org/licenses/>.
22
 */
23

24
namespace EliasHaeussler\ComposerUpdateCheck\Configuration\Adapter;
25

26
use EliasHaeussler\ComposerUpdateCheck\Configuration;
27
use EliasHaeussler\ComposerUpdateCheck\IO;
28

29
use function array_replace_recursive;
30

31
/**
32
 * ChainedConfigAdapter.
33
 *
34
 * @author Elias Häußler <elias@haeussler.dev>
35
 * @license GPL-3.0-or-later
36
 */
37
final class ChainedConfigAdapter implements ConfigAdapter
38
{
39
    /**
40
     * @param list<ConfigAdapter> $adapters
41
     */
NEW
42
    public function __construct(
×
43
        private readonly array $adapters,
NEW
44
    ) {}
×
45

NEW
46
    public function resolve(): Configuration\ComposerUpdateCheckConfig
×
47
    {
NEW
48
        $config = new Configuration\ComposerUpdateCheckConfig();
×
49

NEW
50
        foreach ($this->adapters as $adapter) {
×
NEW
51
            $this->mergeConfigs($config, $adapter->resolve());
×
52
        }
53

NEW
54
        return $config;
×
55
    }
56

NEW
57
    private function mergeConfigs(
×
58
        Configuration\ComposerUpdateCheckConfig $config,
59
        Configuration\ComposerUpdateCheckConfig $other,
60
    ): void {
NEW
61
        foreach ($other->getExcludePatterns() as $excludePattern) {
×
NEW
62
            $config->excludePackageByPattern($excludePattern);
×
63
        }
64

NEW
65
        if (!$other->areDevPackagesIncluded()) {
×
NEW
66
            $config->excludeDevPackages();
×
67
        }
68

NEW
69
        if ($other->shouldPerformSecurityScan()) {
×
NEW
70
            $config->performSecurityScan();
×
71
        }
72

NEW
73
        if (IO\Formatter\TextFormatter::FORMAT !== $other->getFormat()) {
×
NEW
74
            $config->setFormat($other->getFormat());
×
75
        }
76

NEW
77
        foreach ($other->getReporters() as $name => $options) {
×
NEW
78
            $currentOptions = $config->getReporters()[$name] ?? [];
×
79
            /** @var array<string, mixed> $mergedOptions */
NEW
80
            $mergedOptions = array_replace_recursive($currentOptions, $options);
×
81

NEW
82
            $config->enableReporter($name, $mergedOptions);
×
83
        }
84
    }
85
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc