Skip to content

Commit e0c93fe

Browse files
authored
GitHub: migrate draft releases too (#15884)
* GitHub: migrate draft releases too * refactor
1 parent 8e32eeb commit e0c93fe

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
@@ -250,14 +250,16 @@ func (g *GiteaLocalUploader) CreateReleases(releases ...*base.Release) error {
250250
rel.OriginalAuthorID = release.PublisherID
251251
}
252252

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

263265
for _, asset := range release.Assets {
@@ -270,9 +272,10 @@ func (g *GiteaLocalUploader) CreateReleases(releases ...*base.Release) error {
270272
}
271273

272274
// download attachment
273-
err = func() error {
275+
err := func() error {
274276
// asset.DownloadURL maybe a local file
275277
var rc io.ReadCloser
278+
var err error
276279
if asset.DownloadURL == nil {
277280
rc, err = asset.DownloadFunc()
278281
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)