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

violinist-dev / violinist-messages / 14179995171

31 Mar 2025 07:40PM UTC coverage: 92.941% (-7.1%) from 100.0%
14179995171

Pull #30

github

web-flow
Update preview.php
Pull Request #30: Add group templates

0 of 6 new or added lines in 1 file covered. (0.0%)

79 of 85 relevant lines covered (92.94%)

2.81 hits per line

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

84.21
/src/ViolinistMessages.php
1
<?php
2

3
namespace eiriksm\ViolinistMessages;
4

5
class ViolinistMessages
6
{
7

8
    /**
9
     * @var \Twig\Environment
10
     */
11
    private $twig;
12

13
    /**
14
     * ViolinistMessages constructor.
15
     */
16
    public function __construct()
17
    {
18
         $loader = new \Twig\Loader\FilesystemLoader(__DIR__ . '/../templates');
6✔
19
         $this->twig = new \Twig\Environment($loader, []);
6✔
20
    }
6✔
21

22
    /**
23
     * Create title from the legacy format.
24
     *
25
     * @param array $item
26
     *
27
     * @return string
28
     */
29
    public function getPullRequestTitleLegacy($item)
30
    {
31
        $msg = ViolinistUpdate::fromLegacyFormat($item);
1✔
32
        return $this->getPullRequestTitle($msg);
1✔
33
    }
34

35
    /**
36
     * Create body from the legacy format.
37
     *
38
     * @param array $item
39
     *
40
     * @return string
41
     */
42
    public function getPullRequestBodyLegacy($item)
43
    {
44
        $msg = ViolinistUpdate::fromLegacyFormat($item);
1✔
45
        return $this->getPullRequestBody($msg);
1✔
46
    }
47

48
    public function getPullRequestBodyForGroup()
49
    {
NEW
50
        $twig = $this->twig->load('pull-request-body-group.twig');
×
NEW
51
        return $twig->render([
×
NEW
52
            'updated_list' => [],
×
NEW
53
            'title' => '',
×
NEW
54
            'intro' => self::getIntroText(),
×
55
        ]);
56
    }
57

58
    public static function getIntroText()
59
    {
NEW
60
        return 'If you have a high test coverage index, and your tests for this pull request are passing, it should be both safe and recommended to merge this update.';
×
61
    }
62

63
    /**
64
     * @param \eiriksm\ViolinistMessages\ViolinistUpdate $msg
65
     *
66
     * @return string
67
     */
68
    public function getPullRequestBody(ViolinistUpdate $msg)
69
    {
70
        $twig = $this->twig->load('pull-request-body.twig');
4✔
71
        return $twig->render([
4✔
72
            'updated_list' => $this->getUpdatedList($msg->getUpdatedList()),
4✔
73
            'title' => $this->getPullRequestTitle($msg),
4✔
74
            'changelog' => $msg->getChangelog(),
4✔
75
            'changed_files' => $msg->getChangedFiles(),
4✔
76
            'release_notes' => $msg->getPackageReleaseNotes(),
4✔
77
            'custom_message' => $msg->getCustomMessage(),
4✔
78
            'package' => $msg->getName(),
4✔
79
        ]);
80
    }
81

82
    public function getPullRequestClosedMessage($new_pr_id)
83
    {
84
        $twig = $this->twig->load('pull-request-closed-message.twig');
1✔
85
        return $twig->render([
1✔
86
            'new_pr_id' => $new_pr_id,
1✔
87
        ]);
88
    }
89

90
    /**
91
     * @param UpdateListItem[] $list
92
     */
93
    protected function getUpdatedList(array $list)
94
    {
95
        // Create some nice looking markdown for this.
96
        $lines = [];
4✔
97
        foreach ($list as $item) {
4✔
98
            if ($item->isNew()) {
2✔
99
                $lines[] = sprintf('- %s: %s (new package, previously not installed)', $item->getPackageName(), $item->getNewVersion());
2✔
100
            } else if ($item->isRemoved()) {
2✔
101
                $lines[] = sprintf('- %s %s (package was removed)', $item->getPackageName(), $item->getNewVersion());
1✔
102
            } else {
103
                $lines[] = sprintf('- %s: %s (updated from %s)', $item->getPackageName(), $item->getNewVersion(), $item->getOldVersion());
2✔
104
            }
105
        }
106
        return implode("\n", $lines);
4✔
107
    }
108

109
    /**
110
     * @param \eiriksm\ViolinistMessages\ViolinistUpdate $msg
111
     *
112
     * @return string
113
     */
114
    public function getPullRequestTitle(ViolinistUpdate $msg)
115
    {
116
        return $this->twig->load('pull-request-title.twig')->render([
5✔
117
            'security_prefix' => $msg->isSecurityUpdate() ? '[SECURITY] ' : '',
5✔
118
            'name' => $msg->getName(),
5✔
119
            'current_version' => $msg->getCurrentVersion(),
5✔
120
            'new_version' => $msg->getNewVersion(),
5✔
121
        ]);
122
    }
123
}
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