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
{
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' => [
@ -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,15 @@ class GitlabIssueBridge extends BridgeAbstract
'i' => [
'name' => 'Merge Request number',
'type' => 'number',
'exampleValue' => '2099',
'exampleValue' => '1',
'required' => true
]
],
'Epic comments' => [
'i' => [
'name' => 'Epic number',
'type' => 'number',
'exampleValue' => '1',
'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 = 'https://' . $host . '/groups/' . $this->getInput('u') . '/-/epics';
break;
default:
return $uri;
}
@ -107,8 +121,10 @@ class GitlabIssueBridge extends BridgeAbstract
foreach ($comments as $value) {
foreach ($value->notes as $comment) {
$item = [];
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;