<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div style="font-family:Arial;">Now not including Nicola, and with extra magic in the script to set the label and alter the owner:<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">Bron (brong)<br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1911">https://github.com/cyrusimap/cyrus-imapd/issues/1911</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1621">https://github.com/cyrusimap/cyrus-imapd/issues/1621</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1073">https://github.com/cyrusimap/cyrus-imapd/issues/1073</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1697">https://github.com/cyrusimap/cyrus-imapd/issues/1697</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1841">https://github.com/cyrusimap/cyrus-imapd/issues/1841</a><br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">Ken (ksmurchison)<br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1893">https://github.com/cyrusimap/cyrus-imapd/issues/1893</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/519">https://github.com/cyrusimap/cyrus-imapd/issues/519</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/690">https://github.com/cyrusimap/cyrus-imapd/issues/690</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/951">https://github.com/cyrusimap/cyrus-imapd/issues/951</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1746">https://github.com/cyrusimap/cyrus-imapd/issues/1746</a><br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">Partha (ajaysusarla)<br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/608">https://github.com/cyrusimap/cyrus-imapd/issues/608</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1155">https://github.com/cyrusimap/cyrus-imapd/issues/1155</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1710">https://github.com/cyrusimap/cyrus-imapd/issues/1710</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1618">https://github.com/cyrusimap/cyrus-imapd/issues/1618</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1907">https://github.com/cyrusimap/cyrus-imapd/issues/1907</a><br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">Robert (rsto)<br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/60">https://github.com/cyrusimap/cyrus-imapd/issues/60</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1284">https://github.com/cyrusimap/cyrus-imapd/issues/1284</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/735">https://github.com/cyrusimap/cyrus-imapd/issues/735</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1569">https://github.com/cyrusimap/cyrus-imapd/issues/1569</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1498">https://github.com/cyrusimap/cyrus-imapd/issues/1498</a><br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">ellie (elliefm)<br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1053">https://github.com/cyrusimap/cyrus-imapd/issues/1053</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1793">https://github.com/cyrusimap/cyrus-imapd/issues/1793</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1650">https://github.com/cyrusimap/cyrus-imapd/issues/1650</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1726">https://github.com/cyrusimap/cyrus-imapd/issues/1726</a><br></div>
<div style="font-family:Arial;">* <a href="https://github.com/cyrusimap/cyrus-imapd/issues/1938">https://github.com/cyrusimap/cyrus-imapd/issues/1938</a><br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">Here's the icky ghetto GitHub API code... seriously, all the docs say "id", but the mean "number", and you get back label and assignee objects, but write just names.  It's really an odd API.  Anyway, this works :)<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">brong@bat:~/src/BugzillaImport$ cat pick5.pl <br></div>
<div style="font-family:Arial;">use strict;<br></div>
<div style="font-family:Arial;">use warnings;<br></div>
<div style="font-family:Arial;">use Net::GitHub;<br></div>
<div style="font-family:Arial;">use Data::Dumper;<br></div>
<div style="font-family:Arial;">use XML::Fast;<br></div>
<div style="font-family:Arial;">use HTML::Entities;<br></div>
<div style="font-family:Arial;">use DateTime::Format::DateParse;<br></div>
<div style="font-family:Arial;">use Encode qw(decode_utf8 encode_utf8);<br></div>
<div style="font-family:Arial;">use JSON;<br></div>
<div style="font-family:Arial;">use List::Util qw(shuffle);<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">BEGIN {<br></div>
<div style="font-family:Arial;">    Net::GitHub::V3::Issues->__build_methods(<br></div>
<div style="font-family:Arial;">        import_issue => { url => "/repos/%s/%s/import/issues", method => 'POST', args => 1 },<br></div>
<div style="font-family:Arial;">    );<br></div>
<div style="font-family:Arial;">};<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">open(FH, "<oauth_token.txt");<br></div>
<div style="font-family:Arial;">my $token = <FH>;<br></div>
<div style="font-family:Arial;">chomp($token);<br></div>
<div style="font-family:Arial;">close(FH);<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">my $gh = Net::GitHub::V3->new(<br></div>
<div style="font-family:Arial;">  access_token => $token,<br></div>
<div style="font-family:Arial;">);<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">$gh->ua->default_header(Accept => 'application/vnd.github.golden-comet-preview+json');<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">my $issue = $gh->issue;<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">$issue->set_default_user_repo('cyrusimap', 'cyrus-imapd');<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">use HTTP::Message;<br></div>
<div style="font-family:Arial;">$issue->ua->default_header('Accept-Encoding' => scalar HTTP::Message::decodable());<br></div>
<div style="font-family:Arial;"># for debugging<br></div>
<div style="font-family:Arial;">#$issue->ua->add_handler("request_send",  sub { shift->dump; return });<br></div>
<div style="font-family:Arial;">#$issue->ua->add_handler("response_done", sub { shift->dump; return });<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">my @labels = $issue->labels();<br></div>
<div style="font-family:Arial;">my %labels = map { $_->{name} => $_ } @labels;<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">my %have;<br></div>
<div style="font-family:Arial;">my @issues = $issue->repos_issues({filter => 'all', state => 'open'});<br></div>
<div style="font-family:Arial;">push @issues, $issue->next_page() while $issue->has_next_page();<br></div>
<div style="font-family:Arial;">my @list = shuffle grep { not has_diceroll($_) } @issues;<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">my $n = 0;<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">my %map = qw(<br></div>
<div style="font-family:Arial;">    Ken ksmurchison<br></div>
<div style="font-family:Arial;">    Robert rsto<br></div>
<div style="font-family:Arial;">    Partha ajaysusarla<br></div>
<div style="font-family:Arial;">    Bron brong<br></div>
<div style="font-family:Arial;">    ellie elliefm<br></div>
<div style="font-family:Arial;">);<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">foreach my $name (sort keys %map) {<br></div>
<div style="font-family:Arial;">    print "$name ($map{$name})\n";<br></div>
<div style="font-family:Arial;">    for (1..5) {<br></div>
<div style="font-family:Arial;">        my $item = $list[$n++];<br></div>
<div style="font-family:Arial;">        my @labels = map { $_->{name} } @{$item->{labels}};<br></div>
<div style="font-family:Arial;">        push @labels, 'diceroll';<br></div>
<div style="font-family:Arial;">        print " * $item->{html_url}\n";<br></div>
<div style="font-family:Arial;">        $issue->update_issue($item->{number}, {<br></div>
<div style="font-family:Arial;">            assignee => $map{$name},<br></div>
<div style="font-family:Arial;">            labels => \@labels,<br></div>
<div style="font-family:Arial;">        });<br></div>
<div style="font-family:Arial;">    }<br></div>
<div style="font-family:Arial;">    print "\n";<br></div>
<div style="font-family:Arial;">}<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">sub has_diceroll {<br></div>
<div style="font-family:Arial;">    my $issue = shift;<br></div>
<div style="font-family:Arial;">    foreach my $label (@{$issue->{labels}}) {<br></div>
<div style="font-family:Arial;">        next unless $label->{name} eq 'diceroll';<br></div>
<div style="font-family:Arial;">        return 1;<br></div>
<div style="font-family:Arial;">    }<br></div>
<div style="font-family:Arial;">    return 0;<br></div>
<div style="font-family:Arial;">}<br></div>
<div style="font-family:Arial;"><br></div>
<div id="sig56629417"><div class="signature">--<br></div>
<div class="signature">  Bron Gondwana, CEO, FastMail Pty Ltd<br></div>
<div class="signature">  brong@fastmailteam.com<br></div>
<div class="signature"><br></div>
</div>
<div style="font-family:Arial;"><br></div>
</body>
</html>