diff options
Diffstat (limited to '')
-rw-r--r-- | lib/githubexplorer/Network.pm | 34 |
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; |