Index: Dev/github/GitHubBackup.pm
===================================================================
--- Dev/github/GitHubBackup.pm	(revision 6473c3b009e250b88e905f8a8042a6dce5c4832c)
+++ Dev/github/GitHubBackup.pm	(revision fc647d5d5521650a6c1d75ad37facdca12b851cb)
@@ -22,4 +22,22 @@
 }
 
+sub get {
+    my $url = shift;
+    
+    my $page = 1;
+    my $data;
+    while(1) {
+        my $result = json_api("$url?per_page=100&page=$page");
+        if (ref($result) eq 'ARRAY' && scalar @$result > 0) {
+            push @$data, @$result;
+            $page++;
+            
+            next;
+        }
+        last;
+    }
+    
+    return $data;
+}
 
 package GitHubBackup;
@@ -91,18 +109,6 @@
     }
     
-    my $page = 1;
-    my @repos;
-    while (1) {
-        my $result = utils::json_api("/users/$account/repos?per_page=100&page=$page");
-        if (ref($result) eq 'ARRAY' && scalar @$result > 0) {
-            push @repos, @$result;
-            $page++;
-            
-            next;
-        }
-        last;
-    }
-    
-    foreach my $repos (@repos) {
+    my $result = utils::get("/users/$account/repos");
+    foreach my $repos (@$result) {
         push @{$self->{repos}},
             GitHubBackup::Repository->new({
@@ -196,15 +202,5 @@
     return $self->{forks} if ($self->{forks});
     
-    my $page = 1;
-    while (1) {
-        my $result = utils::json_api("/repos/" . $self->{full_name} . "/forks?per_page=100&page=$page");
-        if (ref($result) eq 'ARRAY' && scalar @$result > 0) {
-            push @{$self->{forks}}, @$result;
-            $page++;
-            
-            next;
-        }
-        last;
-    }
+    $self->{forks} = utils::get("/repos/" . $self->{full_name} . "/forks");
     
     return $self;
