Select Git revision
Forked from
Stud.IP / Stud.IP
Source project has a limited visibility.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
merge.php 3.17 KiB
<?php
final class MergeController extends TracToGitlab\GitlabController
{
public function before_filter(&$action, &$args)
{
parent::before_filter($action, $args);
PageLayout::setTitle(_('Übersicht noch zu portierender Bugfixes'));
$this->activateNavigation('merge');
}
public function index_action()
{
$data = $this->readFromCache('issues-to-merge', true);
if ($data === false) {
$this->issues = $this->fetchIssues();
$this->writeToCache('issues-to-merge', $this->issues);
} else {
$this->issues = $data['data'];
Sidebar::get()->addWidget(new TemplateWidget(
'Aus dem Cache',
$this->get_template_factory()->open(
$this->get_default_template('sidebar')
),
['time' => time()]
));
}
}
public function diff_action($mr_iid)
{
// $versions = $this->gitlab->mergeRequests()->
}
private function fetchIssues(): array
{
$issues = $this->gitlabPager->fetchAll(
$this->gitlab->issues(),
'all',
[
$this->gitlabProjectId,
[
'sort' => 'asc',
'scope' => 'all',
'milestone' => 'None',
'labels' => 'BIEST',
'state' => 'closed',
]
]
);
$issues = array_filter($issues, function ($issue) {
if ($issue['confidential']) {
return false;
}
foreach (['worksforme', 'wontfix', 'Duplicate', 'invalid'] as $label) {
if (in_array($label, $issue['labels'])) {
return false;
}
}
$has_version = array_reduce($issue['labels'], function ($has_version, $label) {
return $has_version || strpos($label, 'Version::') === 0;
}, false);
return $has_version;
});
$issues = array_map(function ($issue) {