Skip to content

Commit 8c4bf4c

Browse files
authored
GitHub: migrate draft releases too (#15884) (#15888)
* GitHub: migrate draft releases too * refactor
1 parent 3bcf2e5 commit 8c4bf4c

File tree

2 files changed

+31
-34
lines changed

2 files changed

+31
-34
lines changed

modules/migrations/gitea_uploader.go

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -248,14 +248,16 @@ func (g *GiteaLocalUploader) CreateReleases(releases ...*base.Release) error {
248248
rel.OriginalAuthorID = release.PublisherID
249249
}
250250

251-
// calc NumCommits
252-
commit, err := g.gitRepo.GetCommit(rel.TagName)
253-
if err != nil {
254-
return fmt.Errorf("GetCommit: %v", err)
255-
}
256-
rel.NumCommits, err = commit.CommitsCount()
257-
if err != nil {
258-
return fmt.Errorf("CommitsCount: %v", err)
251+
// calc NumCommits if no draft
252+
if !release.Draft {
253+
commit, err := g.gitRepo.GetCommit(rel.TagName)
254+
if err != nil {
255+
return fmt.Errorf("GetCommit: %v", err)
256+
}
257+
rel.NumCommits, err = commit.CommitsCount()
258+
if err != nil {
259+
return fmt.Errorf("CommitsCount: %v", err)
260+
}
259261
}
260262

261263
for _, asset := range release.Assets {
@@ -268,9 +270,10 @@ func (g *GiteaLocalUploader) CreateReleases(releases ...*base.Release) error {
268270
}
269271

270272
// download attachment
271-
err = func() error {
273+
err := func() error {
272274
// asset.DownloadURL maybe a local file
273275
var rc io.ReadCloser
276+
var err error
274277
if asset.DownloadURL == nil {
275278
rc, err = asset.DownloadFunc()
276279
if err != nil {

modules/migrations/github.go

Lines changed: 19 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -264,34 +264,29 @@ func (g *GithubDownloaderV3) GetLabels() ([]*base.Label, error) {
264264
}
265265

266266
func (g *GithubDownloaderV3) convertGithubRelease(rel *github.RepositoryRelease) *base.Release {
267-
var (
268-
name string
269-
desc string
270-
)
271-
if rel.Body != nil {
272-
desc = *rel.Body
273-
}
274-
if rel.Name != nil {
275-
name = *rel.Name
276-
}
277-
278-
var email string
279-
if rel.Author.Email != nil {
280-
email = *rel.Author.Email
281-
}
282-
283267
r := &base.Release{
284268
TagName: *rel.TagName,
285269
TargetCommitish: *rel.TargetCommitish,
286-
Name: name,
287-
Body: desc,
288270
Draft: *rel.Draft,
289271
Prerelease: *rel.Prerelease,
290272
Created: rel.CreatedAt.Time,
291273
PublisherID: *rel.Author.ID,
292274
PublisherName: *rel.Author.Login,
293-
PublisherEmail: email,
294-
Published: rel.PublishedAt.Time,
275+
}
276+
277+
if rel.Body != nil {
278+
r.Body = *rel.Body
279+
}
280+
if rel.Name != nil {
281+
r.Name = *rel.Name
282+
}
283+
284+
if rel.Author.Email != nil {
285+
r.PublisherEmail = *rel.Author.Email
286+
}
287+
288+
if rel.PublishedAt != nil {
289+
r.Published = rel.PublishedAt.Time
295290
}
296291

297292
for _, asset := range rel.Assets {
@@ -306,18 +301,17 @@ func (g *GithubDownloaderV3) convertGithubRelease(rel *github.RepositoryRelease)
306301
Updated: asset.UpdatedAt.Time,
307302
DownloadFunc: func() (io.ReadCloser, error) {
308303
g.sleep()
309-
asset, redir, err := g.client.Repositories.DownloadReleaseAsset(g.ctx, g.repoOwner, g.repoName, assetID, nil)
304+
asset, redirectURL, err := g.client.Repositories.DownloadReleaseAsset(g.ctx, g.repoOwner, g.repoName, assetID, nil)
310305
if err != nil {
311306
return nil, err
312307
}
313-
err = g.RefreshRate()
314-
if err != nil {
308+
if err := g.RefreshRate(); err != nil {
315309
log.Error("g.client.RateLimits: %s", err)
316310
}
317311
if asset == nil {
318-
if redir != "" {
312+
if redirectURL != "" {
319313
g.sleep()
320-
req, err := http.NewRequestWithContext(g.ctx, "GET", redir, nil)
314+
req, err := http.NewRequestWithContext(g.ctx, "GET", redirectURL, nil)
321315
if err != nil {
322316
return nil, err
323317
}

0 commit comments

Comments
 (0)