From 7f2798b4fc794dfffa8bf15994c233c05d26bd19 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+github@gmail.com>
Date: Wed, 7 Feb 2024 10:02:57 +0100
Subject: [PATCH] fixes #52

---
 assets/releases.scss     |  8 ++++++++
 controllers/releases.php | 27 ++++++++++++++++++---------
 plugin.manifest          |  2 +-
 views/releases/index.php | 14 ++++++++++++--
 4 files changed, 39 insertions(+), 12 deletions(-)

diff --git a/assets/releases.scss b/assets/releases.scss
index d1f8c10..9690dd9 100644
--- a/assets/releases.scss
+++ b/assets/releases.scss
@@ -5,3 +5,11 @@
 tr:not(:last-child) td.table-divider {
     border-bottom-color: var(--light-gray-color-80);
 }
+
+.release-files {
+    > a:not(:first-of-type)::before {
+        content: '|';
+        pointer-events: none;
+        color: var(--black) !important;
+    }
+}
diff --git a/controllers/releases.php b/controllers/releases.php
index db45b61..69f47ec 100644
--- a/controllers/releases.php
+++ b/controllers/releases.php
@@ -104,28 +104,37 @@ final class ReleasesController extends \TracToGitlab\Controller
                         return strcmp($a['name'], $b['name']);
                     });
 
-                    $sources = array_map(
-                        function (array $asset): array {
-                            $asset['size'] = $this->getFileSize($asset['url']);
-                            return $asset;
-                        },
-                        $release['assets']['sources'] ?? []
-                    );
-
                     $changelog = sprintf(
                         'https://gitlab.studip.de/studip/studip/-/blob/%s/ChangeLog%s',
                         $release['tag_name'],
                         $release['tag_name'] >= 'v5.3' ? '.md' : ''
                     );
 
+                    try {
+                        $file = $this->gitlab->repositoryFiles()->getFile(
+                            $this->gitlabProjectId,
+                            'RELEASE-NOTES.md',
+                            $release['tag_name']
+                        );
+
+                        $release_notes = sprintf(
+                            'https://gitlab.studip.de/studip/studip/-/blob/%s/%s',
+                            $release['tag_name'],
+                            $file['file_name']
+                        );
+                    } catch (Exception $e) {
+                        $release_notes = null;
+                    }
+
                     return [
                         'name'        => $release['name'],
                         'description' => $release['description'],
                         'url'         => $release['_links']['self'],
                         'changelog'   => $changelog,
+                        'notes'       => $release_notes,
                         'released'    => strtotime($release['released_at']),
                         'sources'     => $release['assets']['sources'],
-                        'links'       => $links
+                        'links'       => $links,
                     ];
                 },
                 $this->gitlab->repositories()->releases($this->gitlabProjectId)
diff --git a/plugin.manifest b/plugin.manifest
index 0838624..1bf4a0d 100644
--- a/plugin.manifest
+++ b/plugin.manifest
@@ -2,6 +2,6 @@ pluginname=Trac to gitlab converter
 pluginclassname=TracToGitlabPlugin
 pluginclassname=StudipReleasesPlugin
 origin=UOL
-version=1.4.4
+version=1.4.5
 studipMinVersion=5.0
 localedomain=trac2gitlab
diff --git a/views/releases/index.php b/views/releases/index.php
index d060e2a..8cbfefb 100644
--- a/views/releases/index.php
+++ b/views/releases/index.php
@@ -35,17 +35,27 @@
                 </span>
             </td>
       <? endforeach; ?>
-            <td class="hidden-small-down">
+            <td class="hidden-small-down release-files">
                 <a href="<?= URLHelper::getLink($release['changelog']) ?>" target="_blank" rel="noopener noreferrer">
                     ChangeLog
                 </a>
+            <? if ($release['notes']): ?>
+                <a href="<?= URLHelper::getLink($release['notes']) ?>" target="_blank" rel="noopener noreferrer">
+                    Release notes
+                </a>
+            <? endif; ?>
             </td>
         </tr>
         <tr class="hidden-medium-up">
-            <td colspan="5" class="table-divider">
+            <td colspan="5" class="table-divider release-files">
                 <a href="<?= URLHelper::getLink($release['changelog']) ?>" target="_blank" rel="noopener noreferrer">
                     ChangeLog
                 </a>
+            <? if ($release['notes']): ?>
+                <a href="<?= URLHelper::getLink($release['notes']) ?>" target="_blank" rel="noopener noreferrer">
+                    Release notes
+                </a>
+            <? endif; ?>
             </td>
         </tr>
     <? endforeach; ?>
-- 
GitLab