From 18a8a5127180d9c4a4318f88cf2ffbc441b0ed60 Mon Sep 17 00:00:00 2001 From: Mynacol Date: Sun, 27 Aug 2023 12:13:44 +0200 Subject: [PATCH 1/2] [GitlabIssueBridge] Add support for GitLab Epics --- bridges/GitlabIssueBridge.php | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/bridges/GitlabIssueBridge.php b/bridges/GitlabIssueBridge.php index 59797d8d..27c19467 100644 --- a/bridges/GitlabIssueBridge.php +++ b/bridges/GitlabIssueBridge.php @@ -3,10 +3,10 @@ class GitlabIssueBridge extends BridgeAbstract { const MAINTAINER = 'Mynacol'; - const NAME = 'Gitlab Issue/Merge Request'; + const NAME = 'Gitlab Issue/Merge Request/Epic'; const URI = 'https://gitlab.com/'; const CACHE_TIMEOUT = 1800; // 30min - const DESCRIPTION = 'Returns comments of an issue/MR of a gitlab project'; + const DESCRIPTION = 'Returns comments of an issue/MR/Epic of a gitlab project'; const PARAMETERS = [ 'global' => [ @@ -43,6 +43,14 @@ class GitlabIssueBridge extends BridgeAbstract 'exampleValue' => '2099', 'required' => true ] + ], + 'Epic comments' => [ + 'i' => [ + 'name' => 'Epic number', + 'type' => 'number', + 'exampleValue' => '2099', + 'required' => true + ] ] ]; @@ -56,6 +64,9 @@ class GitlabIssueBridge extends BridgeAbstract case 'Merge Request comments': $name .= ' MR !' . $this->getInput('i'); break; + case 'Epic comments': + $name .= ' Epic &' . $this->getInput('i'); + break; default: return parent::getName(); } @@ -74,6 +85,9 @@ class GitlabIssueBridge extends BridgeAbstract case 'Merge Request comments': $uri .= '-/merge_requests'; break; + case 'Epic comments': + $uri .= '-/epics'; + break; default: return $uri; } @@ -107,8 +121,10 @@ class GitlabIssueBridge extends BridgeAbstract foreach ($comments as $value) { foreach ($value->notes as $comment) { $item = []; - $item['uri'] = $comment->noteable_note_url; - $item['uid'] = $item['uri']; + if ($comment->noteable_note_url !== null) { + $item['uri'] = $comment->noteable_note_url; + $item['uid'] = $item['uri']; + } // TODO fix invalid timestamps (fdroid bot) $item['timestamp'] = $comment->created_at ?? $comment->updated_at ?? $comment->last_edited_at; From 14607c07f682a2766777b909e732af653c400fee Mon Sep 17 00:00:00 2001 From: Mynacol Date: Sun, 27 Aug 2023 13:14:21 +0200 Subject: [PATCH 2/2] [GitlabIssueBridge] Fix example values for MR These values are used for testing and PR artifacts, but https://gitlab.com/fdroid/fdroidclient currently has no MR !2099, leading to a HTTP 404 error. This just uses issue #1 and MR !1. To support epics, the specified repository is ignored. --- bridges/GitlabIssueBridge.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bridges/GitlabIssueBridge.php b/bridges/GitlabIssueBridge.php index 27c19467..f900335f 100644 --- a/bridges/GitlabIssueBridge.php +++ b/bridges/GitlabIssueBridge.php @@ -18,12 +18,12 @@ class GitlabIssueBridge extends BridgeAbstract ], 'u' => [ 'name' => 'User/Organization name', - 'exampleValue' => 'fdroid', + 'exampleValue' => 'gitlab-org', 'required' => true ], 'p' => [ 'name' => 'Project name', - 'exampleValue' => 'fdroidclient', + 'exampleValue' => 'gitlab-foss', 'required' => true ] @@ -32,7 +32,7 @@ class GitlabIssueBridge extends BridgeAbstract 'i' => [ 'name' => 'Issue number', 'type' => 'number', - 'exampleValue' => '2099', + 'exampleValue' => '1', 'required' => true ] ], @@ -40,7 +40,7 @@ class GitlabIssueBridge extends BridgeAbstract 'i' => [ 'name' => 'Merge Request number', 'type' => 'number', - 'exampleValue' => '2099', + 'exampleValue' => '1', 'required' => true ] ], @@ -48,7 +48,7 @@ class GitlabIssueBridge extends BridgeAbstract 'i' => [ 'name' => 'Epic number', 'type' => 'number', - 'exampleValue' => '2099', + 'exampleValue' => '1', 'required' => true ] ] @@ -86,7 +86,7 @@ class GitlabIssueBridge extends BridgeAbstract $uri .= '-/merge_requests'; break; case 'Epic comments': - $uri .= '-/epics'; + $uri = 'https://' . $host . '/groups/' . $this->getInput('u') . '/-/epics'; break; default: return $uri;