App-Gitc

 view release on metacpan or  search on metacpan

bin/gitc-unpromoted  view on Meta::CPAN

        our %notes;
        my $number = $its->issue_number($issue);
        return '' if $notes{$number}++;
        my $notes = $its->issue_promotion_notes($issue);
        return '' if not $notes;
        if ($for_deploy) {
            return sprintf "$number:\n\n$notes\n%s\n", '-' x 30;
        }
        else {
            return sprintf "\n\n$notes\n%s\n", '-' x 30;
        }
    },

    # changeset's scheduled release
    'r' => sub {
        my ($changeset) = @_;
        my $its = its_for_changeset($changeset) or return '';
        my $issue = eval { $its->get_issue($changeset) } or return '';
        my $release = $its->issue_scheduled_release($issue);
        $release = '' if not $release;
        return "$release";
    },

    # changeset summary
    's' => sub {
        my ($changeset) = @_;
        my $its = its_for_changeset($changeset) or return '';
        my $issue = eval { $its->get_issue($changeset) } or return '';
        our %summaries;
        my $number = $its->issue_number($issue);
        return 'already seen' if $summaries{$number}++;
        return $its->issue_summary($issue) || '';
    },

    # changeset status
    'S' => sub {
        my ($changeset) = @_;
        my $its = its_for_changeset($changeset) or return '';
        my $issue = eval { $its->get_issue($changeset) } or return '';
        return ( $its->issue_state($issue) . '' ) || '';
    },
);

my $target = shift
    or die "You must specify the target of a hypothetical promotion\n";

# which branch precedes the target branch?
my $before_target = environment_preceding($target);
die "Calling unpromoted with a target of '$target' is meaningless\n"
    if not defined $before_target;

# find all the changeset merges in $before_target that're not in $target
git "fetch origin" if is_auto_fetch();
my @unpromoted = unpromoted( "origin/$before_target", "origin/$target" );
sort_changesets_by_name(\@unpromoted);
display($_) for @unpromoted;

sub display {
    my ($changeset) = @_;
    my $rx = join '|', keys %formats;
    my @escapes = $format =~ m/%($rx)/g;
    my %values;
    for my $escape (@escapes) {
        next if exists $values{$escape};
        $values{$escape} = $formats{$escape}->($changeset);
    }

    ( my $result = $format ) =~ s/%($rx)/$values{$1}/eg;
    print "$result\n";
}

__END__

=pod

=head1 NAME

gitc-unpromoted - Return a list of unpromoted changesets

=head1 VERSION

version 0.60

=head1 AUTHOR

Grant Street Group <developers@grantstreet.com>

=head1 COPYRIGHT AND LICENSE

This software is Copyright (c) 2013 by Grant Street Group.

This is free software, licensed under:

  The GNU Affero General Public License, Version 3, November 2007

=cut



( run in 1.654 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )