@@ -91,8 +91,16 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
91
91
return err
92
92
}
93
93
94
- if err := uploader .CreateMilestones (milestones ... ); err != nil {
95
- return err
94
+ msBatchSize := uploader .MaxBatchInsertSize ("milestone" )
95
+ for len (milestones ) > 0 {
96
+ if len (milestones ) < msBatchSize {
97
+ msBatchSize = len (milestones )
98
+ }
99
+
100
+ if err := uploader .CreateMilestones (milestones ... ); err != nil {
101
+ return err
102
+ }
103
+ milestones = milestones [msBatchSize :]
96
104
}
97
105
}
98
106
@@ -103,8 +111,16 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
103
111
return err
104
112
}
105
113
106
- if err := uploader .CreateLabels (labels ... ); err != nil {
107
- return err
114
+ lbBatchSize := uploader .MaxBatchInsertSize ("label" )
115
+ for len (labels ) > 0 {
116
+ if len (labels ) < lbBatchSize {
117
+ lbBatchSize = len (labels )
118
+ }
119
+
120
+ if err := uploader .CreateLabels (labels ... ); err != nil {
121
+ return err
122
+ }
123
+ labels = labels [lbBatchSize :]
108
124
}
109
125
}
110
126
@@ -115,15 +131,27 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
115
131
return err
116
132
}
117
133
118
- if err := uploader .CreateReleases (releases ... ); err != nil {
119
- return err
134
+ relBatchSize := uploader .MaxBatchInsertSize ("release" )
135
+ for len (releases ) > 0 {
136
+ if len (releases ) < relBatchSize {
137
+ relBatchSize = len (releases )
138
+ }
139
+
140
+ if err := uploader .CreateReleases (releases [:relBatchSize ]... ); err != nil {
141
+ return err
142
+ }
143
+ releases = releases [relBatchSize :]
120
144
}
121
145
}
122
146
147
+ var commentBatchSize = uploader .MaxBatchInsertSize ("comment" )
148
+
123
149
if opts .Issues {
124
150
log .Trace ("migrating issues and comments" )
151
+ var issueBatchSize = uploader .MaxBatchInsertSize ("issue" )
152
+
125
153
for i := 1 ; ; i ++ {
126
- issues , isEnd , err := downloader .GetIssues (i , 100 )
154
+ issues , isEnd , err := downloader .GetIssues (i , issueBatchSize )
127
155
if err != nil {
128
156
return err
129
157
}
@@ -141,7 +169,7 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
141
169
continue
142
170
}
143
171
144
- var allComments = make ([]* base.Comment , 0 , 100 )
172
+ var allComments = make ([]* base.Comment , 0 , commentBatchSize )
145
173
for _ , issue := range issues {
146
174
comments , err := downloader .GetComments (issue .Number )
147
175
if err != nil {
@@ -154,11 +182,12 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
154
182
}
155
183
allComments = append (allComments , comments ... )
156
184
157
- if len (allComments ) >= 100 {
158
- if err := uploader .CreateComments (allComments ... ); err != nil {
185
+ if len (allComments ) >= commentBatchSize {
186
+ if err := uploader .CreateComments (allComments [: commentBatchSize ] ... ); err != nil {
159
187
return err
160
188
}
161
- allComments = make ([]* base.Comment , 0 , 100 )
189
+
190
+ allComments = allComments [commentBatchSize :]
162
191
}
163
192
}
164
193
@@ -176,8 +205,9 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
176
205
177
206
if opts .PullRequests {
178
207
log .Trace ("migrating pull requests and comments" )
208
+ var prBatchSize = models .MaxBatchInsertSize ("pullrequest" )
179
209
for i := 1 ; ; i ++ {
180
- prs , err := downloader .GetPullRequests (i , 100 )
210
+ prs , err := downloader .GetPullRequests (i , prBatchSize )
181
211
if err != nil {
182
212
return err
183
213
}
@@ -195,7 +225,7 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
195
225
continue
196
226
}
197
227
198
- var allComments = make ([]* base.Comment , 0 , 100 )
228
+ var allComments = make ([]* base.Comment , 0 , commentBatchSize )
199
229
for _ , pr := range prs {
200
230
comments , err := downloader .GetComments (pr .Number )
201
231
if err != nil {
@@ -209,11 +239,11 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
209
239
210
240
allComments = append (allComments , comments ... )
211
241
212
- if len (allComments ) >= 100 {
213
- if err := uploader .CreateComments (allComments ... ); err != nil {
242
+ if len (allComments ) >= commentBatchSize {
243
+ if err := uploader .CreateComments (allComments [: commentBatchSize ] ... ); err != nil {
214
244
return err
215
245
}
216
- allComments = make ([] * base. Comment , 0 , 100 )
246
+ allComments = allComments [ commentBatchSize :]
217
247
}
218
248
}
219
249
if len (allComments ) > 0 {
@@ -222,7 +252,7 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
222
252
}
223
253
}
224
254
225
- if len (prs ) < 100 {
255
+ if len (prs ) < prBatchSize {
226
256
break
227
257
}
228
258
}
0 commit comments