travis-backup-for-v3 0.1.1 → 0.1.2
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 +215 -152
- data/README.md +1 -1
- data/lib/backup/remove_specified/remove_heavy_data.rb +17 -103
- data/lib/backup/remove_specified/remove_with_all_dependencies.rb +6 -0
- data/lib/backup/save_id_hash_to_file.rb +1 -0
- data/lib/config.rb +11 -3
- data/lib/db_helper.rb +1 -5
- data/lib/models/abuse.rb +0 -2
- data/lib/models/beta_migration_request.rb +0 -2
- data/lib/models/branch.rb +0 -2
- data/lib/models/broadcast.rb +0 -2
- data/lib/models/build.rb +0 -2
- data/lib/models/build_config.rb +0 -2
- data/lib/models/cancellation.rb +0 -2
- data/lib/models/commit.rb +0 -2
- data/lib/models/cron.rb +0 -2
- data/lib/models/deleted_build.rb +0 -2
- data/lib/models/deleted_build_config.rb +0 -2
- data/lib/models/deleted_commit.rb +0 -2
- data/lib/models/deleted_job.rb +0 -2
- data/lib/models/deleted_job_config.rb +0 -2
- data/lib/models/deleted_pull_request.rb +0 -2
- data/lib/models/deleted_request.rb +0 -2
- data/lib/models/deleted_request_config.rb +0 -2
- data/lib/models/deleted_request_payload.rb +0 -2
- data/lib/models/deleted_request_raw_config.rb +0 -2
- data/lib/models/deleted_request_raw_configuration.rb +0 -2
- data/lib/models/deleted_request_yaml_config.rb +0 -2
- data/lib/models/deleted_ssl_key.rb +0 -2
- data/lib/models/deleted_stage.rb +0 -2
- data/lib/models/deleted_tag.rb +0 -2
- data/lib/models/email.rb +0 -2
- data/lib/models/email_unsubscribe.rb +0 -2
- data/lib/models/installation.rb +0 -2
- data/lib/models/invoice.rb +0 -2
- data/lib/models/job_config.rb +0 -2
- data/lib/models/job_version.rb +0 -2
- data/lib/models/membership.rb +0 -2
- data/lib/models/organization.rb +0 -2
- data/lib/models/owner_group.rb +0 -2
- data/lib/models/permission.rb +0 -2
- data/lib/models/pull_request.rb +0 -2
- data/lib/models/queueable_job.rb +0 -2
- data/lib/models/repo_count.rb +0 -2
- data/lib/models/repository.rb +0 -2
- data/lib/models/request.rb +0 -2
- data/lib/models/request_config.rb +0 -2
- data/lib/models/request_payload.rb +0 -2
- data/lib/models/request_raw_config.rb +0 -2
- data/lib/models/request_raw_configuration.rb +0 -2
- data/lib/models/request_yaml_config.rb +0 -2
- data/lib/models/ssl_key.rb +0 -2
- data/lib/models/stage.rb +0 -2
- data/lib/models/star.rb +0 -2
- data/lib/models/subscription.rb +0 -2
- data/lib/models/tag.rb +0 -2
- data/lib/models/token.rb +0 -2
- data/lib/models/trial.rb +0 -2
- data/lib/models/trial_allowance.rb +0 -2
- data/lib/models/user.rb +1 -2
- data/lib/models/user_beta_feature.rb +0 -2
- data/lib/models/user_utm_param.rb +0 -2
- data/travis-backup-for-v3.gemspec +12 -12
- metadata +27 -34
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6b266edee254a754a11d020786c9d1cfaef23cbf774987c26912fc7324432ea4
|
|
4
|
+
data.tar.gz: 1118b310ab819b50da380cecf960f835409cb839eb35ab525875fd074448f297
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c161f1f224135e12809cc944bc6c8e7e6bc1b5b9323413149cc9f25e71e8e28cdfbd49965313101db3086f6fb6500047319487d9523974979aab589540ee5155
|
|
7
|
+
data.tar.gz: edcf43f2691e0bb218e0b08d5592f91e34b339e1946d3cefe1146a7ab68ac785ad13b37bd1eb056a53f04c27e52dc18cc2725c03e6f125a2caa5d4ab5b448880
|
data/Gemfile.lock
CHANGED
|
@@ -1,203 +1,266 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
travis-backup-for-v3 (0.1.
|
|
5
|
-
activerecord
|
|
4
|
+
travis-backup-for-v3 (0.1.0)
|
|
5
|
+
activerecord (~> 7)
|
|
6
6
|
bootsnap
|
|
7
7
|
pg
|
|
8
8
|
pry
|
|
9
|
-
rails
|
|
9
|
+
rails (~> 7)
|
|
10
10
|
tzinfo-data
|
|
11
11
|
|
|
12
12
|
GEM
|
|
13
13
|
remote: https://rubygems.org/
|
|
14
14
|
specs:
|
|
15
|
-
actioncable (
|
|
16
|
-
actionpack (=
|
|
17
|
-
activesupport (=
|
|
15
|
+
actioncable (7.2.2.1)
|
|
16
|
+
actionpack (= 7.2.2.1)
|
|
17
|
+
activesupport (= 7.2.2.1)
|
|
18
18
|
nio4r (~> 2.0)
|
|
19
19
|
websocket-driver (>= 0.6.1)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
20
|
+
zeitwerk (~> 2.6)
|
|
21
|
+
actionmailbox (7.2.2.1)
|
|
22
|
+
actionpack (= 7.2.2.1)
|
|
23
|
+
activejob (= 7.2.2.1)
|
|
24
|
+
activerecord (= 7.2.2.1)
|
|
25
|
+
activestorage (= 7.2.2.1)
|
|
26
|
+
activesupport (= 7.2.2.1)
|
|
27
|
+
mail (>= 2.8.0)
|
|
28
|
+
actionmailer (7.2.2.1)
|
|
29
|
+
actionpack (= 7.2.2.1)
|
|
30
|
+
actionview (= 7.2.2.1)
|
|
31
|
+
activejob (= 7.2.2.1)
|
|
32
|
+
activesupport (= 7.2.2.1)
|
|
33
|
+
mail (>= 2.8.0)
|
|
34
|
+
rails-dom-testing (~> 2.2)
|
|
35
|
+
actionpack (7.2.2.1)
|
|
36
|
+
actionview (= 7.2.2.1)
|
|
37
|
+
activesupport (= 7.2.2.1)
|
|
38
|
+
nokogiri (>= 1.8.5)
|
|
39
|
+
racc
|
|
40
|
+
rack (>= 2.2.4, < 3.2)
|
|
41
|
+
rack-session (>= 1.0.1)
|
|
38
42
|
rack-test (>= 0.6.3)
|
|
39
|
-
rails-dom-testing (~> 2.
|
|
40
|
-
rails-html-sanitizer (~> 1.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
rails-dom-testing (~> 2.2)
|
|
44
|
+
rails-html-sanitizer (~> 1.6)
|
|
45
|
+
useragent (~> 0.16)
|
|
46
|
+
actiontext (7.2.2.1)
|
|
47
|
+
actionpack (= 7.2.2.1)
|
|
48
|
+
activerecord (= 7.2.2.1)
|
|
49
|
+
activestorage (= 7.2.2.1)
|
|
50
|
+
activesupport (= 7.2.2.1)
|
|
51
|
+
globalid (>= 0.6.0)
|
|
46
52
|
nokogiri (>= 1.8.5)
|
|
47
|
-
actionview (
|
|
48
|
-
activesupport (=
|
|
53
|
+
actionview (7.2.2.1)
|
|
54
|
+
activesupport (= 7.2.2.1)
|
|
49
55
|
builder (~> 3.1)
|
|
50
|
-
erubi (~> 1.
|
|
51
|
-
rails-dom-testing (~> 2.
|
|
52
|
-
rails-html-sanitizer (~> 1.
|
|
53
|
-
activejob (
|
|
54
|
-
activesupport (=
|
|
56
|
+
erubi (~> 1.11)
|
|
57
|
+
rails-dom-testing (~> 2.2)
|
|
58
|
+
rails-html-sanitizer (~> 1.6)
|
|
59
|
+
activejob (7.2.2.1)
|
|
60
|
+
activesupport (= 7.2.2.1)
|
|
55
61
|
globalid (>= 0.3.6)
|
|
56
|
-
activemodel (
|
|
57
|
-
activesupport (=
|
|
58
|
-
activerecord (
|
|
59
|
-
activemodel (=
|
|
60
|
-
activesupport (=
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
activesupport (
|
|
69
|
-
|
|
62
|
+
activemodel (7.2.2.1)
|
|
63
|
+
activesupport (= 7.2.2.1)
|
|
64
|
+
activerecord (7.2.2.1)
|
|
65
|
+
activemodel (= 7.2.2.1)
|
|
66
|
+
activesupport (= 7.2.2.1)
|
|
67
|
+
timeout (>= 0.4.0)
|
|
68
|
+
activestorage (7.2.2.1)
|
|
69
|
+
actionpack (= 7.2.2.1)
|
|
70
|
+
activejob (= 7.2.2.1)
|
|
71
|
+
activerecord (= 7.2.2.1)
|
|
72
|
+
activesupport (= 7.2.2.1)
|
|
73
|
+
marcel (~> 1.0)
|
|
74
|
+
activesupport (7.2.2.1)
|
|
75
|
+
base64
|
|
76
|
+
benchmark (>= 0.3)
|
|
77
|
+
bigdecimal
|
|
78
|
+
concurrent-ruby (~> 1.0, >= 1.3.1)
|
|
79
|
+
connection_pool (>= 2.2.5)
|
|
80
|
+
drb
|
|
70
81
|
i18n (>= 1.6, < 2)
|
|
82
|
+
logger (>= 1.4.2)
|
|
71
83
|
minitest (>= 5.1)
|
|
72
|
-
|
|
73
|
-
|
|
84
|
+
securerandom (>= 0.3)
|
|
85
|
+
tzinfo (~> 2.0, >= 2.0.5)
|
|
74
86
|
ast (2.4.2)
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
87
|
+
base64 (0.2.0)
|
|
88
|
+
benchmark (0.4.0)
|
|
89
|
+
bigdecimal (3.1.9)
|
|
90
|
+
bootsnap (1.18.4)
|
|
91
|
+
msgpack (~> 1.2)
|
|
92
|
+
brakeman (7.0.0)
|
|
93
|
+
racc
|
|
94
|
+
builder (3.3.0)
|
|
79
95
|
byebug (11.1.3)
|
|
80
96
|
coderay (1.1.3)
|
|
81
|
-
concurrent-ruby (1.
|
|
97
|
+
concurrent-ruby (1.3.4)
|
|
98
|
+
connection_pool (2.5.0)
|
|
82
99
|
crass (1.0.6)
|
|
83
|
-
database_cleaner-active_record (2.0
|
|
100
|
+
database_cleaner-active_record (2.2.0)
|
|
84
101
|
activerecord (>= 5.a)
|
|
85
102
|
database_cleaner-core (~> 2.0.0)
|
|
86
103
|
database_cleaner-core (2.0.1)
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
104
|
+
date (3.4.1)
|
|
105
|
+
diff-lcs (1.5.1)
|
|
106
|
+
drb (2.2.1)
|
|
107
|
+
erubi (1.13.1)
|
|
108
|
+
factory_bot (6.5.0)
|
|
90
109
|
activesupport (>= 5.0.0)
|
|
91
|
-
ffi (1.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
110
|
+
ffi (1.17.1-arm64-darwin)
|
|
111
|
+
ffi (1.17.1-x86_64-linux-gnu)
|
|
112
|
+
globalid (1.2.1)
|
|
113
|
+
activesupport (>= 6.1)
|
|
114
|
+
i18n (1.14.6)
|
|
95
115
|
concurrent-ruby (~> 1.0)
|
|
96
|
-
|
|
97
|
-
|
|
116
|
+
io-console (0.8.0)
|
|
117
|
+
irb (1.14.3)
|
|
118
|
+
rdoc (>= 4.0.0)
|
|
119
|
+
reline (>= 0.4.2)
|
|
120
|
+
json (2.9.1)
|
|
121
|
+
language_server-protocol (3.17.0.3)
|
|
122
|
+
listen (3.9.0)
|
|
98
123
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
|
99
124
|
rb-inotify (~> 0.9, >= 0.9.10)
|
|
100
|
-
|
|
125
|
+
logger (1.6.5)
|
|
126
|
+
loofah (2.24.0)
|
|
101
127
|
crass (~> 1.0.2)
|
|
102
|
-
nokogiri (>= 1.
|
|
103
|
-
mail (2.
|
|
128
|
+
nokogiri (>= 1.12.0)
|
|
129
|
+
mail (2.8.1)
|
|
104
130
|
mini_mime (>= 0.1.1)
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
131
|
+
net-imap
|
|
132
|
+
net-pop
|
|
133
|
+
net-smtp
|
|
134
|
+
marcel (1.0.4)
|
|
135
|
+
method_source (1.1.0)
|
|
136
|
+
mini_mime (1.1.5)
|
|
137
|
+
minitest (5.25.4)
|
|
138
|
+
msgpack (1.7.5)
|
|
139
|
+
net-imap (0.5.5)
|
|
140
|
+
date
|
|
141
|
+
net-protocol
|
|
142
|
+
net-pop (0.1.2)
|
|
143
|
+
net-protocol
|
|
144
|
+
net-protocol (0.2.2)
|
|
145
|
+
timeout
|
|
146
|
+
net-smtp (0.5.0)
|
|
147
|
+
net-protocol
|
|
148
|
+
nio4r (2.7.4)
|
|
149
|
+
nokogiri (1.18.1-arm64-darwin)
|
|
150
|
+
racc (~> 1.4)
|
|
151
|
+
nokogiri (1.18.1-x86_64-linux-gnu)
|
|
112
152
|
racc (~> 1.4)
|
|
113
|
-
parallel (1.
|
|
114
|
-
parser (3.
|
|
153
|
+
parallel (1.26.3)
|
|
154
|
+
parser (3.3.6.0)
|
|
115
155
|
ast (~> 2.4.1)
|
|
116
|
-
|
|
117
|
-
|
|
156
|
+
racc
|
|
157
|
+
pg (1.5.9)
|
|
158
|
+
pry (0.15.2)
|
|
118
159
|
coderay (~> 1.1)
|
|
119
160
|
method_source (~> 1.0)
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
161
|
+
psych (5.2.2)
|
|
162
|
+
date
|
|
163
|
+
stringio
|
|
164
|
+
racc (1.8.1)
|
|
165
|
+
rack (3.1.8)
|
|
166
|
+
rack-session (2.1.0)
|
|
167
|
+
base64 (>= 0.1.0)
|
|
168
|
+
rack (>= 3.0.0)
|
|
169
|
+
rack-test (2.2.0)
|
|
170
|
+
rack (>= 1.3)
|
|
171
|
+
rackup (2.2.1)
|
|
172
|
+
rack (>= 3)
|
|
173
|
+
rails (7.2.2.1)
|
|
174
|
+
actioncable (= 7.2.2.1)
|
|
175
|
+
actionmailbox (= 7.2.2.1)
|
|
176
|
+
actionmailer (= 7.2.2.1)
|
|
177
|
+
actionpack (= 7.2.2.1)
|
|
178
|
+
actiontext (= 7.2.2.1)
|
|
179
|
+
actionview (= 7.2.2.1)
|
|
180
|
+
activejob (= 7.2.2.1)
|
|
181
|
+
activemodel (= 7.2.2.1)
|
|
182
|
+
activerecord (= 7.2.2.1)
|
|
183
|
+
activestorage (= 7.2.2.1)
|
|
184
|
+
activesupport (= 7.2.2.1)
|
|
136
185
|
bundler (>= 1.15.0)
|
|
137
|
-
railties (=
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
186
|
+
railties (= 7.2.2.1)
|
|
187
|
+
rails-dom-testing (2.2.0)
|
|
188
|
+
activesupport (>= 5.0.0)
|
|
189
|
+
minitest
|
|
141
190
|
nokogiri (>= 1.6)
|
|
142
|
-
rails-html-sanitizer (1.
|
|
143
|
-
loofah (~> 2.
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
191
|
+
rails-html-sanitizer (1.6.2)
|
|
192
|
+
loofah (~> 2.21)
|
|
193
|
+
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
|
|
194
|
+
railties (7.2.2.1)
|
|
195
|
+
actionpack (= 7.2.2.1)
|
|
196
|
+
activesupport (= 7.2.2.1)
|
|
197
|
+
irb (~> 1.13)
|
|
198
|
+
rackup (>= 1.0.0)
|
|
199
|
+
rake (>= 12.2)
|
|
200
|
+
thor (~> 1.0, >= 1.2.2)
|
|
201
|
+
zeitwerk (~> 2.6)
|
|
202
|
+
rainbow (3.1.1)
|
|
203
|
+
rake (13.2.1)
|
|
204
|
+
rb-fsevent (0.11.2)
|
|
205
|
+
rb-inotify (0.11.1)
|
|
154
206
|
ffi (~> 1.0)
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
207
|
+
rdoc (6.10.0)
|
|
208
|
+
psych (>= 4.0.0)
|
|
209
|
+
regexp_parser (2.10.0)
|
|
210
|
+
reline (0.6.0)
|
|
211
|
+
io-console (~> 0.5)
|
|
212
|
+
rspec-core (3.13.2)
|
|
213
|
+
rspec-support (~> 3.13.0)
|
|
214
|
+
rspec-expectations (3.13.3)
|
|
158
215
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
159
|
-
rspec-support (~> 3.
|
|
160
|
-
rspec-mocks (3.
|
|
216
|
+
rspec-support (~> 3.13.0)
|
|
217
|
+
rspec-mocks (3.13.2)
|
|
161
218
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
162
|
-
rspec-support (~> 3.
|
|
163
|
-
rspec-rails (
|
|
164
|
-
actionpack (>=
|
|
165
|
-
activesupport (>=
|
|
166
|
-
railties (>=
|
|
167
|
-
rspec-core (~> 3.
|
|
168
|
-
rspec-expectations (~> 3.
|
|
169
|
-
rspec-mocks (~> 3.
|
|
170
|
-
rspec-support (~> 3.
|
|
171
|
-
rspec-support (3.
|
|
172
|
-
rubocop (
|
|
173
|
-
|
|
219
|
+
rspec-support (~> 3.13.0)
|
|
220
|
+
rspec-rails (7.1.0)
|
|
221
|
+
actionpack (>= 7.0)
|
|
222
|
+
activesupport (>= 7.0)
|
|
223
|
+
railties (>= 7.0)
|
|
224
|
+
rspec-core (~> 3.13)
|
|
225
|
+
rspec-expectations (~> 3.13)
|
|
226
|
+
rspec-mocks (~> 3.13)
|
|
227
|
+
rspec-support (~> 3.13)
|
|
228
|
+
rspec-support (3.13.2)
|
|
229
|
+
rubocop (1.70.0)
|
|
230
|
+
json (~> 2.3)
|
|
231
|
+
language_server-protocol (>= 3.17.0)
|
|
174
232
|
parallel (~> 1.10)
|
|
175
|
-
parser (>= 2
|
|
233
|
+
parser (>= 3.3.0.2)
|
|
176
234
|
rainbow (>= 2.2.2, < 4.0)
|
|
235
|
+
regexp_parser (>= 2.9.3, < 3.0)
|
|
236
|
+
rubocop-ast (>= 1.36.2, < 2.0)
|
|
177
237
|
ruby-progressbar (~> 1.7)
|
|
178
|
-
unicode-display_width (>=
|
|
179
|
-
rubocop-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
thor (1.1.0)
|
|
190
|
-
tzinfo (2.0.4)
|
|
238
|
+
unicode-display_width (>= 2.4.0, < 4.0)
|
|
239
|
+
rubocop-ast (1.37.0)
|
|
240
|
+
parser (>= 3.3.1.0)
|
|
241
|
+
rubocop-rspec (3.3.0)
|
|
242
|
+
rubocop (~> 1.61)
|
|
243
|
+
ruby-progressbar (1.13.0)
|
|
244
|
+
securerandom (0.4.1)
|
|
245
|
+
stringio (3.1.2)
|
|
246
|
+
thor (1.3.2)
|
|
247
|
+
timeout (0.4.3)
|
|
248
|
+
tzinfo (2.0.6)
|
|
191
249
|
concurrent-ruby (~> 1.0)
|
|
192
|
-
tzinfo-data (1.
|
|
250
|
+
tzinfo-data (1.2024.2)
|
|
193
251
|
tzinfo (>= 1.0.0)
|
|
194
|
-
unicode-display_width (1.
|
|
195
|
-
|
|
252
|
+
unicode-display_width (3.1.4)
|
|
253
|
+
unicode-emoji (~> 4.0, >= 4.0.4)
|
|
254
|
+
unicode-emoji (4.0.4)
|
|
255
|
+
useragent (0.16.11)
|
|
256
|
+
websocket-driver (0.7.7)
|
|
257
|
+
base64
|
|
196
258
|
websocket-extensions (>= 0.1.0)
|
|
197
259
|
websocket-extensions (0.1.5)
|
|
198
|
-
zeitwerk (2.
|
|
260
|
+
zeitwerk (2.7.1)
|
|
199
261
|
|
|
200
262
|
PLATFORMS
|
|
263
|
+
arm64-darwin-22
|
|
201
264
|
x86_64-linux
|
|
202
265
|
|
|
203
266
|
DEPENDENCIES
|
|
@@ -207,9 +270,9 @@ DEPENDENCIES
|
|
|
207
270
|
factory_bot
|
|
208
271
|
listen
|
|
209
272
|
rspec-rails
|
|
210
|
-
rubocop
|
|
273
|
+
rubocop
|
|
211
274
|
rubocop-rspec
|
|
212
275
|
travis-backup-for-v3!
|
|
213
276
|
|
|
214
277
|
BUNDLED WITH
|
|
215
|
-
2.
|
|
278
|
+
2.4.19
|
data/README.md
CHANGED
|
@@ -17,30 +17,30 @@ class Backup
|
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
def remove_heavy_data_for_repo(repository)
|
|
20
|
-
|
|
20
|
+
remove_repo_builds(repository)
|
|
21
21
|
remove_repo_requests(repository)
|
|
22
22
|
end
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
def remove_repo_builds(repository) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
|
25
|
+
threshold = @config.threshold.to_i.months.ago.to_datetime
|
|
26
|
+
builds_to_remove = repository.builds.where('created_at < ?', threshold)
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
builds_dependencies = builds_to_remove.map do |build|
|
|
29
|
+
result = build.ids_of_all_dependencies(dependencies_to_filter, :without_parents)
|
|
30
|
+
result.add(:build, build.id)
|
|
31
|
+
result
|
|
32
|
+
end.compact
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
ids_to_remove = IdHash.join(*builds_dependencies)
|
|
35
|
+
@subfolder = "repository_#{repository.id}_old_builds_#{current_time_for_subfolder}"
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
unless @config.dry_run
|
|
38
|
+
nullified_rels = builds_to_remove&.map(&:nullify_default_dependencies)&.flatten
|
|
39
|
+
save_nullified_rels_to_file(build: nullified_rels) if @config.if_backup
|
|
40
|
+
end
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
process_ids_to_remove(ids_to_remove)
|
|
43
|
+
end
|
|
44
44
|
|
|
45
45
|
def remove_repo_requests(repository)
|
|
46
46
|
threshold = @config.threshold.to_i.months.ago.to_datetime
|
|
@@ -61,97 +61,11 @@ class Backup
|
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
ids_to_remove = IdHash.join(*(requests_dependencies))
|
|
64
|
-
orphaned_ids = orphaned_configs_to_remove(repository, ids_to_remove)
|
|
65
|
-
ids_to_remove.join(orphaned_ids)
|
|
66
64
|
process_ids_to_remove(ids_to_remove)
|
|
67
65
|
end
|
|
68
66
|
|
|
69
67
|
private
|
|
70
68
|
|
|
71
|
-
def find_config_ids_orphaned_now(model1:, model2:, repository:, foreign_key:, ids_to_remove:)
|
|
72
|
-
ids_to_exclude = ids_to_remove[model2.table_name.singularize.to_sym].join(', ')
|
|
73
|
-
|
|
74
|
-
orphaned_earlier = model1.find_by_sql(%{
|
|
75
|
-
select a.id
|
|
76
|
-
from #{model1.table_name} as a
|
|
77
|
-
left join #{model2.table_name} as b on
|
|
78
|
-
a.id = b.#{foreign_key}
|
|
79
|
-
where a.repository_id = #{repository.id}
|
|
80
|
-
group by a.id
|
|
81
|
-
having count(b.id) = 0;
|
|
82
|
-
}).map { |x| x.id }
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
all_orphaned = model1.find_by_sql(%{
|
|
86
|
-
select a.id
|
|
87
|
-
from #{model1.table_name} as a
|
|
88
|
-
left join #{model2.table_name} as b on
|
|
89
|
-
a.id = b.#{foreign_key} and b.id not in (#{ids_to_exclude})
|
|
90
|
-
where a.repository_id = #{repository.id}
|
|
91
|
-
group by a.id
|
|
92
|
-
having count(b.id) = 0;
|
|
93
|
-
}).map { |x| x.id }
|
|
94
|
-
|
|
95
|
-
all_orphaned - orphaned_earlier
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
def orphaned_configs_to_remove(repository, ids_to_remove)
|
|
99
|
-
if ids_to_remove[:request]
|
|
100
|
-
request_config_ids = find_config_ids_orphaned_now(
|
|
101
|
-
model1: RequestConfig,
|
|
102
|
-
model2: Request,
|
|
103
|
-
repository: repository,
|
|
104
|
-
foreign_key: 'config_id',
|
|
105
|
-
ids_to_remove: ids_to_remove
|
|
106
|
-
)
|
|
107
|
-
request_yaml_config_ids = find_config_ids_orphaned_now(
|
|
108
|
-
model1: RequestYamlConfig,
|
|
109
|
-
model2: Request,
|
|
110
|
-
repository: repository,
|
|
111
|
-
foreign_key: 'yaml_config_id',
|
|
112
|
-
ids_to_remove: ids_to_remove
|
|
113
|
-
)
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
if ids_to_remove[:request_raw_configuration]
|
|
117
|
-
request_raw_config_ids = find_config_ids_orphaned_now(
|
|
118
|
-
model1: RequestRawConfig,
|
|
119
|
-
model2: RequestRawConfiguration,
|
|
120
|
-
repository: repository,
|
|
121
|
-
foreign_key: 'request_raw_config_id',
|
|
122
|
-
ids_to_remove: ids_to_remove
|
|
123
|
-
)
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
if ids_to_remove[:build]
|
|
127
|
-
build_config_ids = find_config_ids_orphaned_now(
|
|
128
|
-
model1: BuildConfig,
|
|
129
|
-
model2: Build,
|
|
130
|
-
repository: repository,
|
|
131
|
-
foreign_key: 'config_id',
|
|
132
|
-
ids_to_remove: ids_to_remove
|
|
133
|
-
)
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
if ids_to_remove[:job]
|
|
137
|
-
job_config_ids = find_config_ids_orphaned_now(
|
|
138
|
-
model1: JobConfig,
|
|
139
|
-
model2: Job,
|
|
140
|
-
repository: repository,
|
|
141
|
-
foreign_key: 'config_id',
|
|
142
|
-
ids_to_remove: ids_to_remove
|
|
143
|
-
)
|
|
144
|
-
end
|
|
145
|
-
|
|
146
|
-
orphaned_ids = IdHash.new
|
|
147
|
-
orphaned_ids.add(:request_config, *request_config_ids)
|
|
148
|
-
orphaned_ids.add(:request_yaml_config, *request_yaml_config_ids)
|
|
149
|
-
orphaned_ids.add(:request_raw_config, *request_raw_config_ids)
|
|
150
|
-
orphaned_ids.add(:build_config, *build_config_ids)
|
|
151
|
-
orphaned_ids.add(:job_config, *job_config_ids)
|
|
152
|
-
orphaned_ids
|
|
153
|
-
end
|
|
154
|
-
|
|
155
69
|
def process_ids_to_remove(ids_to_remove)
|
|
156
70
|
if @config.dry_run
|
|
157
71
|
@dry_run_reporter.add_to_report(ids_to_remove.with_table_symbols)
|
|
@@ -14,6 +14,7 @@ class Backup
|
|
|
14
14
|
include Shared
|
|
15
15
|
|
|
16
16
|
def remove_user_with_dependencies(user_id)
|
|
17
|
+
fix_installations(user_id)
|
|
17
18
|
remove_entry_with_dependencies(:user, user_id)
|
|
18
19
|
end
|
|
19
20
|
|
|
@@ -27,6 +28,11 @@ class Backup
|
|
|
27
28
|
|
|
28
29
|
private
|
|
29
30
|
|
|
31
|
+
def fix_installations(user_id)
|
|
32
|
+
Installation.where(added_by_id: user_id).update!(added_by_id: 0)
|
|
33
|
+
Installation.where(removed_by_id: user_id).update!(removed_by_id: 0)
|
|
34
|
+
end
|
|
35
|
+
|
|
30
36
|
def remove_entry_with_dependencies(model_name, id)
|
|
31
37
|
@subfolder = "#{model_name}_#{id}_#{current_time_for_subfolder}"
|
|
32
38
|
entry = Model.get_model(model_name).find(id)
|
data/lib/config.rb
CHANGED
|
@@ -129,7 +129,7 @@ class Config
|
|
|
129
129
|
end
|
|
130
130
|
|
|
131
131
|
def check_values
|
|
132
|
-
if !@threshold && !@user_id && !@org_id && !@repo_id && !@load_from_files
|
|
132
|
+
if !@move_logs && !@remove_orphans && !@threshold && !@user_id && !@org_id && !@repo_id && !@load_from_files
|
|
133
133
|
message = abort_message("Please provide the threshold argument. Data younger than it will be omitted. " +
|
|
134
134
|
"Threshold defines number of months from now. Alternatively you can define user_id, org_id or repo_id " +
|
|
135
135
|
"to remove whole user, organization or repository with all dependencies.")
|
|
@@ -140,12 +140,20 @@ class Config
|
|
|
140
140
|
message = abort_message("Please provide proper database URL.")
|
|
141
141
|
abort message
|
|
142
142
|
end
|
|
143
|
+
|
|
144
|
+
if (@move_logs && !@destination_db_url)
|
|
145
|
+
abort "\nFor moving logs you need to specify your destination database. Example usage:\n" +
|
|
146
|
+
"\n $ bin/travis_backup 'postgres://source_url' --move_logs --destination_db_url 'postgres://destination_url'\n" +
|
|
147
|
+
"\nor using in code:\n" +
|
|
148
|
+
"\n Backup.new(database_url: 'postgres://source_url', destination_db_url: 'postgres://destination_url', move_logs: true)\n" +
|
|
149
|
+
"\nYou can also set it using environment variables or configuration files.\n"
|
|
150
|
+
end
|
|
143
151
|
end
|
|
144
152
|
|
|
145
153
|
def abort_message(intro)
|
|
146
154
|
"\n#{intro}\n\nExample usage:\n"+
|
|
147
|
-
"\n $
|
|
148
|
-
"\n $
|
|
155
|
+
"\n $ bin/travis_backup 'postgres://my_database_url' --threshold 6" +
|
|
156
|
+
"\n $ bin/travis_backup 'postgres://my_database_url' --user_id 1\n" +
|
|
149
157
|
"\nor using in code:\n" +
|
|
150
158
|
"\n Backup.new(database_url: 'postgres://my_database_url', threshold: 6)" +
|
|
151
159
|
"\n Backup.new(database_url: 'postgres://my_database_url', user_id: 1)\n" +
|