36 lines
788 B
Perl
36 lines
788 B
Perl
# Forks a project given by full path into group/user namespace
|
|
package Devscripts::Salsa::fork;
|
|
|
|
use strict;
|
|
use Devscripts::Output;
|
|
use Dpkg::IPC;
|
|
use Moo::Role;
|
|
|
|
with 'Devscripts::Salsa::checkout';
|
|
|
|
sub fork {
|
|
my ($self, $project) = @_;
|
|
unless ($project) {
|
|
ds_warn "Project to fork is missing";
|
|
return 1;
|
|
}
|
|
my $path = $self->main_path or return 1;
|
|
$self->api->fork_project($project, { namespace => $path });
|
|
my $p = $project;
|
|
$p =~ s#.*/##;
|
|
if ($self->checkout($p)) {
|
|
ds_warn "Failed to checkout $project";
|
|
return 1;
|
|
}
|
|
chdir $p;
|
|
spawn(
|
|
exec => [
|
|
qw(git remote add upstream),
|
|
$self->config->git_server_url . $project
|
|
],
|
|
wait_child => 1
|
|
);
|
|
return 0;
|
|
}
|
|
|
|
1;
|