summaryrefslogtreecommitdiffstats
path: root/modules/migrations
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2021-05-16 00:37:17 +0200
committerGitHub <noreply@github.com>2021-05-15 18:37:17 -0400
commite0c93fed05f5863ebef2ff584734709c79d926f2 (patch)
tree64911d64b4f6049c88f69e728812de13c7f49033 /modules/migrations
parent8e32eeb5deed2da2dc2a648f62cba2613b566f71 (diff)
downloadgitea-e0c93fed05f5863ebef2ff584734709c79d926f2.tar.gz
gitea-e0c93fed05f5863ebef2ff584734709c79d926f2.zip
GitHub: migrate draft releases too (#15884)
* GitHub: migrate draft releases too * refactor
Diffstat (limited to 'modules/migrations')
-rw-r--r--modules/migrations/gitea_uploader.go21
-rw-r--r--modules/migrations/github.go44
2 files changed, 31 insertions, 34 deletions
diff --git a/modules/migrations/gitea_uploader.go b/modules/migrations/gitea_uploader.go
index 29118fd51b..8b865d7971 100644
--- a/modules/migrations/gitea_uploader.go
+++ b/modules/migrations/gitea_uploader.go
@@ -250,14 +250,16 @@ func (g *GiteaLocalUploader) CreateReleases(releases ...*base.Release) error {
rel.OriginalAuthorID = release.PublisherID
}
- // calc NumCommits
- commit, err := g.gitRepo.GetCommit(rel.TagName)
- if err != nil {
- return fmt.Errorf("GetCommit: %v", err)
- }
- rel.NumCommits, err = commit.CommitsCount()
- if err != nil {
- return fmt.Errorf("CommitsCount: %v", err)
+ // calc NumCommits if no draft
+ if !release.Draft {
+ commit, err := g.gitRepo.GetCommit(rel.TagName)
+ if err != nil {
+ return fmt.Errorf("GetCommit: %v", err)
+ }
+ rel.NumCommits, err = commit.CommitsCount()
+ if err != nil {
+ return fmt.Errorf("CommitsCount: %v", err)
+ }
}
for _, asset := range release.Assets {
@@ -270,9 +272,10 @@ func (g *GiteaLocalUploader) CreateReleases(releases ...*base.Release) error {
}
// download attachment
- err = func() error {
+ err := func() error {
// asset.DownloadURL maybe a local file
var rc io.ReadCloser
+ var err error
if asset.DownloadURL == nil {
rc, err = asset.DownloadFunc()
if err != nil {
diff --git a/modules/migrations/github.go b/modules/migrations/github.go
index 282e3b4786..8a3f5d34c7 100644
--- a/modules/migrations/github.go
+++ b/modules/migrations/github.go
@@ -264,34 +264,29 @@ func (g *GithubDownloaderV3) GetLabels() ([]*base.Label, error) {
}
func (g *GithubDownloaderV3) convertGithubRelease(rel *github.RepositoryRelease) *base.Release {
- var (
- name string
- desc string
- )
- if rel.Body != nil {
- desc = *rel.Body
- }
- if rel.Name != nil {
- name = *rel.Name
- }
-
- var email string
- if rel.Author.Email != nil {
- email = *rel.Author.Email
- }
-
r := &base.Release{
TagName: *rel.TagName,
TargetCommitish: *rel.TargetCommitish,
- Name: name,
- Body: desc,
Draft: *rel.Draft,
Prerelease: *rel.Prerelease,
Created: rel.CreatedAt.Time,
PublisherID: *rel.Author.ID,
PublisherName: *rel.Author.Login,
- PublisherEmail: email,
- Published: rel.PublishedAt.Time,
+ }
+
+ if rel.Body != nil {
+ r.Body = *rel.Body
+ }
+ if rel.Name != nil {
+ r.Name = *rel.Name
+ }
+
+ if rel.Author.Email != nil {
+ r.PublisherEmail = *rel.Author.Email
+ }
+
+ if rel.PublishedAt != nil {
+ r.Published = rel.PublishedAt.Time
}
for _, asset := range rel.Assets {
@@ -306,18 +301,17 @@ func (g *GithubDownloaderV3) convertGithubRelease(rel *github.RepositoryRelease)
Updated: asset.UpdatedAt.Time,
DownloadFunc: func() (io.ReadCloser, error) {
g.sleep()
- asset, redir, err := g.client.Repositories.DownloadReleaseAsset(g.ctx, g.repoOwner, g.repoName, assetID, nil)
+ asset, redirectURL, err := g.client.Repositories.DownloadReleaseAsset(g.ctx, g.repoOwner, g.repoName, assetID, nil)
if err != nil {
return nil, err
}
- err = g.RefreshRate()
- if err != nil {
+ if err := g.RefreshRate(); err != nil {
log.Error("g.client.RateLimits: %s", err)
}
if asset == nil {
- if redir != "" {
+ if redirectURL != "" {
g.sleep()
- req, err := http.NewRequestWithContext(g.ctx, "GET", redir, nil)
+ req, err := http.NewRequestWithContext(g.ctx, "GET", redirectURL, nil)
if err != nil {
return nil, err
}