• 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/Entity/Report/Dto/SlackBlock.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\Entity\Report\Dto;
25

26
use JsonSerializable;
27

28
/**
29
 * SlackBlock.
30
 *
31
 * @author Elias Häußler <elias@haeussler.dev>
32
 * @license GPL-3.0-or-later
33
 */
34
final class SlackBlock implements JsonSerializable
35
{
36
    /**
37
     * @param list<SlackBlockElement>|null $fields
38
     * @param list<SlackBlockElement>|null $elements
39
     */
NEW
40
    private function __construct(
×
41
        public readonly string $type,
42
        public readonly ?SlackBlockElement $text = null,
43
        public readonly ?array $fields = null,
44
        public readonly ?array $elements = null,
NEW
45
    ) {}
×
46

47
    /**
48
     * @param list<SlackBlockElement> $elements
49
     *
50
     * @see https://api.slack.com/reference/block-kit/blocks#context
51
     */
NEW
52
    public static function context(array $elements): self
×
53
    {
NEW
54
        return new self('context', elements: $elements);
×
55
    }
56

57
    /**
58
     * @see https://api.slack.com/reference/block-kit/blocks#header
59
     */
NEW
60
    public static function header(SlackBlockElement $text): self
×
61
    {
NEW
62
        return new self('header', $text);
×
63
    }
64

65
    /**
66
     * @param list<SlackBlockElement>|null $fields
67
     *
68
     * @see https://api.slack.com/reference/block-kit/blocks#section
69
     */
NEW
70
    public static function section(
×
71
        ?SlackBlockElement $text = null,
72
        ?array $fields = null,
73
    ): self {
NEW
74
        return new self('section', $text, $fields);
×
75
    }
76

77
    /**
78
     * @return array{
79
     *     type: string,
80
     *     text?: SlackBlockElement,
81
     *     fields?: list<SlackBlockElement>,
82
     *     elements?: list<SlackBlockElement>,
83
     * }
84
     */
NEW
85
    public function jsonSerialize(): array
×
86
    {
NEW
87
        $json = [
×
NEW
88
            'type' => $this->type,
×
NEW
89
        ];
×
90

NEW
91
        if (null !== $this->text) {
×
NEW
92
            $json['text'] = $this->text;
×
93
        }
94

NEW
95
        if (null !== $this->fields) {
×
NEW
96
            $json['fields'] = $this->fields;
×
97
        }
98

NEW
99
        if (null !== $this->elements) {
×
NEW
100
            $json['elements'] = $this->elements;
×
101
        }
102

NEW
103
        return $json;
×
104
    }
105
}
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