ghtorrent 0.11 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/bin/ght-update-repo +1 -1
- data/lib/ghtorrent.rb +0 -1
- data/lib/ghtorrent/commands/ght_retrieve_repo.rb +1 -1
- data/lib/ghtorrent/ghtorrent.rb +1 -24
- data/lib/ghtorrent/migrations/014_add_deleted_to_projects.rb +1 -1
- data/lib/ghtorrent/retriever.rb +0 -4
- data/lib/version.rb +1 -1
- metadata +2 -4
- data/lib/ghtorrent/commands/ght_update_repo.rb +0 -126
- data/lib/ghtorrent/migrations/022_add_project_languages.rb +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02d0d3901077bde8352f2cfaf52fcb83aa90fcc4
|
4
|
+
data.tar.gz: ca3d1320d374247884e26444b00a3a460f4101aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e1c9d5c24ffa30f9c693eefbc2b0409fbdf2f91ab2314881c5989cad9b716424eeb390b48d1b43f9a900b5fa9556e0f78ccc1ae73e995fcba564a9a1e0c9e57
|
7
|
+
data.tar.gz: 771b2d985ce9869a47bb35231732a72cd3601048ca7b31021396420dfbcdcb106d6408eb539ac9a4750a81984aa2fafe54a7e12e59f28676980e57dd45168c3a
|
data/Gemfile.lock
CHANGED
data/bin/ght-update-repo
CHANGED
data/lib/ghtorrent.rb
CHANGED
@@ -63,6 +63,5 @@ require 'ghtorrent/commands/ght_retrieve_dependents'
|
|
63
63
|
require 'ghtorrent/commands/ght_retrieve_repos'
|
64
64
|
require 'ghtorrent/commands/ght_retrieve_one'
|
65
65
|
require 'ghtorrent/commands/ght_retrieve_users'
|
66
|
-
require 'ghtorrent/commands/ght_update_repo'
|
67
66
|
|
68
67
|
# vim: set sta sts=2 shiftwidth=2 sw=2 et ai :
|
@@ -50,7 +50,7 @@ An efficient way to get all data for a single repo
|
|
50
50
|
|
51
51
|
def stages
|
52
52
|
%w(ensure_commits ensure_forks ensure_pull_requests
|
53
|
-
ensure_issues ensure_watchers ensure_labels
|
53
|
+
ensure_issues ensure_watchers ensure_labels) #ensure_project_members
|
54
54
|
end
|
55
55
|
|
56
56
|
|
data/lib/ghtorrent/ghtorrent.rb
CHANGED
@@ -560,7 +560,7 @@ module GHTorrent
|
|
560
560
|
end
|
561
561
|
|
562
562
|
functions = %w(ensure_labels ensure_pull_requests
|
563
|
-
ensure_issues ensure_watchers ensure_forks
|
563
|
+
ensure_issues ensure_watchers ensure_forks)
|
564
564
|
|
565
565
|
functions.each do |x|
|
566
566
|
send(x, owner, repo)
|
@@ -568,29 +568,6 @@ module GHTorrent
|
|
568
568
|
|
569
569
|
end
|
570
570
|
|
571
|
-
# Get details about the languages used in the repository
|
572
|
-
def ensure_languages(owner, repo)
|
573
|
-
currepo = ensure_repo(owner, repo)
|
574
|
-
langs = retrieve_languages(owner, repo)
|
575
|
-
|
576
|
-
if langs.nil? or langs.empty?
|
577
|
-
warn "Could not find languages for repo #{owner}/#{repo}"
|
578
|
-
return
|
579
|
-
end
|
580
|
-
|
581
|
-
ts = Time.now
|
582
|
-
langs.keys.each do |lang|
|
583
|
-
@db[:project_languages].insert(
|
584
|
-
:project_id => currepo[:id],
|
585
|
-
:language => lang.downcase,
|
586
|
-
:lines => langs[lang],
|
587
|
-
:created_at => ts
|
588
|
-
)
|
589
|
-
info "Added project_language #{owner}/#{repo} -> #{lang} (#{langs[lang]} lines)"
|
590
|
-
end
|
591
|
-
@db[:project_languages].where(:project_id => currepo[:id]).where(:created_at => ts).all
|
592
|
-
end
|
593
|
-
|
594
571
|
# Fast path to project forking. Retrieve all commits page by page
|
595
572
|
# until we reach a commit that has been registered with the parent
|
596
573
|
# repository. Then, copy all remaining parent commits to this repo.
|
@@ -10,7 +10,7 @@ Sequel.migration do
|
|
10
10
|
:default => false
|
11
11
|
|
12
12
|
puts 'Field deleted added'
|
13
|
-
puts 'Remember to run the fixes/
|
13
|
+
puts 'Remember to run the fixes/update_deleted.rb script to mark deleted projects'
|
14
14
|
end
|
15
15
|
|
16
16
|
down do
|
data/lib/ghtorrent/retriever.rb
CHANGED
@@ -210,10 +210,6 @@ module GHTorrent
|
|
210
210
|
end
|
211
211
|
end
|
212
212
|
|
213
|
-
def retrieve_languages(owner, repo)
|
214
|
-
paged_api_request ghurl "repos/#{owner}/#{repo}/languages"
|
215
|
-
end
|
216
|
-
|
217
213
|
# Retrieve organizations the provided user participates into
|
218
214
|
def retrieve_orgs(user)
|
219
215
|
url = ghurl "users/#{user}/orgs"
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ghtorrent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.11.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Georgios Gousios
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-09-
|
12
|
+
date: 2015-09-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mongo
|
@@ -143,7 +143,6 @@ files:
|
|
143
143
|
- lib/ghtorrent/commands/ght_retrieve_repos.rb
|
144
144
|
- lib/ghtorrent/commands/ght_retrieve_user.rb
|
145
145
|
- lib/ghtorrent/commands/ght_retrieve_users.rb
|
146
|
-
- lib/ghtorrent/commands/ght_update_repo.rb
|
147
146
|
- lib/ghtorrent/event_processing.rb
|
148
147
|
- lib/ghtorrent/ghtorrent.rb
|
149
148
|
- lib/ghtorrent/hash.rb
|
@@ -169,7 +168,6 @@ files:
|
|
169
168
|
- lib/ghtorrent/migrations/019_add_fake_to_users.rb
|
170
169
|
- lib/ghtorrent/migrations/020_add_deleted_to_users.rb
|
171
170
|
- lib/ghtorrent/migrations/021_remove_ext_ref_id.rb
|
172
|
-
- lib/ghtorrent/migrations/022_add_project_languages.rb
|
173
171
|
- lib/ghtorrent/migrations/mysql_defaults.rb
|
174
172
|
- lib/ghtorrent/multiprocess_queue_client.rb
|
175
173
|
- lib/ghtorrent/persister.rb
|
@@ -1,126 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'ghtorrent'
|
4
|
-
|
5
|
-
class GHTUpdateRepo < GHTorrent::Command
|
6
|
-
|
7
|
-
include GHTorrent::Settings
|
8
|
-
include GHTorrent::Retriever
|
9
|
-
include GHTorrent::Persister
|
10
|
-
include GHTorrent::Logging
|
11
|
-
|
12
|
-
def prepare_options(options)
|
13
|
-
options.banner <<-BANNER
|
14
|
-
Updates the deleted field in the project table with current data
|
15
|
-
|
16
|
-
#{command_name} owner repo
|
17
|
-
|
18
|
-
BANNER
|
19
|
-
end
|
20
|
-
|
21
|
-
def validate
|
22
|
-
super
|
23
|
-
Trollop::die "Takes two arguments" if ARGV.size == 1
|
24
|
-
end
|
25
|
-
|
26
|
-
def persister
|
27
|
-
@persister ||= connect(:mongo, settings)
|
28
|
-
@persister
|
29
|
-
end
|
30
|
-
|
31
|
-
def db
|
32
|
-
@db ||= @ght.get_db
|
33
|
-
end
|
34
|
-
|
35
|
-
def date(arg)
|
36
|
-
if arg.class != Time
|
37
|
-
Time.parse(arg)#.to_i
|
38
|
-
else
|
39
|
-
arg
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
def set_deleted(owner, repo)
|
44
|
-
db.from(:projects, :users).\
|
45
|
-
where(:projects__owner_id => :users__id).\
|
46
|
-
where(:users__login => owner).\
|
47
|
-
where(:projects__name => repo).\
|
48
|
-
update(:projects__deleted => true)
|
49
|
-
info("Project #{owner}/#{repo} marked as deleted")
|
50
|
-
end
|
51
|
-
|
52
|
-
def update_mysql(owner, repo, retrieved)
|
53
|
-
|
54
|
-
parent = unless retrieved['parent'].nil?
|
55
|
-
@ght.ensure_repo(retrieved['parent']['owner']['login'],
|
56
|
-
retrieved['parent']['name'])
|
57
|
-
end
|
58
|
-
|
59
|
-
db.from(:projects, :users).\
|
60
|
-
where(:projects__owner_id => :users__id).\
|
61
|
-
where(:users__login => owner).\
|
62
|
-
where(:projects__name => repo).\
|
63
|
-
update(
|
64
|
-
:projects__url => retrieved['url'],
|
65
|
-
:projects__description => retrieved['description'],
|
66
|
-
:projects__language => retrieved['language'],
|
67
|
-
:projects__created_at => date(retrieved['created_at']),
|
68
|
-
:projects__forked_from => unless parent.nil? then parent[:id] end)
|
69
|
-
debug("Repo #{owner}/#{repo} updated")
|
70
|
-
|
71
|
-
@ght.ensure_languages(owner, repo)
|
72
|
-
end
|
73
|
-
|
74
|
-
def process_project(owner, name)
|
75
|
-
@ght.transaction do
|
76
|
-
|
77
|
-
in_mongo = persister.find(:repos, {'owner.login' => owner, 'name' => name })
|
78
|
-
on_github = api_request(ghurl ("repos/#{owner}/#{name}"))
|
79
|
-
|
80
|
-
unless in_mongo.empty? and on_github.empty?
|
81
|
-
in_mysql = retrieve_repo(owner, name)
|
82
|
-
end
|
83
|
-
|
84
|
-
if in_mongo.empty?
|
85
|
-
if on_github.empty?
|
86
|
-
if in_mysql.nil?
|
87
|
-
# Project does not exist anywhere
|
88
|
-
warn "Repo #{owner}/#{name} does not exist in MySQL"
|
89
|
-
else
|
90
|
-
# Project exists in MySQL but not on Github or Mongo
|
91
|
-
# Mark it as deleted
|
92
|
-
set_deleted(owner, name)
|
93
|
-
end
|
94
|
-
else
|
95
|
-
# Project does not exist in Mongo, but exists in Github
|
96
|
-
if in_mysql.nil?
|
97
|
-
warn "Repo #{owner}/#{name} does not exist in MySQL"
|
98
|
-
else
|
99
|
-
# The retrieval process already added it to Mongo, so update MySQL
|
100
|
-
update_mysql(owner, name, in_mysql)
|
101
|
-
end
|
102
|
-
end
|
103
|
-
else
|
104
|
-
if on_github.empty?
|
105
|
-
# Project was deleted on Github. Mark it as deleted.
|
106
|
-
set_deleted(owner, name)
|
107
|
-
else
|
108
|
-
update_mysql(owner, name, in_mysql)
|
109
|
-
end
|
110
|
-
end
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
def go
|
115
|
-
|
116
|
-
@ght ||= GHTorrent::Mirror.new(settings)
|
117
|
-
|
118
|
-
unless ARGV[1].nil?
|
119
|
-
process_project(ARGV[0], ARGV[1])
|
120
|
-
exit(0)
|
121
|
-
end
|
122
|
-
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
|
-
GHTUpdateRepo.run
|
@@ -1,24 +0,0 @@
|
|
1
|
-
require 'sequel'
|
2
|
-
|
3
|
-
require 'ghtorrent/migrations/mysql_defaults'
|
4
|
-
|
5
|
-
|
6
|
-
Sequel.migration do
|
7
|
-
|
8
|
-
up do
|
9
|
-
puts 'Adding table project_languages'
|
10
|
-
|
11
|
-
create_table :project_languages do
|
12
|
-
foreign_key :project_id, :projects, :null => false
|
13
|
-
String :language, :null => false
|
14
|
-
Integer :lines, :null => false, :default => 0
|
15
|
-
DateTime :created_at, :null => false,
|
16
|
-
:default => Sequel::CURRENT_TIMESTAMP
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
down do
|
21
|
-
puts 'Dropping table project_languages'
|
22
|
-
drop_table :project_languages
|
23
|
-
end
|
24
|
-
end
|