Merge pull request #3639 from Mynacol/gitlab-epic

[GitlabIssueBridge] Add support for GitLab Epics
This commit is contained in:
Paul 2023-08-27 13:32:04 +02:00 committed by GitHub
commit 00a18a1cd1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 24 additions and 8 deletions

View File

@ -3,10 +3,10 @@
class GitlabIssueBridge extends BridgeAbstract class GitlabIssueBridge extends BridgeAbstract
{ {
const MAINTAINER = 'Mynacol'; const MAINTAINER = 'Mynacol';
const NAME = 'Gitlab Issue/Merge Request'; const NAME = 'Gitlab Issue/Merge Request/Epic';
const URI = 'https://gitlab.com/'; const URI = 'https://gitlab.com/';
const CACHE_TIMEOUT = 1800; // 30min 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 = [ const PARAMETERS = [
'global' => [ 'global' => [
@ -18,12 +18,12 @@ class GitlabIssueBridge extends BridgeAbstract
], ],
'u' => [ 'u' => [
'name' => 'User/Organization name', 'name' => 'User/Organization name',
'exampleValue' => 'fdroid', 'exampleValue' => 'gitlab-org',
'required' => true 'required' => true
], ],
'p' => [ 'p' => [
'name' => 'Project name', 'name' => 'Project name',
'exampleValue' => 'fdroidclient', 'exampleValue' => 'gitlab-foss',
'required' => true 'required' => true
] ]
@ -32,7 +32,7 @@ class GitlabIssueBridge extends BridgeAbstract
'i' => [ 'i' => [
'name' => 'Issue number', 'name' => 'Issue number',
'type' => 'number', 'type' => 'number',
'exampleValue' => '2099', 'exampleValue' => '1',
'required' => true 'required' => true
] ]
], ],
@ -40,7 +40,15 @@ class GitlabIssueBridge extends BridgeAbstract
'i' => [ 'i' => [
'name' => 'Merge Request number', 'name' => 'Merge Request number',
'type' => 'number', 'type' => 'number',
'exampleValue' => '2099', 'exampleValue' => '1',
'required' => true
]
],
'Epic comments' => [
'i' => [
'name' => 'Epic number',
'type' => 'number',
'exampleValue' => '1',
'required' => true 'required' => true
] ]
] ]
@ -56,6 +64,9 @@ class GitlabIssueBridge extends BridgeAbstract
case 'Merge Request comments': case 'Merge Request comments':
$name .= ' MR !' . $this->getInput('i'); $name .= ' MR !' . $this->getInput('i');
break; break;
case 'Epic comments':
$name .= ' Epic &' . $this->getInput('i');
break;
default: default:
return parent::getName(); return parent::getName();
} }
@ -74,6 +85,9 @@ class GitlabIssueBridge extends BridgeAbstract
case 'Merge Request comments': case 'Merge Request comments':
$uri .= '-/merge_requests'; $uri .= '-/merge_requests';
break; break;
case 'Epic comments':
$uri = 'https://' . $host . '/groups/' . $this->getInput('u') . '/-/epics';
break;
default: default:
return $uri; return $uri;
} }
@ -107,8 +121,10 @@ class GitlabIssueBridge extends BridgeAbstract
foreach ($comments as $value) { foreach ($comments as $value) {
foreach ($value->notes as $comment) { foreach ($value->notes as $comment) {
$item = []; $item = [];
if ($comment->noteable_note_url !== null) {
$item['uri'] = $comment->noteable_note_url; $item['uri'] = $comment->noteable_note_url;
$item['uid'] = $item['uri']; $item['uid'] = $item['uri'];
}
// TODO fix invalid timestamps (fdroid bot) // TODO fix invalid timestamps (fdroid bot)
$item['timestamp'] = $comment->created_at ?? $comment->updated_at ?? $comment->last_edited_at; $item['timestamp'] = $comment->created_at ?? $comment->updated_at ?? $comment->last_edited_at;