]> source.dussan.org Git - gitea.git/commitdiff
Prevent duplicate labels when importing more than 99 (#22591)
authorSybren <122987084+drsybren@users.noreply.github.com>
Tue, 24 Jan 2023 19:44:55 +0000 (20:44 +0100)
committerGitHub <noreply@github.com>
Tue, 24 Jan 2023 19:44:55 +0000 (19:44 +0000)
Importing labels (via `gitea restore-repo`) did not split them up into
batches properly. The first "batch" would create all labels, the second
"batch" would create all labels except those in the first "batch", etc.
This meant that when importing more than 99 labels (the batch size)
there would always be duplicate ones.

This is solved by actually passing `labels[:lbBatchSize]` to the
`CreateLabels()` function, instead of the entire list `labels`.

services/migrations/migrate.go

index a3b9d1cfa8fa5c52c8f7e4419ccba74327647193..0ebb3411fdb2fac165ed83d9f47028a0001dff93 100644 (file)
@@ -281,7 +281,7 @@ func migrateRepository(doer *user_model.User, downloader base.Downloader, upload
                                lbBatchSize = len(labels)
                        }
 
-                       if err := uploader.CreateLabels(labels...); err != nil {
+                       if err := uploader.CreateLabels(labels[:lbBatchSize]...); err != nil {
                                return err
                        }
                        labels = labels[lbBatchSize:]