API-GitForge

 view release on metacpan or  search on metacpan

lib/App/git/clean_forge_fork.pm  view on Meta::CPAN

        $git->rev_parse({ git_dir => 1 });
    } catch {
        die "pwd doesn't look like a git repository ..\n";
    };
    #>>>
    GetOptions "upstream=s" => \$upstream;

    my ($forge_domain, $upstream_repo) = remote_forge_info $upstream;
    exit
      unless $term->ask_yn(
        prompt => "Do you want to submit changes against $upstream_repo?");

    my $forge = new_from_domain
      domain       => $forge_domain,
      access_token => forge_access_token $forge_domain;
    my $fork_uri = $forge->clean_fork($upstream_repo);
    if (grep /\Afork\z/, $git->remote) {
        $fork_uri eq ($git->remote(qw(get-url fork)))[0]
          or die "fork remote exists but has wrong URI\n";
    } else {
        $git->remote(qw(add fork), $fork_uri);

lib/App/git/clean_forge_repo.pm  view on Meta::CPAN

        $git->rev_parse({ git_dir => 1 });
    } catch {
        die "pwd doesn't look like a git repository ..\n";
    };
    #>>>
    GetOptions "remote=s" => \$remote;

    my ($forge_domain, $forge_repo) = remote_forge_info $remote;
    exit
      unless $term->ask_yn(
        prompt => "Do you want to create repo $forge_repo?");

    my $forge = new_from_domain
      domain       => $forge_domain,
      access_token => forge_access_token $forge_domain;
    $forge->clean_repo($forge_repo);

  EXIT_MAIN:
    return $exit_main;
}

lib/App/git/nuke_forge_fork.pm  view on Meta::CPAN

    #>>>
    GetOptions "upstream=s" => \$upstream;

    my @fork_branches
      = grep !/\Agitforge\z/,
      map { m#refs/heads/#; $' } $git->ls_remote(qw(--heads fork));
    if (@fork_branches) {
        say "Would delete the following branches:";
        say "  $_" for @fork_branches;
        print "\n";
        exit unless $term->ask_yn(prompt => "Are you sure?");
    }

    my ($forge_domain, $upstream_repo) = remote_forge_info $upstream;
    my $forge = new_from_domain
      domain       => $forge_domain,
      access_token => forge_access_token $forge_domain;
    $forge->nuke_fork($upstream_repo);
    $git->remote(qw(rm fork));

  EXIT_MAIN:



( run in 0.550 second using v1.01-cache-2.11-cpan-6aa56a78535 )