1# Lists merge requests proposed to a project
2package Devscripts::Salsa::merge_requests;
3
4use strict;
5use Devscripts::Output;
6use Moo::Role;
7
8sub merge_requests {
9    my ($self, @reponames) = @_;
10    my $res = 1;
11    unless (@reponames) {
12        ds_warn "Repository name is missing";
13        return 1;
14    }
15    foreach my $p (@reponames) {
16        my $id    = $self->project2id($p);
17        my $count = 0;
18        unless ($id) {
19            ds_warn "Project $_ not found";
20            return 1;
21        }
22        print "$p\n";
23        my $mrs = $self->api->paginator(
24            'merge_requests',
25            $id,
26            {
27                state => 'opened',
28            });
29        while ($_ = $mrs->next) {
30            $res = 0;
31            my $status = $_->{work_in_progress} ? 'WIP' : $_->{merge_status};
32            print <<END;
33\tId    : $_->{id}
34\tTitle : $_->{title}
35\tAuthor: $_->{author}->{username}
36\tStatus: $status
37\tUrl   : $_->{web_url}
38
39END
40        }
41        unless ($count) {
42            print "\n";
43            next;
44        }
45    }
46    return $res;
47}
48
491;
50