gitprep / old / fix_v2_pull_request /
Newer Older
68 lines | 1.912kb
Sorry, I found critical data...
Yuki Kimoto authored on 2016-06-09
1
#!/usr/bin/env perl
2

            
3
use strict;
4
use warnings;
5

            
6
use FindBin;
7
use lib "$FindBin::Bin/../extlib/lib/perl5";
8
use DBIx::Custom;
9

            
10
my $database_file = shift;
11

            
12
# New DBI
13
my %dbi_args = (
14
  dsn => "dbi:SQLite:database=$database_file",
15
  connector => 1,
16
  option => {sqlite_unicode => 1, sqlite_use_immediate_transaction => 1}
17
);
18
my $dbi = DBIx::Custom->connect(%dbi_args);
19

            
20
# Copy pull_request data to issue
21
my $pull_requests = $dbi->select(table => 'pull_request')->all;
issue belong to project
Yuki Kimoto authored on 2016-06-11
22
my $issue_project_numbers = {};
Sorry, I found critical data...
Yuki Kimoto authored on 2016-06-09
23
for my $pull_request (@$pull_requests) {
issue belong to project
Yuki Kimoto authored on 2016-06-11
24

            
25
  my $project = $pull_request->{base_project};
26
  $issue_project_numbers->{$project}++;
Sorry, I found critical data...
Yuki Kimoto authored on 2016-06-09
27
  my $new_issue = {
28
    row_id => $pull_request->{row_id},
29
    title => $pull_request->{title},
30
    open => $pull_request->{open},
31
    open_time => $pull_request->{open_time},
32
    open_user => $pull_request->{open_user},
issue belong to project
Yuki Kimoto authored on 2016-06-11
33
    pull_request => $pull_request->{row_id},
34
    project => $project,
35
    number => $issue_project_numbers->{$project}
Sorry, I found critical data...
Yuki Kimoto authored on 2016-06-09
36
  };
37
  
38
  my $issue = $dbi->select(
39
    table => 'issue',
40
    where => {row_id => $new_issue->{row_id}}
41
  )->one;
42
  
43
  unless ($issue) {
44
    $dbi->insert($new_issue, table => 'issue');
45
  }
46
}
47

            
48
my $pull_request_messages = $dbi->select(table => 'pull_request_message')->all;
49
for my $pull_request_message (@$pull_request_messages) {
50
  my $new_issue_message = {
51
    row_id => $pull_request_message->{row_id},
52
    issue => $pull_request_message->{pull_request},
53
    number => $pull_request_message->{number},
54
    message => $pull_request_message->{message},
55
    create_time => $pull_request_message->{create_time},
56
    update_time => $pull_request_message->{update_time},
57
    user => $pull_request_message->{user}
58
  };
59
  
60
  my $issue_message = $dbi->select(
61
    table => 'issue_message',
62
    where => {row_id => $new_issue_message->{row_id}}
63
  )->one;
64
  
65
  unless ($issue_message) {
66
    $dbi->insert($new_issue_message, table => 'issue_message');
67
  }
68
}