summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/githubexplorer/Network.pm34
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/githubexplorer/Network.pm b/lib/githubexplorer/Network.pm
new file mode 100644
index 0000000..e3c4765
--- /dev/null
+++ b/lib/githubexplorer/Network.pm
@@ -0,0 +1,34 @@
+package githubexplorer::Network;
+use 5.010;
+use Moose::Role;
+use Net::GitHub::V2::Repositories;
+use YAML::Syck;
+
+sub fetch_network {
+    my ( $self, $repos ) = @_;
+
+    my $api_repos = Net::GitHub::V2::Repositories->new(
+        owner => $repos->id_profile->login,
+        repo  => $repos->name,
+        login => $self->api_login,
+        token => $self->api_token,
+    );
+
+    my $edges = $api_repos->network();
+    foreach my $edge (@$network) {
+        next if $edge->{owner} eq $repos->id_profile->login;
+        my $profile = $self->schema->resultset('Profiles')
+            ->find( { login => $edge->{owner} } );
+        next if !$profile;
+
+        my $relation = $self->schema->resultset('Fork')->find_or_create(
+            {
+                profile => $profile->id,
+                repos   => $repos->id
+            }
+        );
+    }
+    sleep(1);
+}
+
+1;